我正在使用谷歌文本语音(TTS)。大家都知道它一次只支持100个字符串。我已经正确实现了TTS部分,但不是超过100个字符。所以我说我会得到例外。
public void Read(string text) // Lets say text has length 250 (>100)
{
DeleteFile();
ReadText(text);
PlaySound();
}
我有一种处理音频的方法:
public void DisposeWave()
{
if (output != null)
{
if (output.PlaybackState == NAudio.Wave.PlaybackState.Playing) output.Stop();
output.Dispose();
output = null;
}
if (stream != null)
{
stream.Dispose();
stream = null;
}
}
另外请考虑我正在使用NAudio(使用NAudio.Wave;)。 如何有效地修改此代码并毫无问题地播放整个字符串音频。
编辑问题: 当我们使用Google TTS时,您知道它一次只能支持100个字符串。我的问题是如果我的字符串大于100我不会允许谷歌做TTS。因此,我确实希望将字符串拆分为100个集合并播放音频而不会发生冲突。怎么做?
请帮忙。
答案 0 :(得分:0)
更改此方法,如
public void Read(string text) // Lets say text has length 250 (>100)
{
DeleteFile();
int startIndex = 0;
string textToPlay = text;
string remainingText = text;
while (remainingText.Length > 100)
{
textToPlay = remainingText.Substring(startIndex, 100);
startIndex = startIndex + 100;
remainingText = text.Substring(startIndex);
ReadText(textToPlay);
}
ReadText(remainingText);
PlaySound();
}