努力したWiki

推敲の足りないメモ書き多数

ユーザ用ツール

サイト用ツール


documents:voiceroid:seikacenter:seikacenter-002

SeikaCenter の説明

ダウンロードは VOICEROID2/+EX/CeVIOをコマンドラインからしゃべらせるからお願いします。

概要

20190428/uでの説明です。

VOICEROID2/VOICEROID+EX/CeVIO を外部から制御するアプリケーション SeikaCenter です。
製品のGUIを使わずに読み上げを行わせることができます。

SeikaCenter SeikaSay Command Line I/F IPC API DLL Codeer Friendly Your Application API DLL Your Application CeVIO external interface HTTP Proxy API DLL Your Application BOUYOMI CHAN external interface SAPI5 external interface NAudio ipc://echoSeika/seikaCenter VOICEROID2 VOICEROID+EX GYNOID Talk .NET Framework 4.6.1 or Later * DLL Remote Link mode CeVIO 6 * HTTP Access Port:7180 BOUYOMICHAN SAPI5 use CoreAudio interface(audio capture) SeikaCenter Server Service. SeikaSay CLI Client. SeikaServerCompact : HTTP Gateway. (REST API Access) HTTP Proxy HTTP Proxy. (REST API Access)

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へパラメタや発声テキストを渡しています。

参考にしたサイト

また、以下のプロダクト製作者様が公開されているコードは非常に参考になりました。誠にありがとうございます。

  • TTSController 各種 Text-to-Speech エンジンを統一的に操作するライブラリです
  • VoiceRoid2.vb VOICEROID2を外部から読み上げさせる奴
  • VoiCeUtil The support tool for VOICEROID, CeVIO, etc…

使用方法

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

設定1タブ

音声保存に関しての設定です。

音声保存時設定

「再生デバイスからキャプチャ」と「製品の機能を使う」のどちらかを選択します。

  • 推奨は「再生デバイスからキャプチャ」です。発声させると同時にその音声をキャプチャー(録音)してその結果を保存します。
    音声合成製品自体の音声保存時ダイアログを表示させないため、製品の保存機能を使いません。ですが他のアプリケーションで再生する音声までキャプチャしてしまいます。
    キャプチャを行う再生デバイスを、音声合成製品に設定した出力(再生)デバイスに合わせます。
    既定の再生デバイス(既定の出力デバイス)と異なるデバイスを設定する場合、
    「既定の再生デバイスへループバック」にチェックを入れておくことで、キャプチャ時の音声が既定の再生デバイスでも再生されます。
    ※このチェックボックスは近日中に削除します

  • 非推奨は「製品の機能を使う」です。音声合成製品自体の音声保存機能を使う設定です。音声保存時の発声をさせたくない場合に使います。
    ※この方法は現在ダイアログの制御が安定していません。

音声データ編集

「再生デバイスからキャプチャ」を選択した時に、キャプチャした音声の先頭を指定の時間削ります。

これは、実行環境によっては、音声データ先頭に無音データが入ってしまう事があり、それに対応するためのものです。再生が始まるまで無音時間があるな、と思った場合はこの数値を増やしてみてください。

パラメタ保持

毎回音声再生時に抑揚や感情などのパラメタの指定を行うのは大変です。「前の処理で適用した感情パラメタの設定を初期化する」のチェックを外すと前回再生時に指定されたパラメタ設定が初期化されずそのまま残ります。

チェックを外した場合は、明示的に感情パラメタを操作してやる必要があります。

設定2タブ

組み込みのHTTP Proxyの設定です。

HTTP機能

組み込みのHTTP ProxyであるTinySeikaServer.exe起動有無の指定です。これを起動すると、HTTPによる制御が可能になります。

  • 「利用しない」がデフォルトで、これは起動時必ず選択されています。
    この選択状態では組み込みのHTTP ProxyであるTinySeikaServer.exeは起動されていません。
    またこの選択をした時点で起動していたTinySeikaServer.exeは停止します。
     
  • 「利用する」を選択してから利用可能話者タブのボタン「サービス開始/再始動」を押すとTinySeikaServer.exeが起動され、
    指定された待ち受けアドレス、ポート、ユーザ/パスワードでHTTPプロトコルによる制御を受け付けるようになります。
待ち受けアドレス,ポート

HTTPのリクエストを受付するアドレスとポート番号を指定します。

ワークフォルダ

HTTP機能が音声ファイルを加工する際に作業フォルダとして利用します。
また、このフォルダの下に作成した名称“app”のフォルダは、簡易Webサーバの疑似的なドキュメントルートフォルダとなります。
例えば、ワークフォルダを “C:\Work”と指定したのであれば、簡易Webサーバのドキュメントルートフォルダは“C:\Work\app”となります。

ユーザID,パスワード

HTTP機能では利用に際してBASIC認証を必要としています。

CORSヘッダ出力

WebブラウザからJavaScriptでSeikaCenterへアクセスする際に必要となるHTTPヘッダをレスポンスに含めます。

発声情報タブ

SeikaCenterに送られてきた指示を表示します。

他のアプリケーションとの音声分離

SeikaCenterと音声合成製品の設定もご参照ください。

既定の再生デバイスで他のアプリが非定期に音声を出しているような場合(キャプチャ音声に他のアプリケーションの再生音が混じってしまう場合)、別デバイスを音声合成製品だけで占有して使用する方法が考えられます。 もし、他に再生デバイスが利用であればこのような画面になります。この例だとデバイスSB X-Fi Go!が利用可能であると判ります。

「再生デバイスからキャプチャ」で選択したデバイスSB X-Fi Go!を、音声合成製品でも指定する必要があります。





これで、他のアプリが再生デバイスSB X-Fi Go!を使用しない限り音声保存時に他の音声が入る事はなくなります。

ユーザ様から、NETDUETTO(の仮想デバイス)を使った報告を頂いております。
このユーザ様の場合は、既定の再生デバイスの音量を大きくできない事情があり、音声合成製品の出力デバイスに仮想デバイスを指定し、仮想デバイスに出力された音声をキャプチャしています。

「製品の機能を使う」を選択すれば上記の様な設定は不要となりますが、先にも述べた通り「不安定」です。

5秒のセリフ再生を待つことすら耐えられない事情を持ったユーザ様もいます。
そういった場合は「不安定」であることを認識したうえで「製品の機能を使う」を選択するか、他の製作者様の作成されているプロダクトの利用をお勧めします。

documents/voiceroid/seikacenter/seikacenter-002.txt · 最終更新: 2019/05/19 03:33 by k896951

ページ用ツール