努力したWiki

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

ユーザ用ツール

サイト用ツール


documents:voiceroid:assistantseika:assistantseika-007

WCFサービスアクセス用クラスの使用例

概要

WCFサービスアクセス用DLL要望が一定数あるので、C#記述のWCFアクセス用クラス WCFClient のコードを公開します。
このコードをコンパイルしてDLLをつくるなり、クラスをそのまま自身のコードに取り込むなりして利用してください。
公開するクラスのコードに関して私は権利を主張しません。
このコードを利用することで起こる問題や事象に関して当方は一切関知しませんし、何か対応を約束することもしません。

コード

AssistantSeikaの関係コード2にWCFアクセス用クラス WCFClient のコードを公開しています。

接続の例

実際にクラスWCFClientをつかってサービスに接続し操作する例です。

sample.cs
using System.Collections.Generic;
using System.ServiceModel;
using System.Threading;
using AssistantSeika;
 
namespace sampleSpeak
{
    class Program
    {
        static void Main(string[] args)
        {
            WCFClient api = new WCFClient();
 
            // 利用可能な話者の一覧取得と表示
            Dictionary<int, Dictionary<string, string>> AvatorList = api.GetAvatorList2();
            foreach(var item in AvatorList)
            {
                Console.WriteLine("{0}: {1}, {2}", item.Key, item.Value["name"], item.Value["prod"]);
            }
 
            // cid=2000 の話者パラメタ取得と表示
            Dictionary<string, Dictionary<string, Dictionary<string, decimal>>> AvatorParams = api.GetDefaultParams2(2000);
            foreach (var topItem in AvatorParams)
            {
                Console.WriteLine("{0}", topItem.Key);
 
                foreach (var midItem in topItem.Value)
                {
                    Console.WriteLine("    {0}", midItem.Key);
 
                    foreach (var btmItem in midItem.Value)
                    {
                        Console.WriteLine("        {0} : {1}", btmItem.Key, btmItem.Value);
                    }
                }
            }
 
            // 発声パラメタ用意
            Dictionary<string, decimal> effetcs = new Dictionary<string, decimal>()
            {
                { "volume",     1.0m },
                { "speed",      0.9m },
                { "pitch" ,     1.3m }
            };
            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.Talk(2000, t, effetcs, emotions);
            // api.Talk(2000, t, @"F:\AssistantSeika\sandbox\2000.wav", effetcs, emotions);
        }
    }
 
}

documents/voiceroid/assistantseika/assistantseika-007.txt · 最終更新: 2020/11/23 05:44 by k896951

ページ用ツール