Closed2
Kokoro TTSモデル向けG2Pエンジン「misaki」を試す
Kokoroモデルも後で試すけども、とりあえず。
GitHubレポジトリ
misaki
Misakiは、ココロモデル用のG2Pエンジンです。
謝辞
- 🛠️ Misakiは、上記でリンクされている多くの優れたG2Pプロジェクトの上に構築されています。
- 🌐 多くの言語でG2Pにアドバイスや貢献をしてくださったネイティブスピーカーの皆さま、ありがとうございました。
- 👾 Kokoro Discordサーバー:https://discord.gg/QuGxSWBfQy
- 🌸 Misakiは日本語の名前であり、Kokoroとともに『ターミネーター』フランチャイズの登場人物でもあります。
英語・日本語・韓国語・中国語・ベトナム語に対応しているようで、日本語は以下のライブラリが使用されている。
Colaboratoryで。
パッケージインストール。extrasで言語を指定する。
!pip install misaki[en,ja]
!pip freeze | grep -i misaki
出力
misaki==0.7.16
英語の場合
from misaki import en
g2p = en.G2P(
trf=False, # transformer使用するかどうか(?)
british=False, # イギリス英語の発音辞書に切り替えるかどうか
fallback=None # 発音辞書にない場合にフォールバック関数を指定
)
text = '[Misaki](/misˈɑki/) is a G2P engine designed for [Kokoro](/kˈOkəɹO/) models.'
phonemes, tokens = g2p(text)
print(phonemes)
出力
misˈɑki ɪz ɐ ʤˈitəpˈi ˈɛnʤən dəzˈInd fɔɹ kˈOkəɹO mˈɑdᵊlz.
for token in tokens:
print(token)
出力
MToken(text='Misaki', tag='NNP', whitespace=' ', is_head=True, alias=None, phonemes='misˈɑki', stress=None, currency=None, num_flags='', prespace=False, rating=5, start_ts=None, end_ts=None)
MToken(text='is', tag='VBZ', whitespace=' ', is_head=True, alias=None, phonemes='ɪz', stress=None, currency=None, num_flags='', prespace=False, rating=4, start_ts=None, end_ts=None)
MToken(text='a', tag='DT', whitespace=' ', is_head=True, alias=None, phonemes='ɐ', stress=None, currency=None, num_flags='', prespace=False, rating=4, start_ts=None, end_ts=None)
MToken(text='G', tag='NNP', whitespace='', is_head=True, alias=None, phonemes='ʤˈi', stress=None, currency=None, num_flags='', prespace=False, rating=4, start_ts=None, end_ts=None)
MToken(text='2', tag='NNP', whitespace='', is_head=True, alias='to', phonemes='tə', stress=None, currency=None, num_flags='', prespace=False, rating=4, start_ts=None, end_ts=None)
MToken(text='P', tag='NNP', whitespace=' ', is_head=True, alias=None, phonemes='pˈi', stress=None, currency=None, num_flags='', prespace=False, rating=4, start_ts=None, end_ts=None)
MToken(text='engine', tag='NN', whitespace=' ', is_head=True, alias=None, phonemes='ˈɛnʤən', stress=None, currency=None, num_flags='', prespace=False, rating=4, start_ts=None, end_ts=None)
MToken(text='designed', tag='VBN', whitespace=' ', is_head=True, alias=None, phonemes='dəzˈInd', stress=None, currency=None, num_flags='', prespace=False, rating=4, start_ts=None, end_ts=None)
MToken(text='for', tag='IN', whitespace=' ', is_head=True, alias=None, phonemes='fɔɹ', stress=None, currency=None, num_flags='', prespace=False, rating=4, start_ts=None, end_ts=None)
MToken(text='Kokoro', tag='NNP', whitespace=' ', is_head=True, alias=None, phonemes='kˈOkəɹO', stress=None, currency=None, num_flags='', prespace=False, rating=5, start_ts=None, end_ts=None)
MToken(text='models', tag='NNS', whitespace='', is_head=True, alias=None, phonemes='mˈɑdᵊlz', stress=None, currency=None, num_flags='', prespace=False, rating=3, start_ts=None, end_ts=None)
MToken(text='.', tag='.', whitespace='', is_head=True, alias=None, phonemes='.', stress=None, currency=None, num_flags='', prespace=False, rating=4, start_ts=None, end_ts=None)
日本語の場合。言語によって使い方が全然異なる。日本語のソースはこちら。
2025/05/28追記: 辞書のダウンロードが必要なのを書いてなかった。
!python -m unidic download
from misaki import ja, en
g2p = ja.JAG2P()
phonemes = g2p("ミサキは、ココロモデル向けにデザインされたG2Pエンジンです。")
print(phonemes)
出力
mʲisa kʲi βa, kokoɾo modeɾɯ mɯke ɲi deʣaiɴ saɾeta G ɲi P eɲʥiɴ desɨ.
このスクラップは2025/02/17にクローズされました