ルモーリン
ホーム 更新 Perl Sample サービス 雑談 鉄ゲタ Linux リンク 連絡先

AIきりたんのバッチファイルを便利に改造

2020-06-08

AIきりたんを使う際はバッチファイルを何度も起動します。 その際に、より使いやすくなる工夫をしています。 皆さんの参考になれば幸いです。

バッチファイルをダブルクリックして起動するとAIきりたんが歌い終わった(wavファイルを生成した)際に画面が閉じてしまいます。 特にmusicxmlファイルを作り始めた頃はAIきりたんのエラーや警告のメッセージが表示されますが自動で閉じるとメッセージを把握できません。 そこで、バッチファイルの最後にキー入力待ちのコマンドを書いておき、閉じるのを防止します。
pause
個々のプログラムが実行する直前に書いておくとウィンドウのタイトルになります。 すると、ウィンドウをアイコン化(最小化)しておいてもタスクバーにタイトルが表示されますから、進捗が分かります。 特に全ての処理を終えた後に「title 終了しました」と書いておけばいつの間にか終わってたということもありません。
title MusicXMLtoLabel
 :
 :
title NEUTRINO
 :
 :
title WORLD
 :
 :
title NSF
 :
 :
title 終了しました

NSF版だけを使うのでWORLDは不要ですから、コメントにして実行しないようにします。

rem echo %date% %time% : start WORLD
rem bin\WORLD.exe output\%BASENAME%.f0 output\%BASENAME%.mgc output\%BASENAME%.bap -f %PitchShift% -m %FormantShift% -o output\%BASENAME%_syn.wav -n %NumThreads% -t

バッチファイルはNEUTRINOフォルダ内のmusicxmlファイルを参照、同フォルダ内のoutputにwavファイルを生成します。 単純にwavファイルを作る場合はよいのですけれど、動画の完成がゴールの場合、動画用の作業フォルダにファイル一式を置きたいです。 そこで、作業フォルダからNEUTRINOフォルダへmusicxmlファイルをコピー、生成したwavファイルを作業フォルダに書き戻します。

: Project settings
rem 元の設定をrem文でコメントにします。
rem set BASENAME=sample1
rem 作業フォルダ
set PATHNAME=E:\AIきりたんの魔女っ子メグちゃん
rem AIきりたんに歌ってもらうmusicxmlファイル名
set ORIGINAL=魔女っ子メグちゃん
rem 漢字のファイル名を扱えない可能性を防止するためのアルファベットのファイル名
set BASENAME=sample0
rem この設定は各自調整(うちのPCは8コア)
set NumThreads=6

: musicXML_to_label.exe
set SUFFIX=musicxml

rem 作業フォルダからmusicxmlファイルをコピー
copy "%PATHNAME%\%ORIGINAL%.%SUFFIX%" "score\%SUFFIX%\%BASENAME%.%SUFFIX%"

 :
 :

rem AIきりたんがwavファイルを生成した後に書きます
rem 作業フォルダにwavファイルを書き戻す
copy "output\%BASENAME%_nsf.wav" "%PATHNAME%\%ORIGINAL%.wav"

AIきりたんの歌をDAWで扱う場合に、歌ってもらう度にインポートして位置を合わせるのは面倒です。 例えば「魔女っ子メグちゃん」を歌ってもらった際は、優に60テイクを超えていました。 なのでインポートしても元のwavファイルを参照してもらえるように工夫します。 DAWが扱う形式に合わせるよう、wavのフォーマットを変更します。 AIきりたんのNSF版が歌ってくれるwavファイルはサンプリングレートが24kHzのモノラルですから48kHz/16bit/2chに変更します。 このコマンドが実行できるよう予めffmpegをインストールしてください。 書き戻しのcopyコマンドを_nsf_upsample.wavをコピーするよう変えてください。

ffmpeg -y -i "output\%BASENAME%_nsf.wav" -ar 48k -ac 2 "output\%BASENAME%_nsf_upsample.wav"