Microsoft.Speech.Synthesis - 中文说错误(zh-CN,HuiHui)

问题描述 投票:0回答:2

看起来微软语音合成问题与中文(慧慧)仍然存在。 经过一些网上研究,很少有人尝试修复它,我找不到任何解决方案。

设置

Windows 10 (x32) (tested on x64 too)
SDK 11
Visual Studio 2017

错误

InnerException = {"Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))"}
Message = "Speak error '8000FFFF'."
Source = "Microsoft.Speech"

麻烦的代码

using Microsoft.Speech.Synthesis;

using (var ss = new SpeechSynthesizer())
{
  ss.SetOutputToWaveFile("output.wav");
  ss.SelectVoice("Microsoft Server Speech Text to Speech Voice (zh-CN, HuiHui)");
  ss.Speak("我喜欢和很多珍珠奶茶"); // speak error here
}

此代码使用英语(en-US,Helen)完美运行。

修复尝试失败

Download "chsbrkr.dll" & "chtbrkr.dll"
Add it to "Program Files((x86))\Common Files\Microsoft Shared\Speech\TTS\v11.0"

有人以某种方式成功运行此脚本还是找到了替代方案? 谢谢。

以前发布在同一主题上

Chinese TTS fails, while English works TTS for Chinese is throwing SAPI ERROR E_FAIL ASP.Net and Microsoft.Speech error with Chinese

c# text-to-speech speech-synthesis
2个回答
0
投票

尝试注册这两个dll“chsbrkr.dll”和“chtbrkr.dll”。

尝试以下步骤并检查 -

1)将两个dll粘贴到“C:\ Windows \ System32”目录中。如果您使用的是64位操作系统,请将两个dll粘贴到“C:\ Windows \ sysWOW64”中(复制需要管理员优先权)。

2)在命令提示符下使用以下命令在系统中注册两个dll(以管理员身份运行)

  1. %windir%System32 regsvr32.exe / u Chsbrkr.dll
  2. %windir%syswoW64 regsvr32.exe / u Chsbrkr.dll
  3. %windir%\ System32 \ regsvr32.exe / i Chsbrkr.dll(您可能会在此步骤中看到错误,可以忽略)
  4. %windir%\ SysWoW64 \ regsvr32.exe / i Chsbrkr.dll(您可能会在此步骤看到错误,可以忽略)
  5. %windir%System32 regsvr32.exe / u Chtbrkr.dll
  6. %windir%syswoW64 regsvr32.exe / u Chtbrkr.dll
  7. %windir%\ System32 \ regsvr32.exe / i Chtbrkr.dll(您可能会在此步骤看到错误,可以忽略)
  8. %windir%\ SysWoW64 \ regsvr32.exe / i Chtbrkr.dll(您可能会在此步骤看到错误,可以忽略)

执行此操作后尝试重新启动系统,然后尝试运行您看到“发出错误”的应用程序。

希望这能解决问题。


-1
投票

您好,当您使用excel 2013并尝试在Visual Basic中创建一个宏时,会出现类似的错误

我正在尝试下一个代码:

Sub Main()

Dim speech As New SpVoice
Dim i As Long
Dim oFileStream As New SpFileStream
Const SAFT48kHz16BitStereo = 30
Const SSFMCreateForWrite = 3 

对于i = 1到5

Set speech.Voice = speech.GetVoices.Item(3)
speech.Speak (Cells(i, 6))
Application.Wait (Now() + TimeValue("00:00:02"))

下一个我

结束子

error seen

table of words

© www.soinside.com 2019 - 2024. All rights reserved.