AssistantSeika20220410/u から同梱のWCFClient.DLLを使う例。
発声できればいいだけ、ならこちらを参考にしてください。5203は自分の製品の話者のcidに置換えて下さい。
事前に pip install pythonnet を実行して Python.NETを導入してください。
pythonのスクリプトと同じところに WCFClient.DLL を配置してください。
import clr clr.AddReference('WCFClient') import AssistantSeika client = AssistantSeika.WCFClient() # 発声 pt = client.Talk(5203, "pythonから呼べましたね", None, None)
もう少し色々試してみる例。
バージョン取得、話者一覧の取得、
.NET FrameworkのDictionary,String,Decimalを利用して音声効果パラメタを渡しての発声、を試みています。
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>
参照設定で WCFClient.DLL を追加してください。
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); } } }