20190428/uでの説明です。
VOICEROID2/VOICEROID+EX/CeVIO を外部から制御するアプリケーション SeikaCenter です。
製品のGUIを使わずに読み上げを行わせることができます。
SeikaCenterはIPC,HTTP,のいずれかで外部から指示を受け音声合成製品を操作します。
IPC利用 | API DLL 経由で実施(通常モード)。SeikaSayコマンドでも利用可能。 |
---|---|
HTTP利用 | API DLL 経由で実施(リモート接続モード)。SeikaSayコマンドでも利用可能。 |
HTTPクライアントプログラムで実施。 |
IPCを使う場合SeikaCenterとクライアントプログラムは同一のPCで実行される必要があります。ですが高速です。
HTTPを使う場合SeikaCenterとクライアントプログラムは異なるPCで実行されていても構いません。ネットワーク的に接続できていれば利用可能です。但し実行時のラグが発生しやすくなります。
同梱されているSeikaCenterAPI.dllはIPC,HTTP,どちらにも対応できます。SeikaCenterAPI.dllを使わず、独自にHTTPクライアントを作成して利用しても構いません。
株式会社Codeer(コーディア)の提供する無償のライブラリFriendlyを利用しています。
CeVIOの提供する外部連携インターフェースを利用しています。※製品を持っていないと使えません
.NETで音声を扱うライブラリNAudioを利用しています。
プロセス間通信でSeikaSayコマンドからSeikaCenterへパラメタや発声テキストを渡しています。
また、以下のプロダクト製作者様が公開されているコードは非常に参考になりました。誠にありがとうございます。
こちらをご確認ください。
インストール後、デスクトップにできたショートカットもしくはメニューの「SeikaCenter」をクリックしてSeikaCenterを起動します。以下のようなウインドウが出てきます。
次にSeikaCenterから制御する VOICEROID、CeVIOを起動します。
起動出来たら、SeikaCenterの「使用製品選択」にある必要なチェックボックスにチェックを入れ、「サービス開始/再始動」ボタンを押します。一覧に話者・製品が表示されたら、制御可能な状態です。
一覧にある “cid” が「話者」を指定するためのコードになります。
この環境だと、VOICEROID+EXの“京町セイカ”は1700、VOICEROID2の“琴葉茜”は2000、CeVIOの“さとうささら”は3000、ガイノイドTalkの“鳴花ヒメ”は5000、となります。
SeikaCenter起動時に選択されているタブです。サービス開始の指示、再始動の指示を行います。
ボタン「サービス開始/再始動」を押した時に、チェックを入れた製品が起動プロセス中から検索されます。 検索後、一覧には各製品に登録されている話者が表示されています。
話者には番号 cid が割り振られます。これは利用環境により異なります。
製品 | CID範囲 |
---|---|
SAPI | 1000 ~ 1399 |
SpeechPlatform | 1400 ~ 1699 |
VOICEROID+EX | 1700 ~ 1999 |
VOICEROID2 | 2000 ~ 2999 |
CeVIO | 3000 ~ 3999 |
棒読みちゃん | 4000 ~ 4999 ※現状はデフォルトの8話者しか認識しません |
ガイノイドTalk | 5000 ~ 5999 |
音声保存に関しての設定です。
「再生デバイスからキャプチャ」と「製品の機能を使う」のどちらかを選択します。
「再生デバイスからキャプチャ」を選択した時に、キャプチャした音声の先頭を指定の時間削ります。
これは、実行環境によっては、音声データ先頭に無音データが入ってしまう事があり、それに対応するためのものです。再生が始まるまで無音時間があるな、と思った場合はこの数値を増やしてみてください。
毎回音声再生時に抑揚や感情などのパラメタの指定を行うのは大変です。「前の処理で適用した感情パラメタの設定を初期化する」のチェックを外すと前回再生時に指定されたパラメタ設定が初期化されずそのまま残ります。
チェックを外した場合は、明示的に感情パラメタを操作してやる必要があります。
組み込みのHTTP Proxyの設定です。
組み込みのHTTP ProxyであるTinySeikaServer.exe起動有無の指定です。これを起動すると、HTTPによる制御が可能になります。
簡易Webサーバとしても動作します。
コンテンツは “ワークフォルダ\app” に格納します。
HTMLファイルやJavaScriptファイル、画像、音声ファイルと言った静的コンテンツのみ利用可能です。CGIやスクリプトのサポートはありません。
favicon.icon は“ワークフォルダ\app”の直下に配置してください。
利用するコンテンツのMIMETYPEを増やす場合には、“ワークフォルダ\app”フォルダ直下に mime.conf ファイルを配置します。このファイルにファイル拡張子とMIMETYPEを定義します。
SeikaCenterに同梱されているappフォルダにサンプルがあるので参考にしてください。
HTTPのリクエストを受付するアドレスとポート番号を指定します。
HTTP機能が音声ファイルを加工する際に作業フォルダとして利用します。
また、このフォルダの下に作成した名称“app”のフォルダは、簡易Webサーバの疑似的なドキュメントルートフォルダとなります。
例えば、ワークフォルダを “C:\Work”と指定したのであれば、簡易Webサーバのドキュメントルートフォルダは“C:\Work\app”となります。
HTTP機能では利用に際してBASIC認証を必要としています。
WebブラウザからJavaScriptでSeikaCenterへアクセスする際に必要となるHTTPヘッダをレスポンスに含めます。
SeikaCenterに送られてきた指示を表示します。
SeikaCenterと音声合成製品の設定もご参照ください。
既定の再生デバイスで他のアプリが非定期に音声を出しているような場合(キャプチャ音声に他のアプリケーションの再生音が混じってしまう場合)、別デバイスを音声合成製品だけで占有して使用する方法が考えられます。 もし、他に再生デバイスが利用であればこのような画面になります。この例だとデバイスSB X-Fi Go!が利用可能であると判ります。
「再生デバイスからキャプチャ」で選択したデバイスSB X-Fi Go!を、音声合成製品でも指定する必要があります。
これで、他のアプリが再生デバイスSB X-Fi Go!を使用しない限り音声保存時に他の音声が入る事はなくなります。
ユーザ様から、NETDUETTO(の仮想デバイス)を使った報告を頂いております。
このユーザ様の場合は、既定の再生デバイスの音量を大きくできない事情があり、音声合成製品の出力デバイスに仮想デバイスを指定し、仮想デバイスに出力された音声をキャプチャしています。
「製品の機能を使う」を選択すれば上記の様な設定は不要となりますが、先にも述べた通り「不安定」です。
5秒のセリフ再生を待つことすら耐えられない事情を持ったユーザ様もいます。
そういった場合は「不安定」であることを認識したうえで「製品の機能を使う」を選択するか、他の製作者様の作成されているプロダクトの利用をお勧めします。