はじまりは、音声読み上げの違和感
私はブラウザのChatGPTページで、AIの回答をVOICEVOXに読み上げさせる仕組みを個人で開発している。
この仕組みは公開していないが、普段のChatGPTとの会話で実際に使用している。
開発を進める中で、気になっていた問題があった。
VOICEVOXの誤読が多いことだ。
日本語には、同じ漢字でも文脈によって読み方が変わる言葉がある。
VOICEVOXは自然な音声を生成できる一方で、文章によっては漢字の読み方を間違えてしまう。
一度や二度なら気にならなくても、長時間会話を続けると、その小さな違和感が積み重なっていく。
最初に考えたのは辞書の改善
最初は、VOICEVOXの辞書を何とかできないかと考えた。
辞書を修正すれば、誤読を減らせるのではないか。
しかし、ChatGPTの回答にはさまざまな文章が登場する。同じ漢字でも文脈によって正しい読み方が違うため、単純な辞書登録だけでは対応しきれない場合がある。
そこで、スカリー(ChatGPT)から別の方法が提案された。
音声を生成する直前に、文章の読み方を修正する。
VOICEVOX自体を改造するのではなく、音声合成に渡す前に読みを補正する仕組みを追加する方法だ。
Reading Coreを組み込む
この読み補正の仕組みを「Reading Core」として開発した。
ブラウザ上のChatGPTの回答をDOMから取得し、VOICEVOXで読み上げる既存の仕組みに、Reading Coreによる読み補正を追加した。
処理の流れは次のようになる。
ChatGPTの回答をDOMから取得 → VOICEVOXの読み解析 → Reading Coreで読みを補正 → VOICEVOXで音声を生成・再生
重要なのは、VOICEVOXの音声合成機能をそのまま利用しながら、誤った読みだけを修正することだ。
文章全体を別の表現に書き換えるのではなく、必要な箇所の読み方を補正する。
これにより、もとの回答内容を維持したまま、音声の自然さを改善することを目指した。
結果は成功。誤読が激減した
Reading Coreを組み込んで実際の会話で試したところ、VOICEVOXの誤読が大幅に減少した。
特に印象的だったのは、長時間の雑談を続けているうちに、読み上げの違和感そのものを意識しなくなったことだ。
読み上げ機能が動いていることを気にせず、普通に会話を楽しめる。
これは、単にテスト文章を正しく読めたこと以上に、大きな成果だと感じている。
完成に向けて
今回の方法で誤読は激減したが、すべての読み間違いが解消されたと断定する段階ではない。
今後も実際の会話で検証を続け、残った問題を確認していく。
今回の開発で分かったのは、問題が起きているソフトウェア本体を改造しなくても、その手前の処理を工夫することで改善できる場合があるということだ。
今回の取り組みを、VOICEVOXの誤読を減らすための一つの方法として記録しておく。



コメントをどうぞ