Skip to content

dev の変更を master へ反映(西武バス対応・IPA生成改善・列車種別/経路の重複排除)#1547

Merged
TinyKitten merged 15 commits into
masterfrom
dev
Jun 20, 2026
Merged

dev の変更を master へ反映(西武バス対応・IPA生成改善・列車種別/経路の重複排除)#1547
TinyKitten merged 15 commits into
masterfrom
dev

Conversation

@TinyKitten

@TinyKitten TinyKitten commented Jun 20, 2026

Copy link
Copy Markdown
Member

概要

dev ブランチに蓄積された変更を master へ反映するリリース統合 PR です。西武バス(Seibu Bus)の GTFS 対応追加、Azure TTS 向け IPA 生成の改善、列車種別・経路の重複排除ロジック修正などを含みます。

変更の種類

  • バグ修正
  • 新機能
  • データの修正・追加
  • リファクタリング
  • ドキュメント
  • CI/CD
  • その他

変更内容

テスト

  • cargo fmt --all -- --check が通ること
  • cargo clippy -- -D warnings が通ること
  • cargo testSQLX_OFFLINE=true)が通ること

各変更は個別 PR で CI を通過済みのものを dev に統合したものです。

関連Issue

スクリーンショット(任意)

TinyKitten and others added 15 commits June 1, 2026 07:42
* Add Seibu Bus GTFS support

* Gate experimental bus GTFS feeds

* fix: apply CodeRabbit auto-fixes

Fixed 1 file(s) based on 1 unresolved review comment.

