SoLA2-TechBlog

退屈な作業はプログラムに任せましょう!日々の作業に少し工夫を足すだけであなたの時間はもっとクリエイティブになる。

nicotalkを自分用にカスタマイズしてみよう! 【Part 3】

追加機能②「プレビュー機能の追加」

前回は台詞以外のパラメータ「音声効果」や「間」が適応されない版の「音声プレビュー」を追加しましたね。活用の場は限られますが、入力した内容をVOICEROIDが正しく読み上げてくれるかを手早く確認する点では役立ちます。ただし、「音声効果」や「間」を含めて確認したい場合は別の仕組みが必要となります。

そこで、本記事では「音声効果」や「間」も含めて確認できる「簡易プレビュー」機能を作っていきたいと思います。といってもこの機能の為に特別なカスタマイズはしません。今ある仕組みを活用して実現していきます。

簡易プレビュー機能の意義

台本シートのある部分をすばやく確認したい時に、この機能は役に立ちます。従来であれば、台本を出力して「step2」「step3」を実行して、aviutlにて確認していました。この方法だと台本が長くなった場合「step2」で地味に時間がかかるため、ちょこちょこ確認するとタイムロスが大きくなります。

簡易プレビュー機能を使って該当箇所を確認する場合も、実は台本を出力してaviutl上で内容を確認するまでの手順は従来と一緒です。ただし確認に必要な時間を短くする事が出来ます。というのも、この機能を利用することで「step2」の実行時間を短縮する事が可能で、更にaviutlでは選択範囲しか再生されなくなります。

ここまで言うと「簡易プレビュー」がどのような機能なのかを想像できる方もいるかも知れませんね。

簡易プレビュー機能の概要

いよいよ機能の概要について説明します。冒頭でも述べたとおり今回の機能は殆ど既存の機能を利用します。というのもこの「簡易プレビュー」機能は出力する台本の範囲を指定する機能なのです。既存の台本出力機能は台本シートに書かれた全ての台詞を出力しますが、この機能では指定した行だけを出力する事になります。

そもそもstep2は差分のみ処理を行うようになっているのですが、その差分を取るために時間がかかっている節があります。そのため処理対象のファイル数が処理時間のボトルネックになっていたので、ならいっそファイルを削ってあげることで、時間を更に短縮しましょうよというのがこの機能のコンセプトです。

簡易プレビュー機能を作る

では実際にカスタマイズ作業に入りましょう。まずは台本シートに範囲選択用のセルを2つ(出力開始行、出力終了行)用意しましょう。そしてその隣に簡易プレビュー用のボタンも用意します。
f:id:gootor3030:20170808231941p:plain

用意したボタンに紐づくマクロの内容は「台本の出力」ボタンに紐づくマクロをコピーして利用します。後はコピーしたマクロのループ箇所を検索して開始と終了の判定を、先ほど追加したセルの値から取得するように変更すればカスタマイズは完了です。

あまりにもカスタマイズの箇所が少なく、これをそのまま公開するのは若干どうかと思ったので、とりあえず修正箇所だけ紹介します。コピーしたメソッドは「DaihonOutput」です。まずは追加した範囲選択用セルから値を変数に代入する処理を追加します。その後全6箇所のループ(whileループが4箇所、doループが2箇所)の範囲を先ほどの変数を使って調整します。以上です。

非常に簡易的な処置ですがこれで出力範囲を限定した台本を生成することが出来るようになります。

nicotalkのカスタマイズまとめ

さてここまで全4回の記事にわたってnicotalkをカスタマイズしてきましたが、いかがでしたか?今回追加した機能の使用感については追って報告したいと思います。また機会がありましたら今度はuwsファイルのカスタマイズにも手を出してみたいと思っています。