System.Speech.
》》System.Speech.Synthesis; 语音播报
》》System.Speech.Recognition 语音辨认- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Speech.Recognition;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using System.Speech;
- using System.Speech.Synthesis;
- namespace WindowsFormsApp1
- {
- public partial class Form2 : Form
- {
- SpeechRecognitionEngine recognitionEngine;
- public Form2()
- {
- recognitionEngine = new SpeechRecognitionEngine();
- Choices choices = new Choices();
- choices.Add(new string[] { "开始", "Start", "Go", "停止", "Stop", "Over" });
- GrammarBuilder gb = new GrammarBuilder(choices);
- Grammar grm = new Grammar(gb);
- recognitionEngine.LoadGrammarAsync(grm);
- //音频输入
- recognitionEngine.SetInputToDefaultAudioDevice();
- recognitionEngine.SpeechRecognized += RecognitionEngine_SpeechRecognized;
- InitializeComponent();
- }
- private void RecognitionEngine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
- {
- string info = e.Result.Text;
- switch (info)
- {
- case "开始":
- case "Start":
- case "Go":
- richTextBox1.Text += info;
- break;
- case "停止":
- case "Stop":
- case "Over":
- richTextBox1.Text += info;
- break;
- }
- }
- private void Form2_Load(object sender, EventArgs e)
- {
- this.btn_StopSpeek.Enabled = false;
- }
- private void btn_startSpeek_Click(object sender, EventArgs e)
- {
- this.btn_StopSpeek.Enabled = true;
- recognitionEngine.RecognizeAsync(RecognizeMode.Multiple);
- this.btn_startSpeek.Enabled = false;
- }
- private void btn_StopSpeek_Click(object sender, EventArgs e)
- {
- this.btn_StopSpeek.Enabled = false;
- recognitionEngine.RecognizeAsyncStop();
- this.btn_startSpeek.Enabled = true;
- }
- private void button1_Click(object sender, EventArgs e)
- {
- SpeechSynthesizer sp = new SpeechSynthesizer();
- PromptBuilder pb = new PromptBuilder();
- pb.AppendText("123");
- sp.Speak(pb);
- }
- }
- }
复制代码 语言播报
- SpeechSynthesizer sp = new SpeechSynthesizer();
- sp.Rate = 1;//语速 -10 到 10 之间
- sp.Volume = 50;//音量 (0 到 100)
- PromptBuilder pb = new PromptBuilder();
- pb.AppendText("123");
- sp.Speak(pb);
复制代码 获取语言包、异步播报、停息、克制、继承语言播报、生存音频
》》异步播报,就是不壅闭别的操纵- SpeechSynthesizer sp = new SpeechSynthesizer();
- sp.Rate = 1;//语速 -10 到 10 之间
- sp.Volume = 50;//音量 (0 到 100)
- PromptBuilder pb = new PromptBuilder();
- pb.AppendText("1234564878564135415648145");
- //同步播报
- //sp.Speak(pb);
- //异步播报
- sp.SpeakAsync(pb);
复制代码 》》获取语言包- SpeechSynthesizer sp = new SpeechSynthesizer();
- foreach (var item in sp.GetInstalledVoices())
- {
- this.comboBox1.Items.Add(item.VoiceInfo.Name);
- }
复制代码 》》 异步播报 停息、继承- if (sp.State == SynthesizerState.Speaking)
- {
- // 正在播报 暂停
- sp.Pause();
- }
- else if (sp.State == SynthesizerState.Paused)
- {
- // 已经 暂停,继续播放
- sp.Resume();
- }
复制代码 》》克制- if (sp.State == SynthesizerState.Speaking)
- {
- //取消所有排队、异步、语音合成操作。
- sp.SpeakAsyncCancelAll();
- }
复制代码 》》生存音频- //使用using才能在结束后自动保存语音文件
- using (SpeechSynthesizer sp = new SpeechSynthesizer())
- {
- string path = @"D:\\zenvideo";
- sp.SetOutputToWaveFile(path + "1.wav");
- //这句不会播报的,会把声音生成到1.wav
- sp.Speak("13213213213213");
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |