私はc#でのプログラミングは初めてですが、プレーンテキストを音声表現に変換しようとしています。PhonemeReached イベントを使用してプレーン テキストを変換し、e.Phoneme で呼び出します。(以下のコードを参照)。
//Initialize Synthesizer for TTS and extracting Phonemes
SpeechSynthesizer synth = new SpeechSynthesizer();
//Calling the PhonemeReachedEvent
synth.PhonemeReached += new EventHandler <PhonemeReachedEventArgs>(synth_PhonemeReached);
//Speaking the text from richTextBox1
synth.SpeakAsync(richTextBox1.Text);
//The Event
private void synth_PhonemeReached(object sender, PhonemeReachedEventArgs e)
{
string output = e.Phoneme;
//Writing the Phoneme to the richTextBox2
richTextBox2.AppendText(string.Format(output));
}
e.Phoneme の結果をリッチ テキスト ボックスに返しますが、文字化けするだけです (下の図を参照)。エンコードの問題のように感じます。この問題の解決方法についてご意見をお聞かせください。
更新: コメントで述べたように、Jalkar は win7 で作業することに成功しました。Windows 7 でアプリケーションをテストしたところ、実際に音素のような文字列が表示されました。ただし、ASCII にデコードすると、ぎこちなく表現されます。(これまでのところ、ユニバーサル電話機セットに変換する方法を把握できていません). 第二に、Hans Passant が述べたように、スクリーンショットの jibberish の ASCII は American Phone セットへのインデックスです (彼のリンクを参照)。ただし、奇妙な点は、Win7 と Win8 の両方でまったく異なる結果が得られることです。
Win7 での結果の下のスクリーンショット: http://imgur.com/aTxf5OE
このスクリーンショットでは、Win8 での結果: imgur.com/crAR5HV
C# で Microsoft の IPA から UPS への使用方法を知っている人がいたら、ぜひ教えてください。