AssistantSeikaはWCF(Windows Communication Foundation)で外部から接続を待ち受けしています。
ユーザはWCFインタフェース定義で定義されているWCFサービスへクライアントを作成してアクセスすることになります。
必要要素を1つのコードに集約したWCFClient.DLL 使用例もあります。
実際にサービスに接続して発声させる例です。WCFインタフェース定義にあるIScAPIs.csで定義されたインタフェース IScAPIs を利用しています。
※20201007/u 以降対応
using System.Collections.Generic; using System.ServiceModel; using System.Threading; using AssistantSeika; namespace sampleSpeak { class Program { static void Main(string[] args) { string BaseAddr = "net.pipe://localhost/EchoSeika/CentralGate/ApiEntry"; ChannelFactory<IScAPIs> Channel = new ChannelFactory<IScAPIs>(new NetNamedPipeBinding(), new EndpointAddress(BaseAddr)); IScAPIs api = Channel.CreateChannel(); while (Channel.State != CommunicationState.Opened) { Thread.Sleep(100); } Dictionary<string, decimal> effetcs = new Dictionary<string, decimal>() { { "volume", 1.0m }, { "speed", 0.9m }, { "pitch" , 1.3m }, { "intonation", 1.0m } }; Dictionary<string, decimal> emotions = new Dictionary<string, decimal>() { {"喜び", 0.60m } }; string s = "あー嬉しいなー"; string[] t = new string[] { "あー嬉しいなー", "ホント嬉しいなー" }; api.Talk( 2000, s, "", effetcs, emotions ); // api.Talk( 2000, s, @"F:\AssistantSeika\sandbox\2000.wav", effetcs, emotions ); api.Talk2( 2000, t, "", effetcs, emotions ); // api.Talk2( 2000, t, @"F:\AssistantSeika\sandbox\2000.wav", effetcs, emotions ); Channel.Close(); } } }
effectsで指定できる名前。英小文字で記述。
名前 | 対応するパラメタ | VOICEROID+EX | VOICEROID2 | A.I.VOICE | CeVIO CS | CeVIO AI | ガイノイドTalk | 棒読みちゃん | SAPI | SpeechPlatform |
---|---|---|---|---|---|---|---|---|---|---|
volume | 音量 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 |
speed | 話速 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 |
pitch | 高さ(CeVIOではトーン) | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | ||
intonation | 抑揚(CeVIOではトーンスケール) | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | |||
alpha | 声質 ※CeVIOでのみ有効 | 〇 | 〇 |
emotionsは話者により異なります。
感情パラメタ | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
話者 | “喜び” | “怒り” | “悲しみ” | “セクシー” | “パワフル” | “あたふた” | “元気” | “普通” | “怒り” | “哀しみ” | “クール” | “照れ” | “へこみ” | “High” | “Mid” | “MidLow” | “Low” |
VOICEROID2 | ○ | ○ | ○ | ||||||||||||||
東北イタコ(VOICEROID2) | ○ | ○ | ○ | ||||||||||||||
さとうささら | ○ | ○ | ○ | ○ | |||||||||||||
すずきつづみ | ○ | ○ | |||||||||||||||
タカハシ | ○ | ○ | ○ | ||||||||||||||
ONE | ○ | ○ | ○ | ○ |
Talk()で返る時間/長さは、同じ文面を再生/保存させても毎回異なります。
これは、製品の機能を使わず発声の終了を自前で監視しているため、PCの状態やタイミング等の問題で変動します。
音声保存時は一度保存した音声ファイルから算出させています。
エラーがあった場合、時間/長さにマイナスの値が返ります。