shigobu/SAPIForVOICEVOX

特定の文を読もうとするとエラー

eai04191 opened this issue · 2 comments

[2021/09/02(木) 00:03:59.869] - エラー
ConvertToWavDataSAPI5
SAPI50のWAV生成でエラー
System.ArgumentException: 値が有効な範囲にありません。
   場所 SpeechLibA.SpVoiceClass.Speak(String Text, SpeechVoiceSpeakFlags Flags)
   場所 FNF.Utility.BouyomiChan.ConvertToWavDataSAPI5(String sTalk, Int32 iSpeed, VoiceType vType, Byte[]& bWavData, SpVoice _SpVoice)

以下の文を読ませると必ず上記エラーが発生します

  • おっ
  • は、破滅
  • ロ、ロックマン
  • ご、極悪
  • あっ

おそらくVOICEVOX自体の 「、」で区切った短い文節が読まれないことがある 仕様で何も出力できなかった場合のハンドルが出来ていないのかと思います。

issueありがとうございます。
エンジンエラーが有った場合のハンドリングを実装していませんでした。

synthesisの戻り値が必ずwaveデータである前提で処理しています。
おそらく、エラーになった場合はjsonが戻ると思われるので、戻り値のMediaTypeを確認してwaveデータでない場合に、
「エンジンエラーです」等の音声データを戻すようにすれば良いと思われます。

1.1.0をリリースしました。
このリリースで、エンジンエラーのハンドリングを追加しました。

エラーメッセージは表示されず、「エンジンエラーです。」の音声が再生されるようになりました。

issueとじます。