2

Scott HanselmanBabySmashコードを変更して、他の言語をサポートしています。

  1. これらの手順に従って、音声プラットフォームと新しい言語をインストールしました。
  2. 言語がレジストリに表示されるようになりました。

    ここに画像の説明を入力

  3. Windows で言語を選択して再生できるようになりました。

    ここに画像の説明を入力

  4. System.Speech.Synthesis.SpeechSynthesizer.GetInstalledVoices()声を返すようになりました。

  5. ただし、以下のコードでは、 「System.ArgumentException: 音声を設定できません。一致する音声がインストールされていないか、音声が無効になっています。」SelectVoice()というエラーがスローされます。
string phrase = null;
SpeechSynthesizer speech = new SpeechSynthesizer();
CultureInfo keyboardCulture = System.Windows.Forms.InputLanguage.CurrentInputLanguage.Culture;
InstalledVoice neededVoice = speech.GetInstalledVoices(keyboardCulture).FirstOrDefault();
if (neededVoice == null)
{
    phrase = "Unsupported Language";
}
else if (!neededVoice.Enabled)
{
    phrase = "Voice Disabled";
}
else
{
    speech.SelectVoice(neededVoice.VoiceInfo.Name);
}

speech.Speak(phrase);
  1. にアップグレードしてみましたC:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Speech.dll

  2. のバージョンと言語パックが一致することを確認しました。Microsoft.Speech.dll

    ここに画像の説明を入力

  3. このコードは、既にインストールされているデフォルトの音声で機能します。

  4. 必死になって、リフレクションを介して直接呼び出すことさえ試みましSystem.Speech.Internal.Synthesis.VoiceSynthesis.GetVoice()たが、まったく同じエラーが発生しました。

ご協力いただけると大変助かります。ありがとう。

4

4 に答える 4

1

ハハ私は特別な気分です: Python に関するこの投稿は実際に私の問題を解決しました: ビルド構成プラットフォームはx64ではなくAny CPU!

于 2016-01-13T21:02:21.477 に答える
0

もう 1 つの解決策は、Microsoft Speech Platform SDK と Microsoft Server Speech Platform Runtime の (x64) ビット バージョンをインストールすることです。両方の (x86) ビットをインストールしたと思いますが、プラットフォームは (x64) ビットで読み取ろうとします。

私はあなたと同じ問題を抱えていましたが、逆に、これは私にとってうまくいきます!

于 2016-04-12T15:59:40.460 に答える