4

テキストを音声に変換するために Microsoft.Speech SDK (11.0) を使用しています。Windowsフォームアプリケーションがあり、非常に基本的なコードを使用して入力したテキストを読み上げていますが、失敗しています. ボタンをクリックしたときの私のコードは次のとおりです。

SpeechSynthesizer syn = new SpeechSynthesizer();
PromptBuilder pb = new PromptBuilder();
pb.AppendText("Welcome, everyone");
syn.Speak(pb);

上記のコードの最後の行でエラーが発生しました。

FileNotFoundException was unhandled
Exception from HRESULT: 0x8004503A

完全なスタック トレースは次のとおりです。

at Microsoft.Speech.Synthesis.SpeechSynthesizer.SpeakPrompt(Prompt prompt, Boolean async)
at Microsoft.Speech.Synthesis.SpeechSynthesizer.Speak(Prompt prompt)
at Microsoft.Speech.Synthesis.SpeechSynthesizer.Speak(PromptBuilder promptBuilder)
at MSSpeechSynth.Form1.btnSpeak_Click(Object sender, EventArgs e) in      C:\Users\prashant.k\Desktop\MSSpeechSynth\MSSpeechSynth\Form1.cs:line 30
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at MSSpeechSynth.Program.Main() in C:\Users\prashant.k\Desktop\MSSpeechSynth\MSSpeechSynth\Program.cs:line 18
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()

このエラーの原因は何ですか?

ありがとう

4

3 に答える 3

3

Microsoft が推奨するように、「Speech Platform Runtime 11 と Speech Platform SDK 11 には、音声認識または音声合成 (TTS またはテキスト読み上げ) 用のランタイム言語が含まれていません。これらは個別にインストールする必要があります。」

ここからランタイム言語の 1 つをインストールして、同じ問題を解決しました: http://www.microsoft.com/en-us/download/details.aspx?id=27224

于 2012-09-06T19:53:43.883 に答える
0

同様の問題があり、正しいランタイムをダウンロードして解決しました。

まず、音声認識ファイル「MSSpeech_SR_en-CA_TELE.msi」をダウンロードしました。音声認識パックである MSSpeech_SR ではなく、MSSpeech_TTS が開始する言語パックをダウンロードする必要があります。

お役に立てれば。

于 2014-11-19T08:17:55.897 に答える
0

私はSDK 5.1で作業したので、専門家ではありません...しかし、私は助けようとします。

  1. ms speech SDK が適切にインストールされ、適切に構成されていることを確認してください。
  2. d [スタート] > [コントロール パネル] > [簡単アクセス] > [音声認識] に移動し、[テキスト読み上げ] をクリックします。
  3. ここで、完全な UAC を使用してアプリを開始します。
  4. 「try-catch」ブロックを使用してみてください。
  5. そこも見てください。私の検索はここで終わります。https://forums.asp.net/p/1105408/2028838.aspx#2028838

( 1> http://msdn.microsoft.com/en-us/library/hh362873.aspx ) ( 2> 「音声エンジン」をテストします。sdk が失敗していないことを確認します。アプリにバグがあります ) ( 3> 管理者権限でアプリケーションを実行する場合。)

最後に、その問題を解決する大きな方法。SDK のアンインストール、registry-temp のクリーンアップなどを試してから、SDK を再インストールしてください。そして、nuget パッキング システムを使用して、sdk から必要な dll をアプリケーションに追加してみてください (ms speech sdk が見つからず、別の nuget を使用して同様の sdk を見つけることができる場合)。

于 2012-06-18T14:54:01.497 に答える