SpeechSynthesizer.PhonemeReachedイベントと制御文字
-
08-07-2019 - |
質問
単語を発音し、発音時に各音節を強調表示する小さなsilverlightウィジェットを作成しています。
この一環として、 SpeechSynthesizer.PhonemeReachedイベント。各音素の開始時間と終了時間を決定します(各音節の開始時間と終了時間を計算するステップとして)。
奇妙なことは、 PhonemeReachedEventArgs .Phonemeプロパティは、少なくとも(ただし、排他的ではない可能性がある)制御文字である場合があります U + 0004送信の終了、送信の終了ではない場所(たとえば、開始など)。
これが意味するはずのドキュメントが見つかりません、誰か知っていますか?
編集:明確にするために、Silverlightで音声合成を行っていないため(サポートされていないため)、サーバーでそれを行って、音節境界時間とIPA転写を返します音声応答のHTTPヘッダー内の単語の。シルバーライトの部分についてはまったく言及すべきではなかったでしょう。なぜなら、それは本当に関連性がなく、コンテキストを説明することをあまり考えなかったからです。おっと。 :)
解決
各音素の開始時間と終了時間を把握しようとしている場合(これは実際には別の質問です)... PhonemeReachedEventArgs.Durationプロパティを使用してみてください。開始時間は「フレーズの開始時間」になります。 +以前に発音されたすべての音素の累積期間。終了時間は「現在の音素の開始時間」になります。 +現在の音素の長さ。
「投稿済み」に答えるには質問、私はあなたがあなたの合成言語として英語を使用していると仮定しています。この場合、「文字」が実際に表示されているのは、アメリカ英語音素テーブルのインデックス値です。 中国語の音素でも同じことがわかります。ただし、日本語の音素にはユニコード表現があります。すべて「制御文字」の外側にある範囲。