gpt4 book ai didi

text-to-speech - 中文 TTS 抛出 SAPI 错误 E_FAIL

转载 作者:行者123 更新时间:2023-12-04 02:22:19 39 4
gpt4 key购买 nike

这是我的中文 TTS 代码,虽然中文 TTS 引擎安装成功,但语音功能失败

using Microsoft.Speech.Synthesis;
using System.Globalization;

namespace TTS3
{
class Program
{
static void Main(string[] args)
{
//CultureInfo=new CultureInfo("zh-CN");
SpeechSynthesizer synth = new SpeechSynthesizer();

// Output information about all of the installed voices.
foreach (InstalledVoice voice in synth.GetInstalledVoices(new CultureInfo("zh-CN")))
{
synth.SelectVoice(voice.VoiceInfo.Name);
//Console.WriteLine(synth.Voice.Description);
synth.SetOutputToWaveFile("C:\\Users\\surabhi\\Desktop\\yes.wav");
synth.Speak("你好世界");
break;
}
Console.WriteLine();
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}

代码抛出的异常是

Unhandled Exception: System.InvalidOperationException: Speak error '80004005'. -
--> System.Runtime.InteropServices.COMException: Error HRESULT E_FAIL has been r
eturned from a call to a COM component.
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 e
rrorCode, IntPtr errorInfo)
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode
)
at Microsoft.Speech.Internal.Helpers.ExceptionFromSapiError(SAPIErrorCodes er
rorCode)
--- End of inner exception stack trace ---
at Microsoft.Speech.Synthesis.SpeechSynthesizer.SpeakPrompt(Prompt prompt, Bo
olean async)
at Microsoft.Speech.Synthesis.SpeechSynthesizer.Speak(Prompt prompt)
at Microsoft.Speech.Synthesis.SpeechSynthesizer.Speak(String textToSpeak)
at TTS3.Program.Main(String[] args) in c:\Users\surabhi\Documents\Visual Stud
io 2013\Projects\TTS3\TTS3\Program.cs:line 23

请帮我解决这个问题

最佳答案

在 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

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

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

更新。我相信这些文件用于将中文分解成 block 以供 TTS 处理。没有它们,中文 TTS 将失败并显示错误。

关于text-to-speech - 中文 TTS 抛出 SAPI 错误 E_FAIL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27394304/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com