努力したWiki

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

ユーザ用ツール

サイト用ツール


documents:voiceroid:assistantseika:assistantseika-002

AssistantSeika の説明

概要

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

SeikaSay2 Command Line I/F *WCF Client WCF Service PetitGate32 Your Application *WCF Client SeikaSay2N Command Line I/F *HTTP Client TinySeikaServer Your Application *HTTP Client PetitGate64 NAudio net.pipe://localhost/EchoSeika/CentralGate/ApiEntry AssistantSeika 32bit TTS Products .NET Framework 4.7.2 or Later * HTTP Access Port:7180 64bit TTS Products use CoreAudio interface(audio capture) AssistantSeika Server Service. SeikaSay2 CLI Client. SeikaSay2N CLI Client. TinySeikaServer HTTP Gateway. (REST API Access) PetitGate32 32bit Platform Gateway. PetitGate64 64bit Platform Gateway.

AssistantSeikaはWCF,HTTP,のいずれかで外部から指示を受け音声合成製品を操作します。 同梱されているSeikaSay2コマンドはWCF、SeikaSay2NコマンドはHTTP、に対応しています。

AssistantSeikaはWPFで作られています。スケーリングの問題でウインドウサイズがスクリーンによりまちまちとなってしまう問題はこれで避けられるかな、と思います。

製品制御プロセス2個、Web制御プロセス1個、の合計3プロセスを子プロセスとして立ち上げています。
32bit版製品制御担当プロセスと、64bit版製品制御担当プロセスを立ち上げ、このプロセスと通信をする事でプラットフォームの境界を越えています。CeVIO7(64bit版製品)を制御するために必要でした。
Web制御プロセス(TinySeikaServer)はSeikaCenterからの移植です。

利用しているサードパーティ製品

株式会社Codeer(コーディア)の提供する無償のライブラリFriendlyを利用しています。
CeVIOの提供する外部連携インターフェースを利用しています。※製品を持っていないと使えません
.NETで音声を扱うライブラリNAudioを利用しています。
WPFアプリケーションをタスクトレイ(通知領域)へ格納する機能のためにHardcodet.NotifyIcon.Wpfを利用しています。

参考にしたサイト

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

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

使用方法

対応OS

作者は Windows 10 Pro(1909) 64bit で開発・確認を行っています。32bit版OSにはインストールできません。
Windows7, Windows8へのインストールはできません。

その他のOSについては、特に確認や検証をしているわけではありません。利用できるか否かはご自身でお試しください。

対応製品

利用できる音声合成製品は以下です。前製品のSeikaCenterで使えたものはAssistantSeikaでも利用可能です。

製品 備考
VOICEROID+ 京町セイカ EX 動作確認済み
VOICEROID+ 東北ずん子 VOICEROID+EXとして認識。動作確認済み
VOICEROID+ 東北ずん子 EX 動作確認済み
VOICEROID+ 民安ともえ EX 動作確認済み
VOICEROID+ 結月ゆかり EX 動作確認済み
VOICEROID+ 琴葉 茜・葵 VOICEROID+EXとして認識。AssistantSeikaでは未確認
VOICEROID+ 東北きりたん EX AssistantSeikaでは未確認
VOICEROID+ 鷹の爪 吉田くん EX 製品を持っていないので確認できていない
VOICEROID+ 月読アイ EX 製品を持っていないので確認できていない
VOICEROID+ 月読ショウタ EX 製品を持っていないので確認できていない
VOICEROID+ 水奈瀬コウ EX AssistantSeikaでは未確認
音街ウナTalk Ex VOICEROID+EXとして認識。AssistantSeikaでは未確認
ギャラ子Talk VOICEROID+EXとして認識。AssistantSeikaでは未確認
VOICEROID2 32bit / 64bit 版 琴葉 茜・葵、VOICEROID+EXからインポートした話者で確認済み
CeVIO 6.1 / 7 CeVIO Creative Studio にインストールしたさとうささら、すずきつづみ、タカハシ、ONEで確認済み。
ガイノイドTalk 動作確認済み
かんたん! AITalk3 5話者版で動作確認済み
SAPI Haruka Desktop、David Desktop で確認
棒読みちゃん Ver0.1.10.0 で確認
SofTalk .NET版のver1.93.47の動作を確認

AssistantSeikaの起動

インストール後、デスクトップにできたショートカットもしくはメニューの「AssistantSeika」をクリックしてAssistantSeikaを起動します。以下のようなウインドウが出てきます。

次にAssistantSeikaから制御したい音声合成製品を起動します。
起動出来たら、AssistantSeikaの使用製品タブにある使いたい製品のチェックボックスにチェックを入れ、「製品スキャン」ボタンを押します。話者一覧タブが表示され話者・製品が表示されたら、制御可能な状態です。

話者一覧にある “cid” が「話者」を指定するためのコードになります。
この環境だと、VOICEROID+EXの“京町セイカ”は1700、VOICEROID2の“琴葉茜”は2000、ガイノイドTalkの“鳴花ヒメ”は5000、となります。

AssistantSeika 20201123/u より、cidと話者の固定割り当てが行われます。製品話者とcidの紐づけの説明を参照してください。

使用製品タブ

AssistantSeika起動時に選択されているタブです。制御する製品指定と制御を開始するために使います。

使用する製品

「製品スキャン」ボタンを押されたときに、チェックを入れた製品が起動プロセス中から検索されます。 検索後、話者一覧タブに各製品に登録されている話者が表示されます。

基本設定タブ

音声キャプチャ(音声保存)

AssistantSeikaは音声保存機能を持っています。この機能は指定の再生デバイスで再生されている音声をキャプチャして(録音して)保存します。
ですが音声キャプチャができない環境があるようです。

