2

単語を発音し、発音されたときに各音節を強調表示する小さな Silverlight ウィジェットを作成しています。

この一環として、SpeechSynthesizer.PhonemeReached イベントを使用して、各音素の開始時刻と終了時刻を決定しています (各音節の開始時刻と終了時刻を把握するための手順として)。

奇妙なことに、PhonemeReachedEventArgs.Phoneme プロパティは、少なくとも (ただし、排他的ではない可能性があります) U+0004 END OF TRANSMISSIONという制御文字になることがあります。始まり)。

これが何を意味するのかについてのドキュメントが見つかりません。誰か知っていますか?

編集:明確にするために、私はSilverlightで音声合成を行っていません(サポートされていないため)、サーバーで行っており、音声のHTTPヘッダーで単語の音節境界時間とIPA転写を返しています応答。おそらく、Silverlight の部分についてはまったく言及すべきではありませんでした。それは実際には関連性がないためです。コンテキストを説明することについてあまり考えていませんでした。おっと。:)

4

1 に答える 1

1

各音素の開始時間と終了時間を把握しようとしている場合 (これは実際には別の問題です)... PhonemeReachedEventArgs.Duration プロパティを使用してみてください。開始時間は、「フレーズの開始時間」 + 以前に発音されたすべての音素の累積持続時間になります。終了時間は、「現在の音素の開始時間」+現在の音素の継続時間になります。

あなたの「投稿された」質問に答えるために、私はあなたが合成言語として英語を使用していると仮定しています. この場合、表示されている「文字」は、実際にはAmerican English Phoneme Tableのインデックス値である可能性があります。中国語の音素でも同じことが見られる場合がありますが、日本語の音素には Unicode 表現があり、すべて「制御文字」の範囲外です。

于 2008-11-18T01:27:42.763 に答える