参照に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 件のコメント:
コメントを投稿