目次
SeikaCenterAPI.dllの説明
SeikaCenterのサポートは終了いたしました。
この製品に修正や機能拡張は今後行われません。現時点での最新版のダウンロードは可能です。
後継プロダクト AssistantSeika をご利用ください。
概要
20190428/uでの説明です。
SeikaCenterAPI.dll は .NET Framework 4.7.2 環境で作成したDLLです。その使用例の説明をします。
IPCもしくはHTTPを使ってSeikaCenterへ接続し制御ができます。
DLLを利用した操作例
- sample.cs
using System.Collections.Generic; using SeikaCenter; namespace a_test { class Program { static void Main(string[] args) { SeikaCenterControl scc = new SeikaCenterControl(); double len = 0.0; Dictionary<string, decimal> effects = new Dictionary<string, decimal>() { {"speed", 0.90m }, {"pitch", 1.30m } }; Dictionary<string, decimal> emotions = new Dictionary<string, decimal>() { {"喜び", 0.60m } }; // 音声発声時 len = scc.Talk(2000, "あー嬉しーなー", "", effects, emotions); // 音声保存時 // len = scc.Talk(2000, "あー嬉しーなー", @"E:\seikacenter\ureshi.wav", effects, emotions); } } }
接続モード
SeikaCenterAPI.dllを使ったプログラムは、プログラムのリコンパイルをすることなく接続モードを変更することができます。
通常モード(IPC接続モード)
SeikaCenterAPI.DLLでIPC接続を使う接続モードの事です。
リモート接続モード
SeikaCenterAPI.DLLでHTTP接続を行わせる状態を「リモート接続モード」と称します。
SeikaCenter稼働PCと異なるPCから制御したい場合、またはIPCが利用できない環境では、リモート接続モードが利用できます。
リモート接続モードはHTTPを利用するので、SeikaCenterの設定「HTTP機能」を有効にする必要があります。
利用するSeikaCenterAPI.DLLと同じディレクトリに名称 SeikaCenterAPI.json のJSONファイルを配置すると、DLL内部処理がリモート接続モードに切り替ります。
SeikaCenterAPI.DLLを利用する側はプログラムを変更する必要はありません。
SeikaCenterAPI.jsonに記述する4つのプロパティは必須プロパティです。
- SeikaCenterAPI.json
{ "HostAddr" : "http://localhost:7180", "SampleRate" : 22050 , "User" : "ユーザ", "Password" : "パスワード" }
プロパティ | 説明 |
---|---|
HostAddr | 接続先 SeikaCenterの待ち受けURIです |
SampleRate | 音声のサンプリングレートです。音声はモノラルで指定のサンプリングレート(この例では22.05kHz)に変換されます |
User | 接続先 SeikaCenter で定義されているユーザです |
Password | 接続先 SeikaCenter で定義されているパスワードです |
メソッド/プロパティ
現時点では以下のDLLメソッド、プロパティが公開されています。接続モードに関係なく利用できます。
メソッド/プロパティ | 説明 | |
---|---|---|
戻り値 | 名前 | |
string | DLLVersion | DLLのバージョン。SeikaCenterのバージョンではありません。 |
Dictionary<int, string> | AvatorList | SeikaCenterで利用可能な話者の一覧を返します。 |
Dictionary<string,Dictionary<string,Dictionary<string, decimal> > > | GetAvatorParams2( int cid ) | 指定の話者のデフォルトパラメタ情報を返します。 |
Dictionary<string,Dictionary<string,Dictionary<string, decimal> > > | GetAvatorParams_current2( int cid ) | 指定の話者の現在パラメタ情報を返します。 |
double | Talk( int cid, string talktext, string filepath, Dictionary<string, decimal> effects, Dictionary<string, decimal> emotions ) | 指定の話者で指定テキストを発声/音声保存させます。 ファイルパスが空の時は音声再生、ファイルパスが設定されていれば音声保存が実行されます。 戻り値は 発声時:発声にかかった時間 保存時:保存した音声ファイルの音声長さ 単位はミリ秒です。エラー時はマイナスの数値になります。 |
エフェクトパラメタ
Talk()の引数effectsで指定できる名前。英小文字で記述。範囲はSeikaSayの説明を参照。
名前 | 対応するパラメタ | VOICEROID+EX | VOICEROID2 | CeVIO | ガイノイドTalk | 棒読みちゃん | SAPI | SpeechPlatform |
---|---|---|---|---|---|---|---|---|
volume | 音量 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 |
speed | 話速 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 |
pitch | 高さ(CeVIOではトーン) | 〇 | 〇 | 〇 | 〇 | 〇 | ||
intonation | 抑揚(CeVIOではトーンスケール) | 〇 | 〇 | 〇 | 〇 | |||
alpha | 声質 ※CeVIOでのみ有効 | 〇 |
感情パラメタ
Talk()の引数emotionsは話者により異なります。
感情パラメタ | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
話者 | “喜び” | “怒り” | “悲しみ” | “セクシー” | “パワフル” | “あたふた” | “元気” | “普通” | “怒り” | “哀しみ” | “クール” | “照れ” | “へこみ” | “High” | “Mid” | “MidLow” | “Low” |
VOICEROID2 | ○ | ○ | ○ | ||||||||||||||
東北イタコ(VOICEROID2) | ○ | ○ | ○ | ||||||||||||||
さとうささら | ○ | ○ | ○ | ○ | |||||||||||||
すずきつづみ | ○ | ○ | |||||||||||||||
タカハシ | ○ | ○ | ○ | ||||||||||||||
ONE | ○ | ○ | ○ | ○ |
再生時間
Talk()で返る時間/長さは、同じ文面を再生/保存させても毎回異なります。
これは、製品の機能を使わず発声の終了を自前で監視しているため、PCの状態やタイミング等の問題で変動します。
音声保存時は一度保存した音声ファイルから算出させています。
エラーがあった場合、時間/長さにマイナスの値が返ります。