努力したWiki

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

ユーザ用ツール

サイト用ツール


documents:voiceroid:assistantseika:assistantseika-003

SeikaSay2、SeikaSay2N の説明

概要

SeikaSay2 コマンドは AssistantSeika を利用するためのインタフェースプログラムです。Windows Communication Foundation (WCF)を利用しています。
SeikaSay2N コマンドは AssistantSeika を利用するためのインタフェースプログラムです。HTTP機能を利用しています。

SeikaSay2.exe SeikaSay2N.exe
実行場所 AssistantSeikaが稼働するPC上 AssistantSeikaが稼働していないPC上
条件 AssistantSeikaが稼働している事 AssistantSeikaが稼働している別PCがあり、HTTP機能が有効である事
SeikaSay2N.exe と同じフォルダに TinySeikaServer.json を配置する事
その他 -async 指定時は音声保存できません -async は指定できません。

cidが2000のVOICEROID2話者をseikasay2で発声させる最少の記述は以下となります。

seikasay2 -cid 2000 -t "これは音声発声のテストです"

cidが2000のVOICEROID2話者をseikasay2Nでリモートから発声させる最少の記述は以下となります。

seikasay2N -cid 2000 -t "これは音声発声のテストです"

※TinySeikaServer.jsonが同じフォルダに配置されていること

その他オプションは以下のようになります。seikasay2とseikasay2Nの違いは-asyncオプション有無です。


オプション説明

seikasay2コマンドに指定するオプション -cid は必ず最初に指定します。
次にオプション -t, -stdin, -f のいずれかのオプションが有効になっている必要があります。

コマンド 内容
seikasay2 -cid 2000 -t “発声しましたか?” “これは音声発声のテストです。” “発声しましたか?これは音声発声のテストです。” を発声する。
seikasay2 -cid 2000 -stdin ※標準入力から入力されたテキストで発声する。
seikasay2 -cid 2000 -f words.txt words.txt の内容を1行ずつ発声する。UTF-8 BOM無しのテキストファイル。

cidはAssistantSeikaの話者一覧でも確認できますし、-list オプションで確認する事もできます。この環境では2000が琴葉茜を指し、2003がついなちゃん(標準語)、1700が京町セイカ+EX、3000がさとうささら、5000が鳴花ヒメを指しています。

F:\AssistantSeika\sandbox>seikasay2 -list
cid   speaker
----- ---------------------------
 1700 VOICEROID+ 京町セイカ EX
 1701 VOICEROID+ 民安ともえ EX
 1702 VOICEROID+ 東北ずん子 EX
 2000 琴葉 茜
 2001 琴葉 葵
 2002 伊織 弓鶴
 2003 ついなちゃん(標準語)
 2004 ついなちゃん(関西弁)
 2005 京町セイカ(v1)
 2006 民安ともえ(v1)
 2007 結月ゆかり(v1)
 2008 東北ずん子(v1)
 2009 京町セイカ(v1) - どよーん
 5000 鳴花ヒメ
 5001 鳴花ミコト
 3000 さとうささら
 3001 すずきつづみ
 3002 タカハシ
 3003 ONE
----- ---------------------------

F:\AssistantSeika\sandbox>

他のオプションは以下の通りです。

オプション 説明
-async SeikaSay2.exeでのみ使用可能。非同期で発声させます。(発声終了を待たない) 音声保存指定は無効となります。
-params -cid で指定する話者のパラメタ情報(デフォルト)を表示します。
-current -cid で指定する話者のパラメタ情報(現在の設定)を表示します。
-save WaveFile WaveFile で示すファイルに音声データ(Wav形式)を書き出します。絶対パスでの指定をしてください。
-savepath Path 標準入力時およびファイル入力時、Path で示すフォルダに音声データ(Wav形式)を書き出します。
そのフォルダの下にファイル名 「“SAY”+数字連番_cid+“.wav”」で保存します。フォルダは絶対パスで指定してください。
-volume P 音量 Pを指定します。
-speed P 話速(速さ) Pを指定します。
-pitch P 高さ Pを指定します。
-alpha P 声質 Pを指定します。
-intonation P 抑揚 Pを指定します。
-emotion eP P 感情パラメタ eP に P を設定します。

VOICEROID2,CeVIO,SAPIではそれぞれ指定可能なオプションと指定する値が異なるので注意してください。
簡単な範囲チェックはしていますが、例えば VOICEROID2 のオプション -speed で 0.559 なんて指定した場合はたぶんエラーになるので、あまりイレギュラーな指定はしないでください。順次修正していきます。

オプションの数値範囲。

オプション VOICEROID2 VOICEROID+EX CeVIO SAPI 棒読みちゃん ガイノイドTalk
-volume 0.00 ~ 2.00 0.00 ~ 2.00 0 ~ 100 0 ~ 100 0 ~ 100 0.00 ~ 2.00
-speed 0.50 ~ 4.00 0.50 ~ 4.00 0 ~ 100 -10 ~ 10 50 ~ 200 0.50 ~ 4.00
-pitch 0.50 ~ 2.00 0.50 ~ 2.00 0 ~ 100 - 50 ~ 200 0.50 ~ 2.00
-alpha - - 0 ~ 100 - - -
-intonation 0.00 ~ 2.00 0.00 ~ 2.00 0 ~ 100 - - 0.00 ~ 2.00
-emotion 0.00 ~ 1.00 - 0 ~ 100 - - -

