参照にSystem.Speechを加える必要がある。
using System; using System.Speech.Synthesis; using System.Windows.Forms; namespace Speech { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { using (SpeechSynthesizer syn = new SpeechSynthesizer()) { syn.SelectVoice("Microsoft Zira Desktop"); syn.Speak(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); } } } }
今回はSelectVoiceでZira(en-US)を指定した。デフォルトはHanako(ja-JP)だが、日本語だとイントネーションが不思議な感じになる。やはり英語のほうが自然。
それとSpeakで音声を出力している間はスレッドをブロックしてしまうので、実際に使うなら何らかの工夫が必要だと思う。
読み上げる速度はOSの設定から「音声認識のプロパティ」ダイアログ内「音声合成」タブにある「音声の速度」で設定できる。最速だと何を言ってるかわからないし、最遅でも何を言ってるかわからない。あんまり速度の調整はやらないほうが良さそう。
0 件のコメント:
コメントを投稿