弦巻マキ (英)が発話できない
nmori opened this issue · 4 comments
nmori commented
どうもAPI側の整合が取れていないようにもみえるのですが、
現状の取得方法では、ライセンスエラーがでて上手に発話できません。
[原因] Config からキャスト名をもってきますが、表記が英語であるため。
[仮対処] CeVIOAIEnumerator.cs に下記の細工をすると動くようになりました。
`
string name = doc.Attribute("Name").Value;
//フォローアップ
if (name.IndexOf("Tsurumaki Maki (EN)") >= 0)
{
name = "弦巻マキ (英)";
}
`
ksasao commented
報告いただきありがとうございます。ご提示いただいた仮対処でエラーが出なくなることを確認しました。名前の取得方法については少し調べてみます。
ksasao commented
kn1cht commented
naoさんに最初に問題をご報告した者です.
setting.cfg
では確かに "Tsurumaki Maki (EN)","弦巻マキ (日)" と書かれているのですが,実際に CeVIO.Talk.RemoteService2
から呼び出すキャスト名はWindowsの表示言語に依存することが分かりました.
Windows言語設定によるキャスト名のテスト
実際に使えるキャスト名は Talker2.AvailableCasts()
で取得できます(以下スクショではanoyetta/CeVIOAIProxyを使っています).
Windows(日本語設定) | Windows(英語設定) | |
---|---|---|
マキ日本語 | 弦巻マキ (日) | Tsurumaki Maki (JP) |
マキ英語 | 弦巻マキ (英) | Tsurumaki Maki (EN) |
従って,「日本語版Windowsで弦巻マキ (英)を使いたいとき」以外に「英語版Windowsで弦巻マキ (日)を使いたいとき」にもsetting.cfg通りでは問題が起きそうです.
私は「小春六花」を所持していませんが,同様に英語版ではKoharu Rikkaのようになっている可能性があります.
なお,CeVIO AI自体の表示言語設定は日英どちらにしてもキャスト名に影響しませんでした.
考えられる対応
Talker2.AvailableCasts()
からキャスト名称を取得する(この場合CeVIO AIを起動させておかなければなりません)- 現在および将来のCeVIO AIのキャスト名称をハードコーディングして,Windowsの表示言語によって切り替える
- CeVIO AI本体が
setting.cfg
を表示言語に則して書き換えてくれることに期待する
ksasao commented