· 

MYCOEIROINKを作って永遠の声を手に入れる

どうもオタクです。

永遠・・・手に入れたくない?

 

 

皆さん唐突ですがずんだもんをご存知でしょうか?

最近YouTubeによくいるずんだの妖精(?)なんですけれども

それはこちらのvoicevoxと呼ばれる読み上げソフトの子なんです。

https://voicevox.hiroshiba.jp/

一度聞いてみると分かるのですが非常に良質で違和感なく喋ってくれます。

 

そして、こちらのソフトのUIをお借りしている別のソフトcoeiroinkというものがあります。

https://coeiroink.com/

こちらも非常に良質な音声合成ソフトなのですが

なんと、約500文程度の読み上げデータ(ITAコーパス)さえあればgoogle colabにあげられているコードを使用してcoeiroinkで使用できる音声ライブラリを作成することができるのです!

ITAコーパスとは日本語の音声の機械学習を行う際に必要な言葉の詰まった台本らしいです。

 

これをもっと簡単に、スマホでもできるようにしたものにcoefontがあります。

が、しかし録音をするのにも喋らせるのにもお金がかかります。

 

品質は非常に良いものですし、何より録音したら終わりなので最も楽な方法でもあるのですが

無料で誰でも使える永遠の声にしたいので、今回はmycoeiroinkを作っていこうと思います。

 

目次

  • ITAコーパスにある424文の録音
  • MYCOEIROINK作成コードの実行
  • COEIROINKへの導入
  • 完成品

ではまず録音から始めていきましょう。

coefontを作ったことがあるのでなんとなく予想はできるんですけど

同じ環境で424文ものテキストの録音を行うのはシンプルにキッッッッツイです。

最初はiphoneで録音していたのですが、ファイルリネームや再収録がとても手間で耐えられなかったので、録音支援ツールを入手しようと思います。


coefontではこういった支援ツールが予め用意されていましたが、mycoeiroinkの方ではあくまでも学習のためのコードと実行環境を提供していただいているだけなので、録音支援ツールは自分で手に入れる必要があります。

 

というわけでこちらの記事を参考にreaperとスクリプトを導入しました。

画面はこんな感じになります。液タブがあったので指で操作できて便利でした。

 

とりあえず録音は終わりましたがなんだかんだ四時間ほど費やした気がします。読むのが難しいんです。


収録の際に難しい単語もでてくるので、こっちで読みを確認したほうが良いです。

https://github.com/mmorise/ita-corpus/blob/main/recitation_%E6%9C%97%E8%AA%AD%E8%80%85%E7%94%A8.pdf


なんやかんやあり、がんばって424文収録しました。

しかし、PCのファンのせいでノイズが酷いです。一応ノイズ処理しておきました。

https://note.com/littleright_lr/n/n2486466b17a5

こちらの記事を参考にノイズを消しました。



で、リージョンをファイル名に切り替えて出力します。

発音していない部分の空白があるデータになってしまいましたが

おそらく特徴として識別されないと信じて処理しません。

めんどくさいしな

 

 


  • MYCOEIROINK作成コードの実行

公式サイトに行ってcolabを開いてすべてのコードを指示に従いながら実行するだけです。

なんて便利!

唯一困ったことがあるとすれば、ブラウザを開きっぱなしで長時間放置する必要があることでしょうか。

colabのGPUランタイム上限になるまで約5時間、21epochまで学習しました。

epochとは機械学習で学習回数のことを指します。

epoch数は50ほどあれば良いそうなので一日待ってGPUランタイムが使用できるようになったら再び学習させます。


  • COEIROINKへの導入

詳しいことはcolabの方に書いてあるのでそれに従えばすぐに導入できます。

mycoeiroinkの面白いところは学習回数が浅い段階でも喋らせることができる点かも知れません。

学習回数が20増えるごとに喋らせてみたのでその感想(?)を書いておきます。

 

epoch20

声がプルプルします。決してなめらかとはいえない喋り方です。

 

epoch40

学習させたwavファイルが、発話後の無音部分を処理していなかったためか、文章を喋らせたときに最後の間が長くなってしまっています。

20epochよりもマシですが少し声がプルプルします。

 

epoch60

かなり違和感なく喋るようになりました。声もほぼプルプルしません。

文章の最後の不自然な間もなくなったので、実用できる感じはある。

もう少し学習回数を増やそうと思います。


epoch80

表現が難しいのですが、プルプル感や元の音声モデル感が薄まると言うか、自然になってきました。


epoch100

スクリプトは100epochまで回す用なので、学習は終わりです。これに対しての感想は……とりあえず出力結果を聞いてほしいですね。


  • 完成品

完成品はここのMYCOEから試聴、ダウンロードできます。
なんか音楽作る時にもしかしたら使うかもしれないですけど、今のところ使い道ないです。
仮配布の時には名前をシークレットラボラトリーにしていましたが(仮の名称つける時にまれに使う名前です)
名前と立ち絵をちゃんとつけて、注与ととにしました。注寝とととと同じ成分でできています。
前は性別の設定がありましたが、2人ともデータなので性別を決めることは無粋に思ったので決めないことにしました。

作る工程は楽しいですので、みんなもやってみてください。
おわり