-
Notifications
You must be signed in to change notification settings - Fork 209
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
英語をそれっぽく読み上げられるようにする(OpenJTalkの出力に対して後処理して日本語モーラに変換する案) #1524
Comments
私の方で、色々試してみたいと思います |
@takana-v ありがとうございます!!よろしくお願いします!!! |
e2e-enはNLTKを使用していて、そのライセンス周りを調べたのでメモ。おそらく問題なし!
|
についての情報です。 g2p-enはインポート時にnltkの既定の場所にモデルがあるかどうか調べ、ない場合はダウンロードするという仕様になっています。 また、nltkに変更があったのか使用するデータが間違っているようです。 https://github.com/Kyubyong/g2p/blob/c6439c274c42b9724a7fee1dc07ca6a4c68a0538/g2p_en/g2p.py#L20-L27 nltk_dataの場所を変更する方法は
等があると思います。 https://www.nltk.org/data.html#manual-installation 一応環境変数か |
@sabonerune 詳しくありがとうございます!! |
横から失礼します。 英語をカタカナに変換するもの を作成したので役に立たないかと思います。 cmudictの発音表記もしくは英語のキャラクターいずれがあればカタカナに変換できて、wikitionaryとJMDICT辞書も付属しています。 依頼はnumpyだけで、モデルのweightもpypiのwheelに管理されて、このタスクに便利なので、ちょっと確認いただければと思います。 |
Patchethiumさんのc2k(英単語表記->カタカナ)を使うとなるとこんな感じになると思います:
|
完全にジャストアイデアなのですが、英単語が連続しているときは単語ごとではなくその英語テキストをg2p-enやc2k等に入力する手も面白いかもですね! なんて言ってますが、まずはどんな方法でも良いから英単語をそれっぽく読めれば良さそう! |
そういえば: c2kを埋め込んでみるテストをしました。 (強引にe2kを入れないと動かない、0.2.0でnumpy1もサポートしたらしいのでアプデしたら動く可能性はある) また、これと同じ変換条件を自分が管理している読み上げBotで試しています。感想が集まったらここに書きます。 |
所感:
|
アイテム2~4の返信:
|
一旦辞書はなしがいいかと思ってます!メンテナンスが大変なので。需要が生まれてからでもいいかなと! |
内容
英単語をそれっぽく自然に読ませたいという需要があります。
英単語辞書を追加する案がありましたが、容量増大や英大文字小文字の区別登録、リクエストごとにオンオフ切り替えしづらいなどの課題がありました。
新しい解決策を思いつきました!
OpenJTalkの出力に対し、未知語アルファベットのみに後処理をかけて日本語モーラに変換する方法であれば、これらの課題を迂回できそうです。
具体的には、フルコンテキストラベル取得後に、g2p-en を適用して英単語を音素に変換し、それをさらに何らかの規則で日本語モーラにマッピングする想定です。
英→日変換規則は既存の事例などを参照しながら検討することになりそう。
あと英単語の間に挿入されがちな pau の調整もできると良さそう!
Pros 良くなる点
Cons 悪くなる点
実現方法
AudioQuery にパラメータ追加したらリクエストごとに適用有無を制御できそう。そうすべきか・デフォルトのオンオフはでき次第かも。
g2p-en は初回実行時に辞書をダウンロードするようなので、pyopenjtalk 同様にビルド時ダウンロードだけ行う仕組みも必要になりそうです。
その他
もしうまく動作が確認できたらコア側に正式に実装する可能性もありそう。
でも g2p-en の DNN モデルが numpy を使っていそうなので、工数的に難しい点もあるかも。
意見や議論募集中です! 転ばぬ先の杖がほしい・・・!
そして実験してくださる方も募集中です!!! g2p-enを試すのはそんなに難しくないと思うのですが、英語音素→日本語モーラマッピングが難しそうだなーと思ってます!
The text was updated successfully, but these errors were encountered: