Podcastやってますか?
自分は2人で毎週15分程度,最近気になった記事を調べて流しています.
どれくらい視聴者がいるかというと正直ほぼ0です.
原因としては知名度であったり,その放送の価値であったりもあると思いますが,
1番は華が無い ではないかと.
イケボでもない男性二人では,無理だろ...(┌(┌o^)┐ホモォ...)と思いつつある今日この頃.
スーパーいけてる音声認識whisperがオープンソースで公開されました.
whisperについては自分の試してみた記事と他の方記事を参照.
自分のポッドキャストの音声をwhisperで書き起こしてみた - ヨシ!
音声認識モデルwhisperの全モデル文字起こし比較 - 毎日がEveryday、日々 Day by Day
whisperで speech to text を行い,voicevoxで text to speechすることで, 我々の喋りをずんだもんや四国めたんが再現してくれます.
手順
- audacityでそれぞれで収録
- 音声を手動で位置合わせ
- 無音区間を検出
- whisperで speech to text
- voicevoxでtext to speech
- whisperの位置情報から並び替え
1.audacityでそれぞれ収録
我々の収録スタイルとしては,audacityでそれぞれでローカルに録音+zoomによる合成済み録音を出力.
2. 音声を位置合わせ
zoomの録音とローカル録音をaudacity上で手動で位置合わせ.
3. 無音区間の切り抜き
ポッドキャストでは,片方が喋って,もう一方は黙っている状況が存在する. whisperでは検出結果に無音か否かの結果も入っているが,無音区間でも,大体何かしらの文字が返される傾向があった.(ん,ああ,うんなど.)
その状態で推論を進めると,実際に喋っている部分でも,隠れ状態の影響なのか,結果がおかしくなる場合があったため, pydubを用いて無音区間を切り抜き音声を分割.
AIのべりすとでも,発生している松本人志現象に似た状態ではないかと推察される.
4. whisper で speech to text
無音区間を取り除いた音声で whisperを使って speech to textを実行.
実行例.
whisper --device cuda --model medium --output_dir sts 2022_10_15\okubo_aligned.wav
srtには翻訳テキストとその開始から終了までが順番に記録されている.
例:
1 00:00:00,000 --> 00:00:04,640 はい 今週もよろしくおねがいします 2 00:00:04,640 --> 00:00:06,640 はい 3 00:00:06,840 --> 00:00:10,880 まず自分から まず一つ目が
4. voicevoxで音声合成
voicevoxは エディタ,エンジン,コアの3つのパッケージから構成されており,
エンジン部分だけを利用した. voicevox-engine
voicevox-engineを別途起動,httpで音声合成したいテキストを投げることで変換してくれる.(便利)
5. 3,4を利用して音声再構成
voicevoxで出力する音声はその音声を何秒で発声するといったやり方はできないので, 文字起こしのsrtファイルと合成音声を使って,実際の音声の時間軸を元に再構成した.
結果
まだ,ある程度確認の必要性はあるが,大分再現できた.voicevoxの方は話すスピードを1.3倍ぐらいにするとちょうどよい感じだった.
元の音声:
ずんだもんと四国めたんで変換した音声:
パッケージ化
一連の作業をライブラリ化した
感想
正直言って,自分の音声より,ゆっくり,ずんだもんといった合成音声の方が慣れ親しんだ感があり,実家のような安心感がある.(もっと実家を見ろ)
テキスト入力と音声入力どちらが容易かでいえば,音声の方だと思う.
これを使って変換し,さらに立ち絵などを付けて,将来的にはポッドキャストを動画配信できるよう計画中...
音声,文章を感情分析して,立ち絵にバリエーションを付けることで,さらに,自動で立ち絵を選択することできるのではないかと検討している.
宣伝
ポッドキャストやってます👇見てくれるとうれしいです~