ユーザ用ツール

サイト用ツール


seikacenter-103

SeikaCenterAPI.dllの説明

SeikaCenterのサポートは終了いたしました。
この製品に修正や機能拡張は今後行われません。現時点での最新版のダウンロードは可能です。
後継プロダクト AssistantSeika をご利用ください。

概要

20190428/uでの説明です。

SeikaCenterAPI.dll は .NET Framework 4.7.2 環境で作成したDLLです。その使用例の説明をします。

IPCもしくはHTTPを使ってSeikaCenterへ接続し制御ができます。

DLLを利用した操作例

sample.cs
using System.Collections.Generic;
using SeikaCenter;
 
namespace a_test
{
    class Program
    {
        static void Main(string[] args)
        {
 
            SeikaCenterControl scc = new SeikaCenterControl();
 
            double len = 0.0;
 
            Dictionary<string, decimal> effects = new Dictionary<string, decimal>()
            {
                {"speed", 0.90m },
                {"pitch", 1.30m }
            };
            Dictionary<string, decimal> emotions = new Dictionary<string, decimal>()
            {
                {"喜び", 0.60m }
            };
 
            // 音声発声時
            len = scc.Talk(2000, "あー嬉しーなー", "", effects, emotions);
 
            // 音声保存時
            // len = scc.Talk(2000, "あー嬉しーなー", @"E:\seikacenter\ureshi.wav", effects, emotions);
        }
    }
}

接続モード

SeikaCenterAPI.dllを使ったプログラムは、プログラムのリコンパイルをすることなく接続モードを変更することができます。

通常モード(IPC接続モード)

SeikaCenterAPI.DLLでIPC接続を使う接続モードの事です。

リモート接続モード

SeikaCenterAPI.DLLでHTTP接続を行わせる状態を「リモート接続モード」と称します。
SeikaCenter稼働PCと異なるPCから制御したい場合、またはIPCが利用できない環境では、リモート接続モードが利用できます。

リモート接続モードはHTTPを利用するので、SeikaCenterの設定「HTTP機能」を有効にする必要があります。

利用するSeikaCenterAPI.DLLと同じディレクトリに名称 SeikaCenterAPI.json のJSONファイルを配置すると、DLL内部処理がリモート接続モードに切り替ります。
SeikaCenterAPI.DLLを利用する側はプログラムを変更する必要はありません。

SeikaCenterAPI.jsonに記述する4つのプロパティは必須プロパティです。

SeikaCenterAPI.json
{
  "HostAddr"   : "http://localhost:7180",
  "SampleRate" : 22050 ,
  "User"       : "ユーザ",
  "Password"   : "パスワード"
}
プロパティ 説明
HostAddr 接続先 SeikaCenterの待ち受けURIです
SampleRate 音声のサンプリングレートです。音声はモノラルで指定のサンプリングレート(この例では22.05kHz)に変換されます
User 接続先 SeikaCenter で定義されているユーザです
Password 接続先 SeikaCenter で定義されているパスワードです

メソッド/プロパティ

現時点では以下のDLLメソッド、プロパティが公開されています。接続モードに関係なく利用できます。

メソッド/プロパティ 説明
戻り値 名前
string DLLVersion DLLのバージョン。SeikaCenterのバージョンではありません。
Dictionary<int, string> AvatorList SeikaCenterで利用可能な話者の一覧を返します。
Dictionary<string,Dictionary<string,Dictionary<string, decimal> > > GetAvatorParams2(
  int cid
)
指定の話者のデフォルトパラメタ情報を返します。
Dictionary<string,Dictionary<string,Dictionary<string, decimal> > > GetAvatorParams_current2(
  int cid
)
指定の話者の現在パラメタ情報を返します。
double Talk(
  int cid,
  string talktext,
  string filepath,
  Dictionary<string, decimal> effects,
  Dictionary<string, decimal> emotions
)
指定の話者で指定テキストを発声/音声保存させます。
ファイルパスが空の時は音声再生、ファイルパスが設定されていれば音声保存が実行されます。
戻り値は
  発声時:発声にかかった時間
  保存時:保存した音声ファイルの音声長さ
単位はミリ秒です。エラー時はマイナスの数値になります。

エフェクトパラメタ

Talk()の引数effectsで指定できる名前。英小文字で記述。範囲はSeikaSayの説明を参照。

名前 対応するパラメタ VOICEROID+EX VOICEROID2 CeVIO ガイノイドTalk 棒読みちゃん SAPI SpeechPlatform
volume 音量
speed 話速
pitch 高さ(CeVIOではトーン)
intonation 抑揚(CeVIOではトーンスケール)
alpha 声質 ※CeVIOでのみ有効

感情パラメタ

Talk()の引数emotionsは話者により異なります。

感情パラメタ
話者 “喜び” “怒り” “悲しみ” “セクシー” “パワフル” “あたふた” “元気” “普通” “怒り” “哀しみ” “クール” “照れ” “へこみ” “High” “Mid” “MidLow” “Low”
VOICEROID2
東北イタコ(VOICEROID2)
さとうささら
すずきつづみ
タカハシ
ONE

再生時間

Talk()で返る時間/長さは、同じ文面を再生/保存させても毎回異なります。
これは、製品の機能を使わず発声の終了を自前で監視しているため、PCの状態やタイミング等の問題で変動します。 音声保存時は一度保存した音声ファイルから算出させています。

エラーがあった場合、時間/長さにマイナスの値が返ります。

seikacenter-103.txt · 最終更新: 2023/04/13 00:43 by k896951

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki