【问题标题】:Chinese TTS Fails, while English works中文 TTS 失败,而英文有效
【发布时间】:2019-07-08 00:33:48
【问题描述】:

我刚刚安装了 Microsoft 语音 SDK 11,并为英语和中文添加了 2 种不同的运行时语言。

英文似乎运行良好,虽然中文抛出了这个错误

System.InvalidOperationException

附加信息

Speak error '80004005'

换行

synth.Speak(s);

在下面的代码中

using System;
using Microsoft.Speech.Synthesis;

namespace SampleSynthesis
{
    class Program
    {
        static void Main(string[] args)
        {
            speakString(0, "Hello, I'm TTS.");
        }

        static void speakString(int i, String s)
        {
            // Initialize a new instance of the SpeechSynthesizer.
            SpeechSynthesizer synth = new SpeechSynthesizer();

            // Select a voice. 
            switch (i)
            {
                case 0:
                    synth.SelectVoice("Microsoft Server Speech Text to Speech Voice (en-US, ZiraPro)");
                    break;
                case 1:
                    synth.SelectVoice("Microsoft Server Speech Text to Speech Voice (zh-CN, HuiHui)");
                    break;
            }

            // Configure the audio output. 
            synth.SetOutputToWaveFile(@"C:\Users\David\Desktop\TTStest\test.wav");

            synth.Speak(s);
        }
    }
}

在另一个问题中我发现了这个answer, 其中指出(自?)Windows 8.1 中缺少关键文件, 但没有说明如何获取这些的任何方法。

我目前使用的是 64 位版本的 windows 10。

编辑:我下载了文件 chsbrkr.dll 和 chtbrkr.dll 并得到以下新错误

An unhandled exception of type 'System.InvalidCastException' occurred in Microsoft.Speech.dll

再次在我的代码中使用同一行。

【问题讨论】:

  • 您的问题解决了吗?我遇到了同样的问题...谢谢。
  • 不,我没有找到解决方案。
  • 我在遇到同样的日语问题(Windows 10,Speech v11)后发现了这个问题。我无权访问 DLL 来尝试一下(它们可能仅适用于中文),所以我不知道它是否能解决问题。

标签: c# text-to-speech


【解决方案1】:

由 tofutim 发布:https://stackoverflow.com/a/28042294/1212314

在 Windows 8.1 和 Windows 8.0 之间,删除了两个对使用服务器语音 API 至关重要的文件。这些是 chsbrkr.dll 和 chtbrkr.dll,它们将位于 Windows 8.0 的 Windows 目录中。根据您的 SDK 和 Windows 8.0 版本(x86 与 x64)从 Windows 中选择 x86 与 x64 版本也很重要。例如,在 64 位 Windows 8.1 环境中,使用 32 位 dll 的,您应该将这两个文件放在

C:\Program Files (x86)\Common Files\Microsoft Shared\Speech\TTS\v11.0

希望微软会修复这些问题(尽管我被告知他们不会)或正式允许分发(祝你好运......)。

顺便说一句,您不应该在 Windows XP 到 Windows 8.0 中看到此错误。

更新。我相信这些文件是用来将中文分成块供 TTS 处理的。没有它们,中文 TTS 将失败并显示错误。

【讨论】:

  • 呃,我的问题已经有一段时间了,但是当我下载这些文件时,我收到了编辑中所述的错误消息。
  • 明白了。我试图在 Windows 10 上使用它,但在我将这些文件放入目录然后它开始工作之前,我永远不会说任何中文。
猜你喜欢
  • 2020-11-15
  • 1970-01-01
  • 1970-01-01
  • 2021-01-13
  • 2014-04-05
  • 1970-01-01
  • 2021-03-22
  • 1970-01-01
  • 2020-10-12
相关资源
最近更新 更多