Closed5

bark-with-voice-cloneをGoogle Colaboratoryで試す

kun432kun432

https://github.com/suno-ai/bark

Bark is a transformer-based text-to-audio model created by Suno. Bark can generate highly realistic, multilingual speech as well as other audio - including music, background noise and simple sound effects. The model can also produce nonverbal communications like laughing, sighing and crying. To support the research community, we are providing access to pretrained model checkpoints ready for inference.

Barkはプロンプトでいろいろ話し方を制御できるTTS。

で、これをforkしてカスタムな音声からvoice cloneできるようにしたのが今回のやつ

https://github.com/serp-ai/bark-with-voice-clone

To create a voice clone sample, you need an audio/text pair of less than 7 seconds. (limited testing shows better results with shorter samples (2-4 seconds))

10秒未満の音声でクローンができるとある。ちょっと期待。

で、notebookが提供されているけど、そのままだと動かないので、Google Colaboratory用に修正したnotebookを作ってみた。

https://gist.github.com/kun432/13e4f63e4b7a9c3d4034f42c8a18374b

公式のものとは以下が異なる。

  • Google Colaboratoryでこのnotebookだけで完結するように修正
  • 音声の録音用のインタフェースを追加(wavファイルをアップロードする必要なし)

かんたんに試せるようにしてあるので用法を守ってお試しください。

kun432kun432

以下は補足。

notebook形式のスクリプトがいくつか用意されている

  • generate.ipynb
  • clone_voice.ipynb

単にTTSを動かしてみたいだけならgenerate.ipynbを使う。こちらはBark本家のものだと思う。もしくはHuggingFaceでUIがついているデモもある。

https://huggingface.co/spaces/suno/bark

clone_voice.ipynbのほうが音声クローンの方。上にある通り、そのままでは動かないので修正済み。

ちなみに、最初、公式のnotebookを修正しつつ試していたときは、クローンまでは生成までされたんだけど、それを使ってTTSさせてみたら、

  • 元音声とは似ても似つかない
  • ノイズ混じりになる
  • 音声が正しく出力されない

になってて、うーん、って感じだったのだけど、以下でヒントを貰えて、動くようになりました。ありがとうごさいます。

https://note.com/pomela592/n/n38334a1cff74

issueやコードの中身は追いかけてたのだけど、自分のそれが浅かった・・・

あと、Colaboratory上で音声録音できるインタフェース部分については以下を参考にさせてもらいました。

https://zenn.dev/kurehajime/scraps/c3b3f0cdbeff0a

元のnotebookだとwavファイルを使うのだけど、上記のコードだとmp3を生成するようになってる様子。wavに書き換えればいいのかと思ったんだけど、JavaScriptでwavファイルを生成するのは結構めんどくさそうだった。

https://qiita.com/optimisuke/items/f1434d4a46afd667adc6

ただtorchaudioはmp3もそのまま扱えるようなので、そのまま渡しても何も問題なかった。ちゃんと読み込めてるか?は気になったので、matplotlibで波形出力するようにしてある。

kun432kun432

所感

  • 短い音声サンプルからここまでできるのはかなりすごいのでは。
  • ただし、出力は安定してないし、品質的にもElevenLabsあたりのデモ見てるとさすがに劣る感がある。(それでも十分すごいんだけど)
  • パラメータいろいろいじってみて試すのが良さそう。

あと、このあたりのテクノロジー、精度が上りすぎるとそれはそれでいろいろ問題になりそうと思う部分もある・・・

kun432kun432

colaboratoryでpythonのバージョンが変わっていたので動かなくなっていた。修正した。

このスクラップは2023/04/25にクローズされました