AssistantSeika20220410/u より、今までソースコードで提供していたWCFClient.cs をDLLの形で公開することにしました。 WCFClient.DLLはAssistantSeikaのアーカイブに同梱されています。
このDLLは製作者の手元にある、あるがままを提供します。利用することで起こる各種問題について一切関知しません。
このDLLを有償無償にかかわらず再配布した場合、起こる問題の責任は再配布者が負うものとします。
WCFClient.DLLのインタフェース定義です。ここで定義されたインタフェースに従いAssistantSeikaへアクセスを行います。 ※20220410/u 以降
using System; using System.Collections.Generic; using System.IO; using System.ServiceModel; using System.Threading; namespace AssistantSeika { public interface IWCFClient { /// <summary> /// AssistantSeikaバージョン取得 /// </summary> /// <returns>バージョン文字列</returns> string Version(); /// <summary> /// 製品スキャン /// </summary> void ProductScan(); /// <summary> /// HTTP機能起動 /// </summary> void BootHttpService(); /// <summary> /// AssistantSeikaが認識している話者の一覧を取得 /// </summary> /// <returns>話者一覧</returns> Dictionary<int, string> AvatorList(); /// <summary> /// AssistantSeikaが認識している話者の少し詳しい一覧を取得 /// </summary> /// <returns>話者一覧</returns> Dictionary<int, Dictionary<string, string>> AvatorList2(); /// <summary> /// AssistantSeikaが認識している話者の詳しい一覧を取得 /// </summary> /// <returns>話者一覧</returns> Dictionary<int, Dictionary<string, string>> AvatorListDetail2(); /// <summary> /// 指定話者のデフォルトパラメタ取得 /// </summary> /// <param name="cid">話者のcid</param> /// <returns>デフォルトパラメタの一覧</returns> Dictionary<string, Dictionary<string, Dictionary<string, decimal>>> GetDefaultParams2(int cid); /// <summary> /// 指定話者の現在の設定パラメタ取得 /// </summary> /// <param name="cid">話者のcid</param> /// <returns>パラメタの一覧</returns> Dictionary<string, Dictionary<string, Dictionary<string, decimal>>> GetCurrentParams2(int cid); /// <summary> /// 指定話者で発声させる /// </summary> /// <param name="cid">話者のcid</param> /// <param name="talktext">発声させるテキスト</param> /// <param name="filepath">発声内容を保存するファイル名。""なら保存しない</param> /// <param name="effects">音声効果のパラメタ</param> /// <param name="emotions">感情のパラメタ</param> /// <returns>発声時間(ms)</returns> double Talk(int cid, string talktext, string filepath, Dictionary<string, decimal> effects, Dictionary<string, decimal> emotions); /// <summary> /// 指定話者で発声させる /// </summary> /// <param name="cid">話者のcid</param> /// <param name="talktext">発声させるテキスト</param> /// <param name="effects">音声効果のパラメタ</param> /// <param name="emotions">感情のパラメタ</param> /// <returns>発声時間(ms)</returns> double Talk(int cid, string talktext, Dictionary<string, decimal> effects, Dictionary<string, decimal> emotions); /// <summary> /// 指定話者で発声させる /// </summary> /// <param name="cid">話者のcid</param> /// <param name="talktexts">発声させるテキストの配列</param> /// <param name="filepath">発声内容を保存するファイル名。""なら保存しない</param> /// <param name="effects">音声効果のパラメタ</param> /// <param name="emotions">感情のパラメタ</param> /// <returns>発声時間(ms)</returns> double Talk(int cid, string[] talktexts, string filepath, Dictionary<string, decimal> effects, Dictionary<string, decimal> emotions); /// <summary> /// 指定話者で発声させる /// </summary> /// <param name="cid">話者のcid</param> /// <param name="talktexts">発声させるテキストの配列</param> /// <param name="effects">音声効果のパラメタ</param> /// <param name="emotions">感情のパラメタ</param> /// <returns>発声時間(ms)</returns> double Talk(int cid, string[] talktexts, Dictionary<string, decimal> effects, Dictionary<string, decimal> emotions); /// <summary> /// 指定話者で発声させる(非同期) /// </summary> /// <param name="cid">話者のcid</param> /// <param name="talktext">発声させるテキスト</param> /// <param name="effects">音声効果のパラメタ</param> /// <param name="emotions">感情のパラメタ</param> void TalkAsync(int cid, string talktext, Dictionary<string, decimal> effects, Dictionary<string, decimal> emotions); /// <summary> /// 指定話者で発声させる(非同期) /// </summary> /// <param name="cid">話者のcid</param> /// <param name="talktexts">発声させるテキストの配列</param> /// <param name="effects">音声効果のパラメタ</param> /// <param name="emotions">感情のパラメタ</param> void TalkAsync(int cid, string[] talktexts, Dictionary<string, decimal> effects, Dictionary<string, decimal> emotions); } }
前身のSeikaCenterではDLLを提供していたのですが、GitHubで無断転載等々された為、AssistantSeikaではDLL提供を止めていました。
※替わりに参照用クライアントのソースコードを公開していました。
ですが、利用者より「Python.NETでpythonからDLL呼び出しできそうなので、DLL提供してもらえませんか」との問い合わせがありました。
確かに公開されているAssistantSeika利用ソフトウエアがほぼSeikaSay2コマンドのラップで実現されており、非効率的なのは否めません。
※ソースコードをコンパイルできる環境が無いならそうならざるを得ない…
どの程度の需要があるかはわかりませんが、
を条件にDLLを公開することにしました。