VOICEROID2ではスタイル、CeVIOでは感情・コンディションと説明されている、感情のパラメタを指定するオプションが -emotion になります。

感情パラメタには名前がついています。この名前をそのまま指定する事になります。

記述 説明
seikasay2 -cid 3000 -emotion “元気” 50 -t “さとうささらは元気です” CeVIO さとうささら の元気パラメタを指定
seikasay2 -cid 3000 -emotion “哀しみ” 50 -t “さとうささらは哀しいです” CeVIO さとうささら の哀しみパラメタを指定
seikasay2 -cid 3000 -emotion “クール” 100 -t “さとうささらはクールなのです” CeVIO すずきつずみ のクールパラメタは指定しても無効
seikasay2 -cid 3000 -emotion “元気” 0 -emotion “哀しみ” 100 -t “さとうささらはとても哀しいのです” CeVIO さとうささら の元気・哀しみパラメタを指定
seikasay2 -cid 2000 -emotion “喜び” 1.00 -t “茜ちゃん元気ー!” VOICEROID2 琴葉茜 の喜びパラメタを指定
seikasay2 -cid 2000 -emotion “怒り” 1.00 -t “茜ちゃん激オコー!” VOICEROID2 琴葉茜 の怒りパラメタを指定
seikasay2 -cid 2000 -emotion “クール” 1.00 -t “茜ちゃん超クール” CeVOI すずきつづみ のクールパラメタは指定しても無効
seikasay2 -cid 2000 -emotion “悲しみ” 0.7 -emotion “怒り” 0.3 -t “茜ちゃんしんみり” VOICEROID2 琴葉茜 の悲しみ・怒りパラメタを指定

話者が対応していない感情パラメタを適用することはできません。たとえば すずきつづみ の感情パラメタ“クール”をさとうささらに指定しても有効になりません。さとうささらは“クール”に対応していないからです。
東北イタコの感情パラメタ“セクシー”を琴葉茜に指定してもセクシーボイス茜ちゃんにはなりません。琴葉茜は“セクシー”に対応していないからです。

利用可能な感情パラメタは、SeikaSay2コマンドの -params オプションで確認できます。
cidが3000のさとうささらは、元気,普通,怒り,哀しみ、の4つの感情パラメタを持っています。

F:\AssistantSeika\sandbox>seikasay2 -cid 3000 -params
cid:3000
---------------------------------
effect   : volume         = 50 [0.0~100.0, step 1.00]
effect   : speed          = 50 [0.0~100.0, step 1.00]
effect   : pitch          = 50 [0.0~100.0, step 1.00]
effect   : alpha          = 50 [0.0~100.0, step 1.00]
effect   : intonation     = 50 [0.0~100.0, step 1.00]
emotion  : 元気             = 100 [0.00~100.0, step 1.00]
emotion  : 普通             = 0 [0.00~100.0, step 1.00]
emotion  : 怒り             = 0 [0.00~100.0, step 1.00]
emotion  : 哀しみ            = 0 [0.00~100.0, step 1.00]
---------------------------------

F:\AssistantSeika\sandbox>

cidが2000の琴葉茜は、喜び,怒り,悲しみ、の3つの感情パラメタを持っています。

F:\AssistantSeika\sandbox>seikasay2 -cid 2000 -params
cid:2000
---------------------------------
effect   : volume         = 1 [0~2, step 0.01]
effect   : speed          = 1.3 [0.5~4, step 0.01]
effect   : pitch          = 1 [0.5~2, step 0.01]
effect   : intonation     = 1 [0~2, step 0.01]
effect   : shortpause     = 150 [80~500, step 0.01]
effect   : longpause      = 370 [100~2000, step 0.01]
emotion  : 喜び             = 0 [0~1, step 0.01]
emotion  : 怒り             = 0 [0~1, step 0.01]
emotion  : 悲しみ            = 0 [0~1, step 0.01]
---------------------------------

F:\AssistantSeika\sandbox>

cidが1700の京町セイカ+EXは、感情パラメタを持っていません。

F:\AssistantSeika\sandbox>seikasay2 -cid 1700 -params
cid:1700
---------------------------------
effect   : volume         = 1.00 [0.0~2.0, step 0.01]
effect   : speed          = 1.00 [0.5~4.0, step 0.01]
effect   : pitch          = 1.00 [0.5~2.0, step 0.01]
effect   : intonation     = 1.00 [0.0~2.0, step 0.01]
---------------------------------

F:\AssistantSeika\sandbox>

標準入力

-stdin が指定される場合、標準入力からの入力と判断されます。以下はWindowsで作成したSJISテキストファイルtalk.txtに記述された2行「夜更かしは」「身体に悪いですよ。」を発声します。

