中文语音合成失败,而英文则正常

4

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

英语似乎运行正常,但中文会出现以下错误

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);
        }
    }
}

在另一个问题中,我发现了这个答案,它指出自windows 8.1以来缺少了关键文件,但没有说明如何获取这些文件的任何方法。
我目前正在使用64位版本的windows 10。
编辑:我下载了chsbrkr.dll和chtbrkr.dll文件,并获得了以下新错误。
An unhandled exception of type 'System.InvalidCastException' occurred in Microsoft.Speech.dll

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


你解决了你的问题吗?我遇到了同样的问题...谢谢。 - Adavo
没有,我没有找到解决方案。 - hatero
我在遇到日语问题后找到了这个问题(Windows 10,Speech v11)。我无法访问DLL以尝试解决问题(它们可能仅适用于中文),因此我不知道是否可以解决该问题。 - briantist
1个回答

1

tofutim发布的内容如下:https://dev59.com/PoXca4cB1Zd3GeqPPewg#28042294

在Windows 8.0和Windows 8.1之间,有两个文件被删除,这对于使用Server Speech API至关重要。这些文件是chsbrkr.dll和chtbrkr.dll,在Windows 8.0中将位于Windows目录中。根据您的SDK和Windows 8.0版本(x86 vs 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将因为错误而失败。


哦,我的问题已经有一段时间了,但当我下载那些文件时,我得到了编辑中所述的错误消息。 - hatero
明白了。我一直试图在Windows 10上使用它,但直到我把那些文件放到目录中,才开始能够发出任何中文语音。 - egfconnor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接