目次
背景
- 日本語のG2P(Grapheme-to-Phoneme、漢字仮名交じり文から読みへの変換)ライブラリを自作する機会があった
- 素朴なG2P(辞書引きベースの変換)は「明日」のような多音字・ヘテロニム(同じ表記で複数の読みを持つ語)を文脈から判定できない
- この課題に対して国内外でどんな研究・手法・OSSがあるかを調査した際のメモをまとめておく
多音字・ヘテロニム判定という問題
- 例えば「市場」は「イチバ」にも「シジョウ」にも読める
- 辞書ベースのG2Pはどちらか一方を機械的に返すだけで、文脈による判定ができない
- 中国語圏では同じ問題が「多音字(Polyphone)」として研究されており、日本語より事例が多い
- 発想は大きく3つに分けられる
- 候補を絞り込んでから文脈で判定する
- 音声を使って実際の発話から読みを検証する
- 辞書知識を後付けで注入する
中国語・多言語の先行研究
多音字判定の研究は、CPP(Chinese Polyphone Prediction)というベンチマークを軸に中国語圏で活発に進んでいる。
| 手法 | 出典 | 要点 |
|---|---|---|
| g2pW | arXiv:2203.10430(Taiwan AI Labs、Interspeech 2022) | 読みの語彙全体を1つの共有出力層にし、対象字ごとにありうる読みだけをハードマスクと条件付きソフト重みで絞り込むConditional Weighted Softmax。CPPでAccuracy 99.08% |
| Polyphone BERT | arXiv:2207.12089(Interspeech 2022) | g2pWと同時期の中国語多音字BERT。Accuracy 92.1→94.1%とg2pWに劣る |
| 半教師あり学習 | arXiv:2102.00621 | ラベル無しデータをlexicon-based labelingとentropy-thresholdingで疑似ラベル化。Accuracy 0.864→0.928 |
| Back-Translation型データ拡張 | arXiv:2211.09495(APSIPA ASC 2022) | G2Pと逆方向のP2Gを両方学習し、予測の往復一貫性で疑似ラベルを検証 |
| LLM+外部知識(Ant Group) | arXiv:2312.11920(2023) | 多音字判定を分類でなく生成タスクとして解く。辞書からのRetrievalとChatGLM-6Bの組み合わせで、学習データに無い未知の多音字も辞書にあれば予測できる。CPPでAccuracy 99.29% |
| DLM | ACL Anthology 2024.naacl-long.294(NAACL 2024) | 長尾分布対策として、表現学習(自然分布のまま)と分類学習(バックボーン凍結+低頻度クラス優遇再学習)を分離するDecoupled Learning。CPPでAccuracy 99.07% |
| Logit Adjustment | arXiv:2007.07314(Google Research、ICLR 2021) | 共有softmaxを前提に、推論時または損失関数側でクラス事前確率のlogをロジットから減算し長尾偏りを補正するシンプルな手法 |
| CVTE-Poly | ISCA Interspeech 2023(CVTE社/華東師範大学) | 既存CPPベンチマークの誤ラベルと不均衡による精度の過大評価を指摘し、拡張データセットと3種類の評価指標を提案 |
| Dict-TTS | ar5iv 2206.02147(NeurIPS 2022) | 辞書の意味表現を注意機構で照合するSemantics-to-Pronunciation Attention。中国語・日本語・広東語で評価したが、日本語だけ大きく精度が悪く、pyopenjtalk等の既存G2Pに劣ると論文自身が明記している |
Dict-TTSの結果は興味深く、辞書の意味知識だけに頼るニューラル手法でも、日本語では既存のルールベースG2Pに勝てないという結果になっている。表語文字と表音文字が混在し、音読み・訓読みという体系を持つ日本語特有の難しさが背景にあると考えられる。
日本語特化の先行研究
日本語を直接対象にした研究は中国語ほど多くないが、いくつか重要な先行事例がある。
| 手法 | 出典 | 要点 |
|---|---|---|
| Sony 日本語TTS front-end | ar5iv 2201.09427(2022) | 形態素解析由来の特徴とBERT/Flair埋め込みをBiLSTMに入力し、多音字判定とアクセント推定を同時学習。KyTeaベースライン比でPolyphone Disambiguation +5.7pt |
| 疑似訓練データ×one-shot | 言語処理学会2023 B3-5(小林・古宮・新納) | BCCWJの大量疑似データで事前学習し、対象ドメインの正解例を1単語1例だけ追加学習するだけで、全データ学習に近い精度まで到達。「市場」「大勢」などが構造的に難しい語として報告されている |
| NHK技研 Transformer+BERTハイブリッド | ISCA Interspeech 2024(Kurihara & Sano) | 外部辞書から引いた読み・アクセント情報をタグとして文中に埋め込み、Transformerがタグ部分をそのまま素通ししてG2P変換する設計。Open JTalk比で助数詞のCERを16.24%から1.42%まで改善 |
| Sarashina2.2-TTS | arXiv:2606.25369(SB Intuitions、2026) | 多音字現象を「読み判定」と「連濁・促音化などの音韻変異」に分けて扱うデータ合成パイプライン。LLMによる文生成、UniDicによる検証、TTSとASRの往復検証を組み合わせ、常用漢字全体に対して約28万件の合成サンプルを生成している |
| LLMベース日本語G2Pベンチマーク(CyberAgent) | arXiv:2606.22009(Koriyama、Interspeech 2026採択) | 30以上のLLMを、形態素解析JSONを出力させるParse modeと全文カナを直接出力させるDirect modeで評価し、OpenJTalkやMeCab等の従来ツールと比較。最良はClaude Opus 4.6(parse mode)でCER 0.52%、従来ツール最良のOpenJTalkは1.03%。LLMは辞書に無い低頻度語に強く、Parse modeがDirect modeを一貫して上回るという知見が得られている |
| YOMI-Bench | arXiv:2607.00664(Mibayashi, Takamura, Yanaka、2026) | 常用漢字から約2,000問の4択選択式ベンチマークを構築し、LLMの漢字読み理解を評価 |
非公開の商用モデル(参考記録)
論文やOSSではないが、多音字判定という点で無視できない先行事例としてParakeet社のParayomi v1.0.0がある。
- 自社の日本語読み推定モデルで、JKYB-Parakeet(後述のベンチマーク)でAccuracy 99.808%を公開している
- 同ベンチマークでGPT-5.5と同率、Gemini 3.1 Proの99.749%を上回る
- Parakeet社自身の説明では、大規模言語モデルのような重いモデルは使わず、外部APIも使わずCPUでも高速に動作するとされている
- モデルの重み・アーキテクチャ・学習データ・パラメータ数は公開されておらず、公開されているHugging Face Spaceもフロントエンドのみでバックエンドは非公開
- 公開情報はZenn記事とベンチマーク数値に限られる
精度そのものは高いが再現性のある手法として参照はできず、あくまで「ここまでの精度が実用レベルで達成可能」という目標値としての位置づけになる。
英語圏のヘテロニム研究
英語の"read"(過去形/現在形)のようなホモグラフも同種の問題として研究されている。
| 手法 | 出典 | 要点 |
|---|---|---|
| SoundChoice | arXiv:2207.13703(Mila/Concordia、Interspeech 2022) | 通常のNLL損失に加えて、ヘテロニムに対応する音素部分だけを切り出して重み付けするヘテロニム損失を導入。ヘテロニム損失ありでAccuracy 82%から87%まで改善している |
| RAD-TTS Alignerによる自動ラベリング | arXiv:2302.14523(NVIDIA) | 音声とテキストのアライメントモデルで、ヘテロニムの各読み候補の音素表現と実際の音声フレームとの距離を計算し、最も近い候補を正解ラベルとして自動採用する。人手ラベリングコストを避けつつデータを増やす手法 |
OSS・公開モデル
| 名称 | 概要 |
|---|---|
| pyopenjtalk | OpenJTalkのPythonバインディング。辞書ベースのルールベースG2P |
| yomikata | ファインチューン済みBERTによる同形異音語判定ライブラリ |
| tsukumijima/pyopenjtalk-plus | pyopenjtalk拡張版。ヘテロニム判定モデル(tsqyomi)を同梱 |
| modernbert-ja(SB Intuitions) | ModernBERTアーキテクチャの日本語版事前学習モデル群 |
| CharsiuG2P | 多言語対応のG2Pツール |
| furigana_whisper_small_jsut(Parakeet Inc.) | Whisperのプロンプトに書記素列を挿入し、Decoderのみをファインチューンして実際に発話された音素列を出力するモデル。音声を条件に使う点が特徴だが、公開小モデル単体の精度は限定的で、MeCabのN-best読み候補との編集距離でフィルタリングする運用が前提になっている。元記事はZenn |
| pykakasi | かな漢字文からローマ字/ひらがな変換。文脈依存の読み分けは無い |
| SudachiPy / fugashi / nagisa / Janome | 形態素解析器。分かち書きを担うツール群で、多音字判定そのものは解決しない |
日本語NLP全般のcuratedリストであるtaishi-i/awesome-japanese-nlp-resourcesも一通り確認したが、上記に挙げた以外で多音字・ヘテロニム判定に直接効く新規のツールは見当たらなかった。
データセット・ベンチマーク
| 名称 | 概要 |
|---|---|
| jvs_nonpara_kana | JVS nonpara100への手動カナ読み注釈3,000文 |
| Joyo-Kanji-Yomi-Benchmark(JKYB) | 常用漢字読みベンチマーク原典 |
| Joyo-Kanji-Yomi-Benchmark-Parakeet-Edition(JKYB-Parakeet) | JKYB拡張版、4,512組×3文=13,536文 |
| NDL「読みの基準(2021年1月)」別紙5 | 国立国会図書館による日本語読みの標準化基準 |
まとめ
- 多音字・ヘテロニム判定の海外研究は中国語(CPPデータセット)が主戦場で、g2pWのConditional Weighted Softmaxが1つの到達点
- その後もLLM活用、長尾分布対策、評価指標の精緻化という方向で改良が続いている
- 日本語特化の研究は数が少なく、Sony、NHK技研、Sarashina2.2-TTS、CyberAgentのLLMベンチマークが主な直接的先行事例
- 発想は「候補を絞り込んでから文脈で判定する」「音声を使って読みを検証する」「辞書知識を後付けで注入する」の3つの軸に大別できる
- 辞書の意味知識だけに頼る手法は日本語では既存のルールベースG2Pに劣るという報告もあり、既存G2Pの出力を文脈で補正するアプローチの妥当性を支持する結果が多い
