programmer

自動読み上げプレゼンテーションシステム

できたもの(動画)

普段は、VTuber として趣味の俳句の動画を上げたりしています。 恋言-れごん - YouTube

VTuber が流行りだす少し前にも YouTube に動画を投稿していて、次のような問題を感じていました。

  • 言い間違いで何回も動画を撮りなおす
  • 編集中に間違いに気づいて、そこの部分だけ撮り直したくなる

最近は、間違えてもそのままでいいかなと思うようになりましたが(何も問題は解決していないですが)

そこで私は

台本を用意して、キャラクターが読み上げてくれるプレゼンテーションシステムを作れば、この撮り直し地獄から抜け出せるのでは?

と思いました。

キャラクターが喋るようにプレゼンをしてくれて、台本なども git で管理できるようにしておけば修正も簡単になり、それを録画すれば動画ができるはずだと。

使った技術

  • reveal.js
    • ブラウザでプレゼンができるライブラリ
  • Amazon Polly
    • 深層学習を利用した合成音声サービス

合成音声は VOICEROID のような製品も有りましたが、ブラウザ上で実現するため、API が用意されていて手頃な値段で使えるものということで、Polly を採用しました。

できたもの(コード)

コード(公開用にライブラリ周りを最新のものに変更しました) https://github.com/regonn/reveal.js

必要なファイル

  • index.html(reveal.js を読み込んだり、Polly での発音の処理を書いてある)
  • index.md(マークダウンでプレゼンの内容を記述する)
  • scenarios(話す内容や、キャラの表情差分の画像ファイル指定等を json で管理しています。next が true の場合には、読み終わると次のスライドへ移動するようになっています)

結局楽になったのか?

実際にコンテンツを作ってみると、Polly の日本語の読み方やタイミングを修正しつつコンテンツを作らないといけなく、微調整などもスライドの最初から聞かないといけないため、結構大変でした。。。

そして、VTuber ブームもきて、動きがあるコンテンツが増えてきたこともあり、このシステムの様に動きが表情とポーズ差分ぐらいだと難しいのかなと思い、自分でも VTuber を初めて、こちらの開発は終わってしまいました。

最近、自分のリポジトリを整理してたら出てきて、せっかく作ったけど、もう利用していないので、この VNOS カレンダーで公開することにしました。

もし、なにか自動でプレゼンテーションをしてみたい人の参考になれば良いかなと思います。