It seems like the Microsoft Speech Synthesis issue with Chinese (HuiHui) is still running into the wild.
After some researches online and few tries to fix it I couldn't find any solution.
The setup
Windows 10 (x32) (tested on x64 too)
SDK 11
Visual Studio 2017
The error
InnerException = {"Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))"}
Message = "Speak error '8000FFFF'."
Source = "Microsoft.Speech"
The troublesome code
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
}
This code is working perfectly using English (en-US, Helen).
Failed fix attempt
Download "chsbrkr.dll" & "chtbrkr.dll"
Add it to "Program Files((x86))\Common Files\Microsoft Shared\Speech\TTS\v11.0"
Does someone has succeeded in running this script in some way or has found an alternative ?
Thank you.
Previously posted on the same topic
Chinese TTS fails, while English works
TTS for Chinese is throwing SAPI ERROR E_FAIL
ASP.Net and Microsoft.Speech error with Chinese
Try registering these two dlls "chsbrkr.dll" & "chtbrkr.dll".
Try the below steps and check -
1) Paste the two dlls in "C:\Windows\System32" directory. If you are using a 64 Bit operating system, paste the two dlls into the "C:\Windows\sysWOW64" as well (copying requires administrator previlage).
2) Register the two dlls in the system using the below commands in command prompt(Run as Administrator)
%windir%\SysWoW64\regsvr32.exe /i Chsbrkr.dll(you may see error at this step,can ignore)
%windir%\System32\regsvr32.exe /u Chtbrkr.dll
After doing this try restarting the system and then try running the application where you were seeing the "Speak error".
Hope this resolves the issue.
Hello a similar error appears when you work with excel 2013 and try to make a macro in visual basic
I am trying the next code:
Sub Main()
Dim speech As New SpVoice
Dim i As Long
Dim oFileStream As New SpFileStream
Const SAFT48kHz16BitStereo = 30
Const SSFMCreateForWrite = 3
For i = 1 To 5
Set speech.Voice = speech.GetVoices.Item(3)
speech.Speak (Cells(i, 6))
Application.Wait (Now() + TimeValue("00:00:02"))
Next i
End sub
User contributions licensed under CC BY-SA 3.0