【解決方法】speechsynthesizer によるテキスト読み上げの問題


C# と System.Speech.Synthesis を使用して、単純なテキスト読み上げアプリケーションを作成しようとしています。 問題は、このアプリケーションをギリシャ語で動作させたいということです。 だから私がやろうとしたのはこれです:

C#
SpeechSynthesizer synthesizer = new SpeechSynthesizer
    {
    Volume = 100,
    Rate = -2
    };
    
    synthesizer.SpeakAsync("Γειά σου κόσμε!");

もちろん、これは機能しません。このコードの結果、音声はすべての文字を個別に発音するからです。

私が試したこと:

多くのグーグル検索の後、espeak とそれに付属するギリシャ語の音声を次のようにインストールして使用しようとしました。

C#
synthesizer.SelectVoice("eSpeak-el-gr");

結果はまったく同じでした – 声は単語全体ではなく、すべての文字を個別に話しました. この問題を修正して、`SpeechSynthesizer` がギリシャ語の文字だけでなく、すべてのギリシャ語の単語を発音するようにする方法はありますか?

解決策 1

文字列は完全に読み取られたが、ファイルから読み取られた連結された文字列が綴られているという同様の問題がありました。
ここでの問題は文字エンコーディングでした。
ファイルをUTF8ではなくUnicodeとして強制的に読み取ると、問題が解決しました。
そのため、テキストを SpeechSynthesizer に送信するために使用されるエンコーディングを確認または確認してください。

これが Google 社員の役に立てば幸いです。

コメント

タイトルとURLをコピーしました