7

私はプログラムに話をさせるために単純なC#コードを使用しています

        if (checkBox1.Checked == true) {
            SpeechSynthesizer speaker = new SpeechSynthesizer();
            speaker.Rate = 1;
            speaker.Volume = 100;
            speaker.Speak(stringout);

問題は、stringoutに数字を含む文が含まれていることです。そして、MicrosoftSpeechはこれらを「市外局番」として認識します。だから例えば言う代わりに

sample 90 123 40

聞こえます:

sample *area code* 90 123 40

この振る舞いを止める方法は?

4

1 に答える 1

1

これを試して:

speaker.SpeakSsml("sample <say-as interpret-as=\"string\" format=\”digit string\” detail=\”string\”&gt;90 123 40<say-as>");

それが機能する場合は、文字列の正規表現置換を実行して、その文字列で数値をラップします。

于 2012-07-11T15:43:28.520 に答える