====== SeikaCenterAPI.dllの説明 ======
SeikaCenterのサポートは終了いたしました。\\ この製品に修正や機能拡張は今後行われません。現時点での最新版のダウンロードは可能です。\\
後継プロダクト AssistantSeika をご利用ください。
===== 概要 =====
20190428/uでの説明です。
SeikaCenterAPI.dll は .NET Framework 4.7.2 環境で作成したDLLです。その使用例の説明をします。
IPCもしくはHTTPを使ってSeikaCenterへ接続し制御ができます。
===== DLLを利用した操作例 =====
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 effects = new Dictionary()
{
{"speed", 0.90m },
{"pitch", 1.30m }
};
Dictionary emotions = new Dictionary()
{
{"喜び", 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が利用できない環境では、リモート接続モードが利用できます。
{{pasted:20230411-194325.png?nolink}}
リモート接続モードはHTTPを利用するので、SeikaCenterの設定「HTTP機能」を有効にする必要があります。
利用するSeikaCenterAPI.DLLと同じディレクトリに名称 SeikaCenterAPI.json のJSONファイルを配置すると、DLL内部処理がリモート接続モードに切り替ります。\\
SeikaCenterAPI.DLLを利用する側はプログラムを変更する必要はありません。
SeikaCenterAPI.jsonに記述する4つのプロパティは必須プロパティです。
{
"HostAddr" : "http://localhost:7180",
"SampleRate" : 22050 ,
"User" : "ユーザ",
"Password" : "パスワード"
}
^ プロパティ ^ 説明 ^
| HostAddr | 接続先 SeikaCenterの待ち受けURIです |
| SampleRate | 音声のサンプリングレートです。音声はモノラルで指定のサンプリングレート(この例では22.05kHz)に変換されます |
| User | 接続先 SeikaCenter で定義されているユーザです |
| Password | 接続先 SeikaCenter で定義されているパスワードです |
===== メソッド/プロパティ =====
現時点では以下のDLLメソッド、プロパティが公開されています。接続モードに関係なく利用できます。
^ メソッド/プロパティ |^ 説明 ^
^ 戻り値 ^ 名前 ^ ::: ^
| string | DLLVersion | DLLのバージョン。SeikaCenterのバージョンではありません。 |
| Dictionary | AvatorList | SeikaCenterで利用可能な話者の一覧を返します。 |
| Dictionary > > | GetAvatorParams2(\\ int cid\\ ) | 指定の話者のデフォルトパラメタ情報を返します。 |
| Dictionary > > | GetAvatorParams_current2(\\ int cid\\ ) | 指定の話者の現在パラメタ情報を返します。 |
| double | Talk(\\ int cid,\\ string talktext,\\ string filepath,\\ Dictionary effects,\\ Dictionary emotions\\ ) | 指定の話者で指定テキストを発声/音声保存させます。\\ ファイルパスが空の時は音声再生、ファイルパスが設定されていれば音声保存が実行されます。\\ 戻り値は\\ 発声時:発声にかかった時間\\ 保存時:保存した音声ファイルの音声長さ\\ 単位はミリ秒です。エラー時はマイナスの数値になります。 |
==== エフェクトパラメタ ====
Talk()の引数effectsで指定できる名前。英小文字で記述。範囲は[[seikacenter-101]]を参照。
^ 名前 ^ 対応するパラメタ ^ 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の状態やタイミング等の問題で変動します。
音声保存時は一度保存した音声ファイルから算出させています。
エラーがあった場合、時間/長さにマイナスの値が返ります。
{{tag> 技術資料 Windows voiceroid Voiceroid2 Codeer.Friendly tool}}