SeikaSay2、SeikaSay2N の説明で説明しているSeikaSay2コマンドで音声保存が可能か確認してください。
音声保存ができない場合、振る舞いを許容できるなら「音声保存時に再生デバイスをキャプチャする」のチェックを外して音声合成製品の機能で音声保存を実行させます。

音声保存時に再生デバイスをキャプチャする

チェックを入れると、再生デバイスで再生している音声をキャプチャして保存します。これにより、音声合成製品の保存時のダイアログが表示されることはありません。
コンボボックスにはキャプチャ対象の再生デバイス一覧が表示されています。音声合成製品と同じ再生デバイスを選択してください。

チェックを外すと、音声合成製品自体の保存機能が利用されます。

  • 推奨は「チェックを入れる」です。発声させると同時にその音声をキャプチャー(録音)して保存します。
    音声合成製品自体の保存機能を使いませんのでダイアログがちらつくことはありません。デメリットとして他のアプリケーションで再生する音声までキャプチャしてしまいます。
    キャプチャを行う再生デバイスを、音声合成製品に設定した出力(再生)デバイスに合わせます。あとからヘッドセットを繋いだりすると製品の設定が変わったりするので見直しすることを推奨します。


  • 非推奨は「チェックを外す」です。音声合成製品自体の音声保存機能を使う設定です。音声保存時の発声をさせたくない場合に使います。
    こちらを使う際、VOICEROID2とガイノイドTalkのメッセージ表示レベルを“冗長”にしてください。
    保存時の最後に出るダイアログを音声データ出力終了の目印にしています。※この方法は現在ダイアログの制御が安定していません。

また、音声保存を行う際にアンチウイルス製品により動作を中断させられてしまう場合もあります。許可を与えてください。以下はカスペルスキーにより警告が出た例です。

発声後、音声効果と感情パラメタを初期化する

チェックを入れると、音声合成製品での発声終了後、変更したパラメタをデフォルト値に戻します。
チェックを外すと、変更したパラメタがそのままになります。

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

チェックを外して使用する場合は、利用者が音声効果パラメタ、感情パラメタを管理する必要があります。

SAPI

SAPIを利用する際の再生デバイスを指定します。

HTTP機能設定タブ

HTTP機能で使うパラメタの指定とHTTP機能有効化のために使います。

HTTP機能を利用する

チェックボックスを入れると、「起動する」ボタンが押下できるようになります。

待ち受けアドレス

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

外部に公開しないのであれば localhost にするのが良いかと思います。

待ち受けポート

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

デフォルトは 7180 です。他のアプリケーションと被る場合、ポート番号を変更することができます。

ワークフォルダ

HTTP機能が音声ファイルを加工する際に作業フォルダとして利用します。

ドキュメントルートフォルダ

HTTP機能は簡易Webサーバとしても動作します。
コンテンツは “ドキュメントルートフォルダ” に格納します。 HTMLファイルやJavaScriptファイル、画像、音声ファイルと言った静的コンテンツのみ利用可能です。CGIやスクリプトのサポートはありません。
favicon.icon は“ドキュメントルートフォルダ”の直下に配置してください。

利用するコンテンツのMIMETYPEを増やす場合には、“ドキュメントルートフォルダ”直下に mime.conf ファイルを配置します。このファイルにファイル拡張子とMIMETYPEを定義します。
以下はデフォルトの定義と同等の mime.conf ファイルです。

mime.conf
{
  "Contents":{
    ".html" : "text/html; charset=utf-8",
    ".css"  : "text/css; charset=utf-8",
    ".js"   : "text/javascript; charset=utf-8",
    ".json" : "applocation/json; charset=utf-8",
    ".xml"  : "applocation/xml; charset=utf-8",
    ".jpg"  : "image/jpeg",
    ".png"  : "image/png",
    ".gif"  : "image/gif",
    ".wav"  : "audio/wav",
    ".mp3"  : "audio/mp3",
    ".mp4"  : "video/mp4",
    ".mpg"  : "video/mpeg",
    ".mpeg" : "video/mpeg",
    ".webm" : "video/webm",
    ".zip"  : "application/zip",
    ".vrm" : "application/vrm",
    ".ico"  : "image/x-icon"
  }
}

CORSヘッダ

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

Access-Control-Allow-Origin

HTTP機能が接続を許可するホストのURLを設定します。Webブラウザからスクリプトで接続する場合はここで許可を与える必要があります。

Access-Control-Allow-Header

デフォルトのままでも問題ないかと思います。

ユーザID

HTTP機能では利用に際してBASIC認証を必要としています。BASIC認証で使うユーザIDを指定します。

パスワード

HTTP機能では利用に際してBASIC認証を必要としています。BASIC認証で使うパスワードを指定します。

話者一覧タブ

利用可能な(製品の)話者が表示されます。
話者には番号 cid が割り振られます。これは利用環境により異なります。

AssistantSeika 20201123/u より、cidの固定割り当てが実施され、利用環境が異なってもcidと話者の組み合わせが同じになります。製品話者とcidの紐づけの説明を参照してください。


製品 cid範囲
SAPI(32bit) 1000 ~ 1199
SAPI(64bit) 1200 ~ 1399
SpeechPlatform(32bit) 1400 ~ 1549
SpeechPlatform(64bit) 1550 ~ 1699
VOICEROID+EX 1700 ~ 1799
VOICEROID2 2000 ~ 2999
CeVIO 3000 ~ 3999
棒読みちゃん 4000 ~ 4199 ※現状はデフォルトの8話者しか認識しません
SofTalk 4200 ~ 4399
ガイノイドTalk 5000 ~ 5999
かんたん! AITalk3 6000 ~ 6099
documents/voiceroid/assistantseika/assistantseika-002.txt · 最終更新: 2020/11/23 18:26 by k896951

ページ用ツール