====== SeikaCenterの説明 ======
SeikaCenterのサポートは終了いたしました。\\ この製品に修正や機能拡張は今後行われません。現時点での最新版のダウンロードは可能です。\\
後継プロダクト AssistantSeika をご利用ください。
===== 概要 =====
20190428/uでの説明です。
VOICEROID2/VOICEROID+EX/CeVIO を外部から制御するアプリケーション SeikaCenter です。\\
製品のGUIを使わずに読み上げを行わせることができます。
ipc://echoSeika/seikaCenter
|
.------------------------------------. |
|[SC] | |
| | | #----------------------#
| SeikaCenter | v |[SC] SeikaSay |
| .---------+---# #--------+--. Command Line I/F |
| | IPC | | <=========>|API DLL #--+-------------------#
#--------------------# | | | | #-----------'
| VOICEROID2 | | | | | <==+
| VOICEROID+EX .----+---+------------. '---------+---# \ #-----------------#
#---------------+ | | | \ | Your |
| Codeer|Friendly | | \ #--------+--. Application |
#---------------+ | | | +==>|API DLL #--+--------------#
| GYNOID Talk '----+---+------------' | #-----------' .NET Framework 4.6.1 or Later
| | | |
#--------------------# | | #-----------------#
| | | Your |
.---------+-----------. .---------+---# #--------+--. Application |
| CeVIO | | | | | <========> |API DLL #--+--------------#
#--------------+ external|interface | | HTTP | | #-----------' * DLL Remote Link mode
| CeVIO 6 '-----+---+-----------' | Proxy| | <==+
| | | '---------+---# \ #-----------------#
#--------------------# | | +=============>| Your |
| | | Application |
.---------+-----------. | #-----------------#
| BOUYOMI|CHAN | | * HTTP Access Port:7180
#--------------+ external|interface | |
| BOUYOMICHAN '-----+---+-----------' |
| | | |
#--------------------# | |
| |
.---------+-----------. |
| SAPI5 | | |
#--------------+ external|interface | |
| SAPI5 '-----+---+-----------' |
| | | |
#--------------------# | |
| .--------. |
| | NAudio |<====+== use CoreAudio interface(audio capture)
| '--------' |
'------------------------------------'
SeikaCenter : Server Service.
SeikaSay : CLI Client.
SeikaServerCompact : HTTP Gateway. (REST API Access)
HTTP Proxy : HTTP Proxy. (REST API Access)
[SC]: {"fill":"#a7ffbe","a2s:delref":true}
[storage]: {"a2s:type":"storage","a2s:delref":true}
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(コーディア)の提供する無償のライブラリ[[http://www.codeer.co.jp/AutoTest|Friendly]]を利用しています。\\
CeVIOの提供する[[http://guide2.project-cevio.com/interface|外部連携インターフェース]]を利用しています。※製品を持っていないと使えません\\
.NETで音声を扱うライブラリ[[https://github.com/naudio/NAudio|NAudio]]を利用しています。\\
プロセス間通信でSeikaSayコマンドからSeikaCenterへパラメタや発声テキストを渡しています。
==== 参考にしたサイト ====
また、以下のプロダクト製作者様が公開されているコードは非常に参考になりました。誠にありがとうございます。
* [[https://github.com/ksasao/TTSController|TTSController]] 各種 Text-to-Speech エンジンを統一的に操作するライブラリです
* [[https://gist.github.com/sskwwskwww/38d99e2453c31ffc3ed335a6bdd56908|VoiceRoid2.vb]] VOICEROID2を外部から読み上げさせる奴
* [[https://github.com/ruche7/VoiCeUtil|VoiCeUtil]] The support tool for VOICEROID, CeVIO, etc...
===== 使用方法 =====
==== 対応製品 ====
[[limited-001#対応製品|]]をご確認ください。
==== SeikaCenterの起動 ====
インストール後、デスクトップにできたショートカットもしくはメニューの「SeikaCenter」をクリックしてSeikaCenterを起動します。以下のようなウインドウが出てきます。
{{pasted:20230411-193508.png?nolink}}
次にSeikaCenterから制御する VOICEROID、CeVIOを起動します。\\
起動出来たら、SeikaCenterの「使用製品選択」にある必要なチェックボックスにチェックを入れ、「サービス開始/再始動」ボタンを押します。一覧に話者・製品が表示されたら、制御可能な状態です。
{{pasted:20230411-193532.png?nolink}}
一覧にある "cid" が「話者」を指定するためのコードになります。\\
この環境だと、VOICEROID+EXの"京町セイカ"は1700、VOICEROID2の"琴葉茜"は2000、CeVIOの"さとうささら"は3000、ガイノイドTalkの"鳴花ヒメ"は5000、となります。
==== 利用可能話者タブ ====
SeikaCenter起動時に選択されているタブです。サービス開始の指示、再始動の指示を行います。
{{pasted:20230411-193600.png?nolink}}
=== 使用製品選択 ===
ボタン「サービス開始/再始動」を押した時に、チェックを入れた製品が起動プロセス中から検索されます。
検索後、一覧には各製品に登録されている話者が表示されています。
話者には番号 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タブ ====
音声保存に関しての設定です。
{{pasted:20230411-193624.png?nolink}}
=== 音声保存時設定 ===
「再生デバイスからキャプチャ」と「製品の機能を使う」のどちらかを選択します。
* 推奨は「再生デバイスからキャプチャ」です。発声させると同時にその音声をキャプチャー(録音)してその結果を保存します。\\ 音声合成製品自体の音声保存時ダイアログを表示させないため、製品の保存機能を使いません。ですが他のアプリケーションで再生する音声までキャプチャしてしまいます。\\ キャプチャを行う再生デバイスを、音声合成製品に設定した出力(再生)デバイスに合わせます。\\ \\
* 非推奨は「製品の機能を使う」です。音声合成製品自体の音声保存機能を使う設定です。音声保存時の発声をさせたくない場合に使います。\\ こちらを使う際、VOICEROID2とガイノイドTalkのメッセージ表示レベルを“冗長”にしてください。\\ 保存時の最後に出るダイアログを音声データ出力終了の目印にしています。※この方法は現在ダイアログの制御が安定していません。\\ {{pasted:20230411-193643.png?nolink}} {{pasted:20230411-193709.png?nolink}}\\
=== 音声データ編集 ===
「再生デバイスからキャプチャ」を選択した時に、キャプチャした音声の先頭を指定の時間削ります。
これは、実行環境によっては、音声データ先頭に無音データが入ってしまう事があり、それに対応するためのものです。再生が始まるまで無音時間があるな、と思った場合はこの数値を増やしてみてください。
=== パラメタ保持 ===
毎回音声再生時に抑揚や感情などのパラメタの指定を行うのは大変です。「前の処理で適用した感情パラメタの設定を初期化する」のチェックを外すと前回再生時に指定されたパラメタ設定が初期化されずそのまま残ります。
チェックを外した場合は、明示的に感情パラメタを操作してやる必要があります。
==== 設定2タブ ====
組み込みのHTTP Proxyの設定です。
{{pasted:20230411-193733.png?nolink}}
=== HTTP機能 ===
組み込みのHTTP ProxyであるTinySeikaServer.exe起動有無の指定です。これを起動すると、HTTPによる制御が可能になります。\\
* 「利用しない」がデフォルトで、これは起動時必ず選択されています。\\ この選択状態では組み込みのHTTP ProxyであるTinySeikaServer.exeは起動されていません。\\ またこの選択をした時点で起動していたTinySeikaServer.exeは停止します。\\
* 「利用する」を選択してから利用可能話者タブのボタン「サービス開始/再始動」を押すと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"となります。
== ユーザID,パスワード ==
HTTP機能では利用に際してBASIC認証を必要としています。
== CORSヘッダ出力 ==
WebブラウザからJavaScriptでSeikaCenterへアクセスする際に必要となるHTTPヘッダをレスポンスに含めます。
==== 発声情報タブ ====
SeikaCenterに送られてきた指示を表示します。
{{pasted:20230411-193755.png?nolink}}
==== 他のアプリケーションとの音声分離 ====
SeikaCenterと音声合成製品の設定 もご参照ください。
既定の再生デバイスで他のアプリが非定期に音声を出しているような場合(キャプチャ音声に他のアプリケーションの再生音が混じってしまう場合)、別デバイスを音声合成製品だけで占有して使用する方法が考えられます。
もし、他に再生デバイスが利用であればこのような画面になります。この例だとデバイスSB X-Fi Go!が利用可能であると判ります。
{{pasted:20230411-193843.png?nolink}}
「再生デバイスからキャプチャ」で選択したデバイスSB X-Fi Go!を、音声合成製品でも指定する必要があります。
{{pasted:20230411-193859.png?nolink}}\\
{{pasted:20230411-193911.png?nolink}}\\
{{pasted:20230411-193923.png?nolink}}\\
{{pasted:20230411-193935.png?nolink}}\\
{{pasted:20230411-193945.png?nolink}}
これで、他のアプリが再生デバイスSB X-Fi Go!を使用しない限り音声保存時に他の音声が入る事はなくなります。\\
ユーザ様から、[[http://netduetto.net/|NETDUETTO]](の仮想デバイス)を使った報告を頂いております。\\
このユーザ様の場合は、既定の再生デバイスの音量を大きくできない事情があり、音声合成製品の出力デバイスに仮想デバイスを指定し、仮想デバイスに出力された音声をキャプチャしています。
「製品の機能を使う」を選択すれば上記の様な設定は不要となりますが、先にも述べた通り「不安定」です。
5秒のセリフ再生を待つことすら耐えられない事情を持ったユーザ様もいます。\\
そういった場合は「不安定」であることを認識したうえで「製品の機能を使う」を選択するか、他の製作者様の作成されているプロダクトの利用をお勧めします。
{{tag> 技術資料 Windows voiceroid Voiceroid2 Codeer.Friendly tool}}