0

我正在使用谷歌文字转语音(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 组并播放音频而不会发生冲突。怎么做?

请帮忙。

4

1 回答 1

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();
    }
于 2013-07-24T17:04:42.763 回答