ailia AI Voiceでユーザ辞書を使用する
ailia AI Voiceでは、OpenJTalk形式のユーザ辞書を使用可能です。ユーザ辞書の作成や読み込みを行う方法を紹介します。
ailia AI Voiceの概要
ailia AI VoiceはクロスプラットフォームでAIを使用した高精度な音声合成を行うことのできるライブラリです。ailia AI Voice 1.3でユーザ辞書の読み込みに対応し、専門用語を正しく発音できるようになりました。

ailia AI Voice
ユーザ辞書について
音声合成では、日本語のテキストを音素に変換した上で、音素を音声合成します。日本語のテキストから音素への変換には辞書が使用されます。専門用語など、辞書に含まれない単語では、間違った読みを行う場合があります。
間違った読みの例
ailia AI Voiceでは、下記のPythonスクリプトで音素変換の出力を確認可能です。
import ailia_voice
g2p = ailia_voice.G2P()
g2p.initialize_model(model_path = "../models/")
print(g2p.g2p("事事無碍法界", g2p_type=ailia_voice.AILIA_VOICE_G2P_TYPE_GPT_SOVITS_JA))
例えば、「事事無碍法界」の正しい読みは「ジジムゲホッカイ」ですが、g2pをすると「k o t o g o t o m u g e h o o k a i .」となり、「コトゴトムゲホオカイ」となります。
ユーザ辞書の作成
下記のようなuserdic.csvを作成します。1はコストで、小さいほど選択されやすくなります。0/8はアクセント位置で、8が音素の数、0はアクセント位置を示します。
事事無碍法界,,,1,名詞,固有名詞,一般,*,*,*,事事無碍法界,ジジムゲホッカイ,ジジムゲホッカイ,0/8,*
このCSVはMecabの形式にOpenJTalkの拡張が加えられたものです。各項目は下記となります。
表層形,左文脈ID,右文脈ID,コスト,品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用型,活用形,原形,読み,発音,アクセント,アクセント結合規則
注意点として、アルファベットの単語をユーザ辞書に登録する場合、半角で記載すると、正しく反映されません。全角で記載することで、この問題は回避可能です。
ailia,,,1,名詞,固有名詞,一般,*,*,*,ailia,アイリア,アイリア,0/4,*
ユーザ辞書の変換
pyopenjtalk(0.4.0)を使用して、csvをdicファイルに変換します。
import pyopenjtalk
pyopenjtalk.mecab_dict_index("userdic.csv", "userdic.dic")
ユーザ辞書の読み込み
initialize_modelのuser_dict_path引数に変換したdicファイルを指定します。
import ailia_voice
g2p = ailia_voice.G2P()
g2p.initialize_model(model_path = "../models/", user_dict_path="userdic.dic")
print(g2p.g2p("事事無碍法界", g2p_type=ailia_voice.AILIA_VOICE_G2P_TYPE_GPT_SOVITS_JA))
出力は「j i j i m u g e h o cl k a i .」となり、正しく「ジジムゲホッカイ」と発音できるようになりました。
C++ではailiaVoiceSetUserDictionaryFile API、UnityとFlutterではSetUserDictionary APIを使用することで、dicファイルを指定可能です。ユーザ辞書の指定は、ailiaVoiceOpenDictionaryFile APIやOpenDictionary APIの前に実行する必要があります。
voice.SetUserDictionary(path + "/userdic.dic", AiliaVoice.AILIA_VOICE_DICTIONARY_TYPE_OPEN_JTALK);
voice.OpenDictionary(path, AiliaVoice.AILIA_VOICE_DICTIONARY_TYPE_OPEN_JTALK);
GPT-SoVITS v3の公式辞書
GPT-SoVITS v3では公式でユーザ辞書が公開されています。このユーザ辞書には、一般的な英単語が含まれてます。

ユーザ辞書の内部
このユーザ辞書をコンパイルしてailia AI Voiceで使用できるファイルは下記にアップロードしています。
https://storage.googleapis.com/ailia-models/gpt-sovits-v3/user.dict
まとめ
ailia AI Voiceのユーザ辞書機能を使用することで、より違和感のない音声合成が可能です。特にクラウドの音声合成APIで、特定の単語が正しく読まれない場合に、ailia AI Voiceを使用していただくと、音声合成の精度の向上やAPIコストの削減が可能です。ぜひ、ご検討ください。
アイリア株式会社はAIを実用化する会社として、クロスプラットフォームでGPUを使用した高速な推論を行うことができるailia SDKを開発しています。アイリア株式会社ではコンサルティングからモデル作成、SDKの提供、AIを利用したアプリ・システム開発、サポートまで、 AIに関するトータルソリューションを提供していますのでお気軽にお問い合わせください。
AIで、しごとするなら『ailia.ai(アイリア ドット エーアイ)』は、AIの開発を行う企業、株式会社アクセルおよびアイリア株式会社が展開するAI専門メディアです。ビジネスやライフスタイルを取り巻く最新のAI関連製品やサービスを深く読み解くとともに、ailiaブランドが展開する最新のサービスや、AIの活用・開発・導入を加速させるための情報を幅広く網羅。
近い未来、AIが私たちにもたらすであろう“本質的な自由“について、さまざまな角度から情報を発信します。
ailia Tech BLOG