Co-authored-by: CodeRabbit <noreply@coderabbit.ai>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
* IPA生成をAzure TTS向けに修正(ジ表記をdʑに統一・路線name_ipaを日本語読みに)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* compute_line_ipa_cachedのドキュメントコメントを実装に合わせて修正

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
中黒「・」や全角括弧「()」を含む路線名で katakana_to_ipa が
文字列全体に対して None を返し、name_ipa が null・name_tts_segments
が空になっていた。これらを語の区切り(空白)として扱い、区切り文字
由来の余分な空白を正規化するよう修正。

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
jpreprocess(naist-jdic同梱)でアクセント核を推定し、ja-JPの読み(name_ipa
およびカタカナ由来のja-JP name_tts_segments)の核モーラ直前にIPA下げ核
マーカー ˈ を挿入する。漢字推定→カナ推定→補正辞書のハイブリッド。尾高・
平板は孤立読みで区別できないため語末核は付与せず、1名称につき主たる語中核
1つのみを採用する。en-USセグメントとname_roman_ipaは不変。

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
jpreprocessのnaist-jdic辞書(約77MB)がinclude_bytes!でバイナリに埋め込まれ、
release既定のcodegen-units=16では大容量定数を含むモジュールと他ユニットが並列
展開されピークメモリが急増する。メモリ制約のあるself-hostedデプロイランナーで
OOMするため、Dockerビルド時のみcodegen-units=1にして並列度を落とす。

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
* name_ipaの語末撥音ɴをnに統一しAzureで「ん」が鳴るよう修正 (#1536)

Azure ja-JP の <phoneme alphabet="ipa"> が口蓋垂鼻音 ɴ を音節化せず、
「〜線」(…seɴ) 末尾の「ん」が脱落していた。語末・母音前の ɴ を n に統一する。
子音前の m / ŋ / n 同化とアクセント核付与は不変。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* 母音/半母音前・口蓋ɲ・軟口蓋ŋの撥音もnに統一 (#1536)

西武新宿線の「新」(ɲ) や新幹線系の「新」(ŋ) も非ASCII鼻音で
Azureが脱落させるため、両唇音前のm以外はすべてnに統一。
母音・半母音(ヤ行j/ワ行w)が続く撥音は音節境界.を挿入し、
新江古田(しん.えごた)・新横浜(しん.よこはま)が「な行」に
融合しないようにする。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
おう/おお/えい等のかな長音をto.ɯ→toːのように長音記号ːへ統一し、
Azure ja-JPで自然に読まれるようにする。マクロン由来のオウ/オオ揺れ
(Ōsaka→o.ɯsaka)もoːsakaへ収束する。あわせて語頭(区切り直後)の
ら行ɾをl化(ロッポンギ→loppongi)。語中のɾは弾き音のまま維持。

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
停車駅シグネチャのみで重複判定していたため、特急と普通など停車駅が同一でも
種別の異なる列車種別が一方に統合されていた。重複判定キーに kind を加え、
(kind, 停車駅シグネチャ) が両方一致する場合のみ排除するようにした。

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
get_train_types の重複排除が (kind, 停車駅シグネチャ) をキーにする設計と、
新幹線が現状は特急と同じ kind=4 を使っている点を 4!types.csv の節に追記。

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
* station_station_types で停車駅・pass・type_cd が全駅一致する重複経路を削除

line_group_cd を経路の単位とし、各駅の (station_cd, pass, type_cd)
パターンが完全一致する経路を重複とみなして最初の1経路のみ残した。
type_cd が混在する直通経路も type_cd パターンの一致を確認している。

- line_group_cd=415 を 77 に統合(羽田⇔成田 直通、逆順で一致)
- line_group_cd=701 を 528 に統合(可部線、全駅停車)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* station_station_types の line_group_cd を出現順で 1..1168 に振り直し

欠番で断片化していた line_group_cd を、ファイル出現順に
連番へ再割当して欠番を解消した。値の変更のみで行や他列は不変。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
* IPA生成から下げ核(ピッチアクセント)付与機能を削除

name_ipa / name_tts_segments の ja-JP 読みに付与していた下げ核マーカー ˈ を廃止し、
カタカナ読みをそのまま IPA 化する素の発音に戻す。これに伴い不要になった以下を削除:

- アクセント推定 (accented_katakana_ipa / pitch_accent_nuclei / analyze_accent /
  accent_override) と JPREPROCESS ローダ・ACCENT_NUCLEUS_MARKER
- 下げ核挿入のためだけに導入していたモーラタグ機構
  (phonemes_to_tagged_chars / insert_syllable_breaks_tagged) を素の文字列処理に簡素化
- アクセント推定の入力でしかなかった name_kanji 引数とキャッシュキーの漢字要素
- OpenJTalk フロントエンド jpreprocess 依存 (naist-jdic 辞書約77MB) を削除し、
  辞書埋め込みによる OOM 回避用 codegen-units=1 (Dockerfile) も撤去

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013q62ExxS7dqvyhyJhx1uP5

* clippy(chars_last_cmp)修正: String の長音判定を ends_with に変更

phonemes_to_raw_ipa の長音重複チェックを output.chars().last() == Some('ː')
から output.ends_with('ː') に修正し、cargo clippy -- -D warnings を通す。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013q62ExxS7dqvyhyJhx1uP5

* 長音記号ːの直後の母音境界を維持 (CodeRabbitレビュー対応)

insert_syllable_breaks で、カタカナ「ー」由来の長音記号 ː の直後に別母音が
続く場合に音節境界 `.` が落ちていた (例: エーアイ → eːa.i)。ː を通すときに
直前母音の状態を保持するよう修正し、おう/えい 等の正書法長音と挙動を揃える
(エーアイ → eː.a.i)。二重長音化を防ぐ prev_vowel_lengthened を併せて導入。
回帰テストを追加。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013q62ExxS7dqvyhyJhx1uP5

---------

Co-authored-by: Claude <noreply@anthropic.com>
@TinyKitten TinyKitten self-assigned this Jun 20, 2026
@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 53e3c8b1-a997-4543-b455-961b0887ab53

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

Copy link
Copy Markdown

🚉 停車駅の変更

10 件の新しい停車パターン | 1 件の変更された停車パターン | 9 件の削除された停車パターン

● 停車 / ○ 通過 / △ 一部通過 / ◆ 平日停車 / ◇ 休日停車 / ▲ 一部停車

注意: 2558 件中 20 件のみ表示しています。

🆕 こだま (Kodama) - 山陽新幹線

type_cd=3, line_group_cd=970

変更内容: 19 駅追加

全駅リスト (19駅)
# 駅名 Station 停車
1 新大阪 Shin-Ōsaka
2 新神戸 Shin-Kōbe
3 西明石 Nishi-Akashi
4 姫路 Himeji
5 相生 Aioi
6 岡山 Okayama
7 新倉敷 Shin-Kurashiki
8 福山 Fukuyama
9 新尾道 Shin-Onomichi
10 三原 Mihara
11 東広島 Higashihiroshima
12 広島 Hiroshima
13 新岩国 Shin-Iwakuni
14 徳山 Tokuyama
15 新山口 Shin-Yamaguchi
16 厚狭 Asa
17 新下関 Shin-Shimonoseki
18 小倉 Kokura
19 博多 Hakata

🗑️ こだま (Kodama) - 山陽新幹線

type_cd=3, line_group_cd=1025

変更内容: 19 駅削除

🆕 はやぶさ (Hayabusa) - 東北新幹線

type_cd=7, line_group_cd=1021

変更内容: 18 駅追加

全駅リスト (18駅)
# 駅名 Station 停車
1 東京 Tōkyō
2 上野 Ueno
3 大宮 Ōmiya
4 小山 Oyama
5 宇都宮 Utsunomiya
6 那須塩原 Nasushiobara
7 新白河 Shin-Shirakawa
8 郡山 Kōriyama
9 福島 Fukushima
10 白石蔵王 Shiroishizaō
11 仙台 Sendai
12 古川 Furukawa
13 くりこま高原 Kurikoma-Kōgen
14 一ノ関 Ichinoseki
15 水沢江刺 Mizusawaesashi
16 北上 Kitakami
17 新花巻 Shin-Hanamaki
18 盛岡 Morioka

🗑️ はやぶさ (Hayabusa) - 東北新幹線

type_cd=7, line_group_cd=1076

変更内容: 18 駅削除

🆕 たにがわ (Tanigawa) - 上越新幹線 / 上越新幹線(ガーラ湯沢支線)

type_cd=14, line_group_cd=971

変更内容: 10 駅追加

全駅リスト (10駅)
# 駅名 Station 停車
1 東京 Tōkyō
2 上野 Ueno
3 大宮 Ōmiya
4 熊谷 Kumagaya
5 本庄早稲田 Honjōwaseda
6 高崎 Takasaki
7 上毛高原 Jōmō-Kōgen
8 越後湯沢 Echigo-Yuzawa
9 越後湯沢 Echigo-Yuzawa
10 ガーラ湯沢 GALA Yuzawa

🗑️ たにがわ (Tanigawa) - 上越新幹線 / 上越新幹線(ガーラ湯沢支線)

type_cd=14, line_group_cd=1026

変更内容: 10 駅削除

🆕 かもめ (KAMOME) - 西九州新幹線

type_cd=19, line_group_cd=366

変更内容: 5 駅追加

全駅リスト (5駅)
# 駅名 Station 停車
1 武雄温泉 Takeo-Onsen
2 嬉野温泉 Ureshino-Onsen
3 新大村 Shin-Omura
4 諫早 Isahaya
5 長崎 Nagasaki

🗑️ かもめ (KAMOME) - 西九州新幹線

type_cd=19, line_group_cd=378

変更内容: 5 駅削除

🆕 普通 (Local) - 外房線

type_cd=100, line_group_cd=43

変更内容: 27 駅追加

全駅リスト (27駅)
# 駅名 Station 停車
1 千葉 Chiba
2 本千葉 Hon-Chiba
3 蘇我 Soga
4 鎌取 Kamatori
5 誉田 Honda
6 土気 Toke
7 大網 Ōami
8 永田 Nagata
9 本納 Honnō
10 新茂原 Shim-Mobara
11 茂原 Mobara
12 八積 Yatsumi
13 上総一ノ宮 Kazusa-Ichinomiya
14 東浪見 Torami
15 太東 Taito
16 長者町 Chōjamachi
17 三門 Mikado
18 大原 Ōhara
19 浪花 Namihana
20 御宿 Onjuku
21 勝浦 Katsuura
22 鵜原 Ubara
23 上総興津 Kazusa-Okitsu
24 行川アイランド Namegawa-Island
25 安房小湊 Awa-Kominato
26 安房天津 Awa-Amatsu
27 安房鴨川 Awa-Kamogawa

🗑️ 普通 (Local) - 外房線

type_cd=100, line_group_cd=45

変更内容: 27 駅削除

🆕 普通 (Local) - 東京メトロ丸ノ内線

type_cd=100, line_group_cd=90

変更内容: 25 駅追加

全駅リスト (25駅)
# 駅名 Station 停車
1 池袋 Ikebukuro
2 新大塚 Shin-otsuka
3 茗荷谷 Myogadani
4 後楽園 Korakuen
5 本郷三丁目 Hongo-sanchome
6 御茶ノ水 Ochanomizu
7 淡路町 Awajicho
8 大手町 Otemachi
9 東京 Tōkyō
10 銀座 Ginza
11 霞ケ関 Kasumigaseki
12 国会議事堂前 Kokkai-gijidomae
13 赤坂見附 Akasaka-mitsuke
14 四ツ谷 Yotsuya
15 四谷三丁目 Yotsuya-sanchome
16 新宿御苑前 Shinjuku-gyoenmae
17 新宿三丁目 Shinjuku-sanchome
18 新宿 Shinjuku
19 西新宿 Nishi-shinjuku
20 中野坂上 Nakano-sakaue
21 新中野 Shin-nakano
22 東高円寺 Higashi-koenji
23 新高円寺 Shin-koenji
24 南阿佐ケ谷 Minami-asagaya
25 荻窪 Ogikubo

🆕 普通 (Local) - 東武伊勢崎線

type_cd=100, line_group_cd=93

変更内容: 39 駅追加

全駅リスト (39駅)
# 駅名 Station 停車
1 浅草 Asakusa
2 とうきょうスカイツリー TOKYO SKYTREE
3 曳舟 Hikifune
4 東向島 Higashi-mukojima
5 鐘ヶ淵 Kanegafuchi
6 堀切 Horikiri
7 牛田 Ushida
8 北千住 Kita-senju
9 小菅 Kosuge
10 五反野 Gotanno
11 梅島 Umejima
12 西新井 Nishiarai
13 竹ノ塚 Takenotsuka
14 谷塚 Yatsuka
15 草加 Soka
16 獨協大学前〈草加松原〉 Dokkyodaigakumae〈Soka-Matsubara〉
17 新田 Shinden
18 蒲生 Gamo
19 新越谷 Shin-koshigaya
20 越谷 Koshigaya
21 北越谷 Kita-koshigaya
22 大袋 Obukuro
23 せんげん台 Sengendai
24 武里 Takesato
25 一ノ割 Ichinowari
26 春日部 Kasukabe
27 北春日部 Kita-kasukabe
28 姫宮 Himemiya
29 東武動物公園 Tobu-dobutsu-koen
30 和戸 Wado
31 久喜 Kuki
32 鷲宮 Washinomiya
33 花崎 Hanasaki
34 加須 Kazo
35 南羽生 Minami-hanyu
36 羽生 Hanyu
37 川俣 Kawamata
38 茂林寺前 Morinjimae
39 館林 Tatebayashi

✏️ 普通 (Local) - 東武伊勢崎線

type_cd=100, line_group_cd=94

変更内容: 16 駅追加 | 25 駅削除

全駅リスト (16駅)
# 駅名 Station 停車
1 館林 Tatebayashi
2 多々良 Tatara
3 Agata
4 福居 Fukui
5 東武和泉 Tobu-izumi
6 足利市 Ashikagashi
7 野州山辺 Yashu-yamabe
8 韮川 Niragawa
9 太田 Ota
10 細谷 Hosoya
11 木崎 Kizaki
12 世良田 Serada
13 境町 Sakaimachi
14 剛志 Goshi
15 新伊勢崎 Shin-isesaki
16 伊勢崎 Isesaki

🗑️ 普通 (Local) - 東武伊勢崎線

type_cd=100, line_group_cd=99

変更内容: 39 駅削除

🗑️ 普通 (Local) - 東武伊勢崎線

type_cd=100, line_group_cd=100

変更内容: 16 駅削除

🆕 普通 (Local) - 中央本線 / 篠ノ井線 / 信越本線

type_cd=100, line_group_cd=118

変更内容: 69 駅追加

全駅リスト (69駅)
# 駅名 Station 停車
1 東京 Tōkyō
2 四ツ谷 Yotsuya
3 新宿 Shinjuku
4 吉祥寺 Kichijōji
5 三鷹 Mitaka
6 国分寺 Kokubunji
7 立川 Tachikawa
8 日野 Hino
9 豊田 Toyoda
10 八王子 Hachioji
11 西八王子 Nishi-Hachioji
12 高尾 Takao
13 相模湖 Sagamiko
14 藤野 Fujino
15 上野原 Uenohara
16 四方津 Shiotsu
17 梁川 Yanagawa
18 鳥沢 Torisawa
19 猿橋 Saruhashi
20 大月 Ōtsuki
21 初狩 Hatsukari
22 笹子 Sasago
23 甲斐大和 Kai-Yamato
24 勝沼ぶどう郷 Katsunumabudōkyō
25 塩山 Enzan
26 東山梨 Higashi-Yamanashi
27 山梨市 Yamanashishi
28 春日居町 Kasugaicho
29 石和温泉 Isawa-Onsen
30 酒折 Sakaori
31 甲府 Kōfu
32 竜王 Ryūō
33 塩崎 Shiozaki
34 韮崎 Nirasaki
35 新府 Shimpu
36 穴山 Anayama
37 日野春 Hinoharu
38 長坂 Nagasaka
39 小淵沢 Kobuchizawa
40 信濃境 Shinano-Sakai
41 富士見 Fujimi
42 すずらんの里 Suzurannosato
43 青柳 Aoyagi
44 茅野 Chino
45 上諏訪 Kami-Suwa
46 下諏訪 Shimo-Suwa
47 岡谷 Okaya
48 みどり湖 Midoriko
49 塩尻 Shiojiri
50 塩尻 Shiojiri
51 広丘 Hirooka
52 村井 Murai
53 平田 Hirata
54 南松本 Minami-Matsumoto
55 松本 Matsumoto
56 田沢 Tazawa
57 明科 Akashina
58 西条 Nishijō
59 坂北 Sakakita
60 聖高原 Hijiri-Kōgen
61 冠着 Kamuriki
62 姨捨 Obasute
63 稲荷山 Inariyama
64 篠ノ井 Shinonoi
65 篠ノ井 Shinonoi
66 今井 Imai
67 川中島 Kawanakajima
68 安茂里 Amori
69 長野 Nagano

🆕 普通 (Local) - 総武本線

type_cd=100, line_group_cd=120

変更内容: 22 駅追加

全駅リスト (22駅)
# 駅名 Station 停車
1 千葉 Chiba
2 東千葉 Higashi-Chiba
3 都賀 Tsuga
4 四街道 Yotsukaido
5 物井 Monoi
6 佐倉 Sakura
7 南酒々井 Minami-Shisui
8 榎戸 Enokido
9 八街 Yachimata
10 日向 Hyūga
11 成東 Narutō
12 松尾 Matsuo
13 横芝 Yokoshiba
14 飯倉 Iigura
15 八日市場 Yōkaichiba
16 干潟 Higata
17 Asahi
18 飯岡 Iioka
19 倉橋 Kurahashi
20 猿田 Saruda
21 松岸 Matsugishi
22 銚子 Chōshi

🆕 普通 (Local) - 東北本線

type_cd=100, line_group_cd=121

変更内容: 64 駅追加

全駅リスト (64駅)
# 駅名 Station 停車
1 黒磯 Kuroiso
2 高久 Takaku
3 黒田原 Kurodahara
4 豊原 Toyohara
5 白坂 Shirasaka
6 新白河 Shin-Shirakawa
7 白河 Shirakawa
8 久田野 Kutano
9 泉崎 Izumizaki
10 矢吹 Yabuki
11 鏡石 Kagamiishi
12 須賀川 Sukagawa
13 安積永盛 Asanagamori
14 郡山 Kōriyama
15 日和田 Hiwada
16 五百川 Gohyakugawa
17 本宮 Motomiya
18 杉田 Sugita
19 二本松 Nihommatsu
20 安達 Adachi
21 松川 Matsukawa
22 金谷川 Kanayagawa
23 南福島 Minami-Fukushima
24 福島 Fukushima
25 東福島 Higashi-Fukushima
26 伊達 Date
27 桑折 Koori
28 藤田 Fujita
29 貝田 Kaida
30 越河 Kosugō
31 白石 Shiroishi
32 東白石 Higashi-Shiroishi
33 北白川 Kita-Shirakawa
34 大河原 Ōgawara
35 船岡 Funaoka
36 槻木 Tsukinoki
37 岩沼 Iwanuma
38 館腰 Tatekoshi
39 名取 Natori
40 南仙台 Minami-Sendai
41 太子堂 Taishidō
42 長町 Nagamachi
43 仙台 Sendai
44 東仙台 Higashi-Sendai
45 岩切 Iwakiri
46 陸前山王 Rikuzen-Sannō
47 国府多賀城 Kokufu-Tagajō
48 塩釜 Shiogama
49 松島 Matsushima
50 愛宕 Atago
51 品井沼 Shinainuma
52 鹿島台 Kashimadai
53 松山町 Matsuyamamachi
54 小牛田 Kogota
55 田尻 Tajiri
56 瀬峰 Semie
57 梅ケ沢 Umegasawa
58 新田 Nitta
59 石越 Ishikoshi
60 油島 Yushima
61 花泉 Hanaizumi
62 清水原 Shimizuhara
63 有壁 Arikabe
64 一ノ関 Ichinoseki

🗑️ 普通 (Local) - 中央本線 / 篠ノ井線 / 信越本線

type_cd=100, line_group_cd=125

変更内容: 69 駅削除

🗑️ 普通 (Local) - 総武本線

type_cd=100, line_group_cd=127

変更内容: 22 駅削除

@TinyKitten TinyKitten merged commit a70b0cd into master Jun 20, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant