努力した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 · 最終更新: 2023/11/05 07:38 by k896951

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki