実況動画制作を自動化したい② ~Softalk編~

面倒くさいことをやりたくないため、省エネに全力を尽くすのです。
お世話になります。
前回に引き続き自動化の記事です。

先日ひさびさ(?)にSoftalkを使用した実況動画(いわゆるゆっくり実況)を作りました。
生声よりも手間がかかるんじゃねって思っていましたが、仕組みさえ作っていればゆっくり実況のほうが楽でした。

作業内容の比較

~生声実況の場合~

①録音した音声を編集
 →音量調整
 →ノイズ低減(ホワイトノイズ、リップノイズ、マイクボフボフなど)
 →いらんところのカット
②動画と合わせてタイミングを調整
→1試合あたり約40分

~ゆっくり実況の場合~

Softalkで音声ファイルを作成 ★
②動画と合わせてタイミングを調整
→1試合あたり約25分

★のところが今回自動化したところです。
自動化すれば生声実況に比べ15分も短縮できます!

Softalk自動化

皆さんはSoftalkって使ったことはありますか?
そう!こんな感じのGUIです。
f:id:YaliYalice:20210129220016p:plain
テキストスペースに文章を入力し、下の方にある再生ボタンを押すとおなじみのあの声で、入力された文章をしゃべってくれます。
赤い方のボタンを押すと音声ファイルとして書き出すこともできます。
さくっと使えてすごく便利ですが、実況動画を作成するときは台本の文章を1行ずつ、いちいち手動でコピペ&録音を繰り返さないといけません。
これがとても面倒くさい。
ということで自動化してみました。

自動化の指針

GUIの自動化は難しいなあと思っていましたが、Softalkはなんとコマンドラインから実行できるようです。
こんな感じで実行できます↓ (「自動化できそう」としゃべってくれます)

C:\SofTalk.exe /W:自動化できそう

ということで、以下の手順でプログラムを組んでやれば自動化できるわけですね。

  • 台本から文章を1行抽出する
  • "/W:"引数に文章を指定
  • 台本の最終行まで上記を繰り返す

台本をエクセルに書くことが多いので、今回はエクセルマクロでさくっと実装しました。
テキストファイルに書いて、バッチファイルかなんかで読ませるとかでもいいと思います。

Softalkの引数について

今回使用したものだけ挙げます。詳しくはSoftalk付属のヘルプファイルをご覧ください。

引数 説明
/NM: 声の種類の指定(女性01とかロボットとか)
/O: 音程パラメータ
/S: 速度パラメータ
/V: 音量パラメータ
/X: 画面表示の有無(0:表示 1:非表示)
/R: 録音した音声ファイルの保存先の指定
(C:\result\hoge.wav みたいなファイルパス)
/W: 読み上げる文章

つまずいたところ

  • "/W:"引数の指定は最後にしよう

/W:"以降の文字をすべて読み上げ対象とする仕様なので、最後に書かないと引数指定がそのまま読まれちゃいます

NG:C:\SofTalk.exe /W:自動化できそう /O:120

→"/O:120"も読み上げられちゃう!

  • 録音が終了したらcloseオプションを実行しよう

closeオプションを実行しないと、SoftalkGUI操作ができなくなってしまいます。

C:\SofTalk.exe /close

おまじないみたいなもんですね。

課題

  • 間違いの訂正が面倒

→個別でGUIから訂正した
 →読み登録である程度回避できる
  →誤字脱字は知らん

  • 出力した音声ファイルを動画編集ソフトに読み込ませるのが結局手動

→音声ファイルを結合させるフリーソフトで対応?
 →Aviutlにはファイル一括読み込み用のプラグインあり

最後に

似たようなのがすでにありましたわ。。。
www.nicovideo.jp

以上です。
次は何を自動化しようか。