簡體   English   中英

C#SpeechSynthesizer —“系統上未安裝語音”

[英]C# SpeechSynthesizer - “No voice installed on the system”

我試圖制作一個簡單的控制台程序,該程序使用System.Speech.Synthesis SpeechSynthesizer將文本轉換為語音,但是它不起作用。

我正在使用64位Windows 7和Visual Studio 2010(我認為是.NET Framework 4.0?)

該程序:

using System.Speech.Synthesis;
// *skip*
SpeechSynthesizer speech = new SpeechSynthesizer();
speech.SetOutputToDefaultAudioDevice();
speech.Speak("Hello world");

InvalidOperationException發生在線路speech.Speak(...) ,消息為系統上未安裝語音或當前安全設置不可用。

speech.GetInstalledVoices()顯示已安裝Microsoft Anna,並且其Enabled也設置為true

我曾嘗試用Microsoft.Speech.Synthesis (在C:\\ Program Files(x86)\\ Microsoft Speech Platform SDK \\ Assembly \\ Microsoft.Speech.dll中找到dll)替換System.Speech.Synthesis (但是找到了相同的東西)。

導航到“控制面板”>“語音”>“文本到語音”,然后單擊“預覽語音”,也會失敗,並顯示一條消息。無法播放此語音。 請嘗試選擇其他聲音或選擇其他音頻輸出設備。 唯一的選擇是Microsoft Anna-英語(美國)。

(如果有幫助的話,Windows的語音識別也可以。)

某些解決方案建議導航到注冊表編輯器,HKEY_LOCAL_MACHINE>軟件> Microsoft>語音>聲音>令牌,並修復損壞的語言鍵。 在令牌下是MS-Anna-1033-20-DSK>屬性,並且語言鍵應為409。

另一個解決方案建議從Visual Studio的配置管理器中更改Active解決方案平台,但是我已經用Any CPU,x86和x64測試了該程序,但均無效果。

我的文字轉語音有什么問題? :(

編輯:

安裝Visual Studio 2012是為了防止.NET Framework 4.0出現問題,因為VS2012支持4.5,但它也不起作用。

我認為問題出在我的Windows 7中,因為即使內置的“文字轉語音”功能也不起作用。

終於解決了。

我的SpeechEngine(或Windows 7上的所有功能)顯然已損壞,運行System File Checker(SFC)對其進行了修復。

要運行SFC,請鍵入cmd(必須以管理員身份運行)sfc / scannow

不知道這是否對您有幫助,但今天早上我遇到了類似情況。 事實證明,在ClickOnce應用程序中,我必須將以下內容添加到我的app.manifest文件中:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

這應該在Assembly / security / requestedPrivileges節點中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM