C#语音转文本

这篇博客介绍了如何使用C#调用Windows系统内置的语言模块,创建语音识别对象,设置监听词组,编写响应函数,并启动监听。通过示例代码详细展示了从创建语法到识别响应的全过程,使得麦克风能对特定词汇如'你好'和'谢谢'做出相应打印输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.还记得小娜的声音么

2.参考代码

2.1创建语言识别对象

2.2创建选择对象、添加要响应的词组

2.3加载选择、创建语法

2.4加载语法

2.5编写响应函数

2.6把响应函数加入事件

2.7启动监听

2.8总参考


1.还记得小娜的声音么

那是Winodws系统内置的语言模块

可以直接用C#调用

2.参考代码

命名空间using System.Speech.Recognition;

2.1创建语言识别对象

static SpeechRecognitionEngine speechRecognition = new SpeechRecognitionEngine();//创建语言识别对象

2.2创建选择对象、添加要响应的词组

Choices choices = new Choices();//创建选择
choices.Add(new string[] { "你好", "谢谢" });//添加要监听、识别的词组

2.3加载选择、创建语法

GrammarBuilder gb = new GrammarBuilder();//语法构建者
gb.Append(choices);//加载选择
Grammar gr = new Grammar(gb);//创建语法

2.4加载语法

speechRecognition.LoadGrammarAsync(gr);
            speechRecognition.SetInputToDefaultAudioDevice();

2.5编写响应函数

public static void speechRecognition_response(object sender, SpeechRecognizedEventArgs e)
{
    //识别到语法里的词组、则进入函数
    switch (e.Result.Text)//判断识别到的词组是哪个
    {
        case "你好":
            Console.WriteLine("你好");
            break;
        case "谢谢":
            Console.WriteLine("谢谢");
            break;
    }

}

2.6把响应函数加入事件

speechRecognition.SpeechRecognized += speechRecognition_response;

2.7启动监听

speechRecognition.RecognizeAsync(RecognizeMode.Multiple);

2.8总参考

static SpeechRecognitionEngine speechRecognition = new SpeechRecognitionEngine();//创建语言识别对象
static void Main(string[] args)
{
    
    Choices choices = new Choices();//创建选择
    choices.Add(new string[] { "你好", "谢谢" });//添加要监听、识别的词组
    GrammarBuilder gb = new GrammarBuilder();//语法构建
    gb.Append(choices);//加载选择
    Grammar gr = new Grammar(gb);//创建语法
    speechRecognition.LoadGrammarAsync(gr);
    speechRecognition.SetInputToDefaultAudioDevice();
    speechRecognition.SpeechRecognized += speechRecognition_response;
    speechRecognition.RecognizeAsync(RecognizeMode.Multiple);//启动
    Console.ReadLine();
}
public static void speechRecognition_response(object sender, SpeechRecognizedEventArgs e)
{
    //识别到语法里的词组、则进入函数
    switch (e.Result.Text)//判断识别到的词组是哪个
    {
        case "你好":
            Console.WriteLine("你好");
            break;
        case "谢谢":
            Console.WriteLine("谢谢");
            break;
    }

}

这样麦克风听见你好、就会打印你好、听见谢谢、就会打印谢谢

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术小零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值