目次

WCFClient.DLL 使用例

AssistantSeika20220410/u から同梱のWCFClient.DLLを使う例。

Python.NET から使ってみる1

発声できればいいだけ、ならこちらを参考にしてください。5203は自分の製品の話者のcidに置換えて下さい。

事前に pip install pythonnet を実行して Python.NETを導入してください。
pythonのスクリプトと同じところに WCFClient.DLL を配置してください。

pytest1.py
import clr
 
clr.AddReference('WCFClient')
import AssistantSeika
 
client = AssistantSeika.WCFClient()
 
# 発声
pt = client.Talk(5203, "pythonから呼べましたね", None, None)

Python.NET から使ってみる2

もう少し色々試してみる例。
バージョン取得、話者一覧の取得、 .NET FrameworkのDictionary,String,Decimalを利用して音声効果パラメタを渡しての発声、を試みています。

pytest2.py
import clr
 
clr.AddReference('System')
clr.AddReference('System.Collections')
clr.AddReference('WCFClient')
 
from System.Collections.Generic import Dictionary
from System import String
from System import Decimal
 
import AssistantSeika
 
client = AssistantSeika.WCFClient()
 
# バージョン表示
version = client.Version()
print(version)
 
# 話者一覧表示
avators = {}
avators = client.AvatorList2()
for item in avators:
    print(item.Key)
    for item2 in item.Value:
        print("  " + item2.Key + " = " + item2.Value)
 
# 発声
print("茜ちゃん曰く")
vef = Dictionary[String, Decimal]()
emo = Dictionary[String, Decimal]()
 
vef['speed']=Decimal(0.5)
vef['volume']=Decimal(0.5)
 
pt = client.Talk(5201, "茜ちゃん可愛いって言って!", vef, emo)
print(pt)

実行結果

F:\sandbox>python pytest.py
20220410/u
5200
  name = 琴葉 茜
  prod = AIVOICE
  platform = 64
5201
  name = 琴葉 茜
  prod = AIVOICE
  platform = 64
5202
  name = 琴葉 茜(蕾)
  prod = AIVOICE
  platform = 64
5203
  name = 琴葉 葵
  prod = AIVOICE
  platform = 64
5204
  name = 琴葉 葵(蕾)
  prod = AIVOICE
  platform = 64
5207
  name = 結月 ゆかり
  prod = AIVOICE
  platform = 64
5208
  name = 結月 ゆかり(雫)
  prod = AIVOICE
  platform = 64
5209
  name = 紲星 あかり
  prod = AIVOICE
  platform = 64
5210
  name = 紲星 あかり(蕾)
  prod = AIVOICE
  platform = 64
5211
  name = 羽ノ華
  prod = AIVOICE
  platform = 64
5212
  name = 羽ノ華(雫)
  prod = AIVOICE
  platform = 64
5300
  name = 琴葉 葵 - 新規
  prod = AIVOICE
  platform = 64
茜ちゃん曰く
4211.0
 
F:\sandbox>

C#から使ってみる

参照設定で WCFClient.DLL を追加してください。

SampleCode.cs
using System;
using System.Collections.Generic;
using AssistantSeika;
 
namespace sampleSpeak
{
    class Program
    {
        static void Main(string[] args)
        {
            var Client = new WCFClient();
 
            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[] { "あー嬉しいなー", "ホント嬉しいなー" };
 
            Client.Talk(5201, s, effetcs, emotions);
            // Client.Talk(2000, s, @"F:\AssistantSeika\sandbox\2000.wav", effetcs, emotions);
 
            Client.Talk(5201, t, effetcs, emotions);
            // Client.Talk(2000, t, @"F:\AssistantSeika\sandbox\2000.wav", effetcs, emotions);
 
        }
    }
}