F:\AssistantSeika\sandbox>type talk.txt
夜更かしは
身体に悪いですよ。

F:\AssistantSeika\sandbox>type talk.txt | seikasay2 -cid 3003 -stdin

F:\AssistantSeika\sandbox>

引数に -savepath オプションを付与すると、入力した1行単位で音声保存ができます。生成されたテキストファイルは utf-8エンコーディングになっています。

F:\AssistantSeika\sandbox>type talk.txt | seikasay2 -cid 3003 -savepath F:\AssistantSeika\sandbox -stdin

F:\AssistantSeika\sandbox>dir SAY*
 ドライブ F のボリューム ラベルは Seagate Expansion Drive です
 ボリューム シリアル番号は 8C5A-8A40 です

 F:\AssistantSeika\sandbox のディレクトリ

2020/05/02  19:12                17 SAY000001_3003.txt
2020/05/02  19:12            68,842 SAY000001_3003.wav
2020/05/02  19:12                29 SAY000002_3003.txt
2020/05/02  19:12           139,402 SAY000002_3003.wav
               4 個のファイル             208,290 バイト
               0 個のディレクトリ  2,144,332,976,128 バイトの空き領域

F:\AssistantSeika\sandbox>

ファイル入力

-f オプションでファイルを指定するとそのファイルの1行毎を発声します。-savepath オプションで音声が保存されます。以下はWindowsで作成したUTF-8のテキストファイルtalkutf8.txtを指定し音声保存させた例です。

Active code page: 65001

F:\AssistantSeika\sandbox>type talkutf8.txt
夜更かしは
身体に悪いですよ。

F:\AssistantSeika\sandbox>seikasay2 -cid 3002 -savepath F:\AssistantSeika\sandbox -f talkutf8.txt
夜更かしは
身体に悪いですよ。

F:\AssistantSeika\sandbox>dir SAY*
 Volume in drive F is Seagate Expansion Drive
 Volume Serial Number is 8C5A-8A40

 Directory of F:\AssistantSeika\sandbox

2020/05/02  19:16                17 SAY000001_3002.txt
2020/05/02  19:16            74,134 SAY000001_3002.wav
2020/05/02  19:16                29 SAY000002_3002.txt
2020/05/02  19:16           138,520 SAY000002_3002.wav
               4 File(s)        212,700 bytes
               0 Dir(s)  2,144,332,759,040 bytes free

F:\AssistantSeika\sandbox>

SeikaSay2Nでリモートアクセス

SeikaSay2N.exe は TinySeikaServer.json が必須です。同じフォルダに配置します。

TinySeikaServer.json
{
  "Url": "http://192.168.1.100:7180",
  "SampleRate": 22050,
  "User": "SeikaServerUser",
  "Password": "SeikaServerPassword"
}

以下のように“Url”プロパティをGUIから確認することができます。

AssistantSeikaのHTTP機能で待ち受けしているURLとユーザID、パスワードと、音声を転送する際のサンプリングレートを指定します。
※サンプリングレートを小さくするとデータ転送量が減りますが、音質は悪くなります。

非同期実行

オプション -async を指定すると、独立した製品であれば非同期にSeikaSay2コマンドを実行することができます。

この例では、

  • cid 1700 : VOICEROID+ 京町セイカ EX
  • cid 2004 : VOICEROID2 ついなちゃん(関西弁)
  • cid 3000 : CeVIO 7 さとうささら
  • cid 5000 : ガイノイドTalk 鳴花ヒメ

で非同期に実行させています。前半は同期実行、公判が非同期実行です。

demo.bat
seikasay2 -cid 1700 -t "かえるのうたが"
seikasay2 -cid 2004 -t "かえるのうたが"
seikasay2 -cid 3000 -t "かえるのうたが"
seikasay2 -cid 5000 -t "かえるのうたが"
seikasay2 -cid 1700 -t "きこえてくるよ!"
seikasay2 -cid 2004 -t "きこえてくるよ!"
seikasay2 -cid 3000 -t "きこえてくるよ!"
seikasay2 -cid 5000 -t "きこえてくるよ!"
 
pause
 
seikasay2 -cid 1700 -async -t "かえるのうたが"
seikasay2 -cid 2004 -async -t "かえるのうたが"
seikasay2 -cid 3000 -async -t "かえるのうたが"
seikasay2 -cid 5000 -async -t "かえるのうたが"
seikasay2 -cid 1700 -async -t "きこえてくるよ!"
seikasay2 -cid 2004 -async -t "きこえてくるよ!"
seikasay2 -cid 3000 -async -t "きこえてくるよ!"
seikasay2 -cid 5000 -async -t "きこえてくるよ!"
 
pause

音声保存時の注意

オプション -save、-savepath を使う際の注意。

指定するフォルダ名、ファイル名は絶対パスで指定してください。音声保存処理は AssistantSeikaが実行するので、相対パスの場合、AssistantSeika 基準で保存先が決められてしまいます。

documents/voiceroid/assistantseika/assistantseika-003.txt · 最終更新: 2020/08/18 08:54 by k896951

ページ用ツール