努力したWiki

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

ユーザ用ツール

サイト用ツール


documents:tools:assistantseika:interface:wcf:wcf-003

WCFサービス利用例

AssistantSeikaはWCF(Windows Communication Foundation)で外部から接続を待ち受けしています。
ユーザはWCFインタフェース定義で定義されているWCFサービスへクライアントを作成してアクセスすることになります。

必要要素を1つのコードに集約したWCFClient.DLL 使用例もあります。

接続の例

実際にサービスに接続して発声させる例です。WCFインタフェース定義にあるIScAPIs.csで定義されたインタフェース IScAPIs を利用しています。

※20201007/u 以降対応

sample.cs
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の状態やタイミング等の問題で変動します。 音声保存時は一度保存した音声ファイルから算出させています。

エラーがあった場合、時間/長さにマイナスの値が返ります。

documents/tools/assistantseika/interface/wcf/wcf-003.txt · 最終更新: by k896951

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki