Visual studio 2019使用Microsoft Speech SDK 5.1语音识别

目录

下载安装Speech SDK

配置visual studio 2019项目环境

测试能否运行

解决运行报错

修改Speech SDK文件的保存问题


下载安装Speech SDK

由于官网相关包已经无法下载,大家可自己寻找TTS.rar和TTSlang.rar两个包的资源

安装好Speech SDK后,语音控制程序将被添加到 “控制面板”->“语音”选项中,

利用下图对话框可以设置语音识别和文字-语音转换的各项属性,包括语言、语调、语速和输入设备等。

配置visual studio 2019项目环境

  • 先建立一个空项目project1,下添加源文件test.cpp
  • 右键点击上图中“Project1”

  •  

    点击“属性”-VC++目录

     

     

    1

     

    1.在“包含目录”后地址框-点击下拉箭头-点击编辑,打开图片2所示“包含目录”-点击图2所圈“新行”图标-下方框中出现一行-点击行后“…”图标-选择\Microsoft Speech SDK 5.1\Include-添加完成

     

     

    2

    2.在“库目录”,同理操作……选择\Microsoft Speech SDK 5.1\Lib\i386-添加完成

  • 点击“应用”-“确定”

  • 配置完成

测试能否运行

使用测试代码

#include <sphelper.h>//语音头文件
#include <iostream>//C++头文件,用来提示错误信息


int main()
{
    ::CoInitialize(NULL);//初始化语音环境
    ISpVoice* pSpVoice = NULL;//初始化语音变量
    if (FAILED(CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_INPROC_SERVER, IID_ISpVoice, (void**)&pSpVoice)))

        //给语音变量创建环境,相当于创建语音变量,FAILED是个宏定义,就是来判断CoCreateInstance这个函数又没有成功创建语音变量,下面是不成功的提示信息。

    {
        std::cout << "Failed to create instance of ISpVoice!" << std::endl;
        return -1;
    }


    pSpVoice->Speak(L"Hello World!", SPF_DEFAULT, NULL);//执行语音变量的Speek函数,这个函数用来读文字。

    pSpVoice->Release(); //释放语音变量
    ::CoUninitialize();//释放语音环境


    return 0;
}

解决运行报错

由于使用Speech SDK安装包版本老,在Visual studio 2019上使用时会出现很多报错,这里记录我运行时解决的报错部分:

  • 部分sphelper.h编译错误

这里附上该部分报错解决方案链接(由于转载版本较多,该链接可能不是初始作者发表的博客)https://blog.csdn.net/wangyangtao/article/details/5933734

  • 其他部分sphelper.h编译错误解决,都是相似的解决方法,故只按类别提供示例

  1. SPDBG_FUNC函数报错:e.g.: SPDBG_FUNC("SpGetTokenFromId");  改为  SPDBG_FUNC(PCHAR("SpGetTokenFromId"));

  2. _tcscpy函数报错:修改为_tcscpy_s函数,在原函数的2个参数之间,增加1个参数:wcslen(第一个参数)

  3. wcscpy函数报错:e.g.: wcscpy(szLangCondition, L"Language="); 改为 wcscpy_s(szLangCondition,wcslen(szLangCondition), L"Language=");

  4. wcscat函数报错:e.g.: wcscat(szLangCondition, szLang);  改为 wcscat_s(szLangCondition, wcslen(szLangCondition), szLang);

  5. GetVersionExW:被声明为已否决:解决办法:项目 > 属性 > C/C++ > SDL 检查 > 关掉

  •  sapi.h中报错:wchar_t*转BSTR

例如:BSTR CategoryID = L"" > 修改为:BSTR CategoryID = ::SysAllocString(L"")

可参考博客:

https://blog.csdn.net/yangdong001/article/details/39077167?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161250057516780264047343%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=161250057516780264047343&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v1~rank_blog_v1-1-39077167.pc_v1_rank_blog_v1&utm_term=char&spm=1018.2226.3001.4450

  • 若还有其他报错,欢迎大家在评论区补充

修改Speech SDK文件的保存问题

在修改sphelper.h和sapi.h文件后,我遇到了无法保存的问题,即visual studio没有修改该文件的权限,造成“对路径访问被拒绝”

解决方法:

修改include文件属性

右键include文件夹-点击属性-点击“安全”

原本“修改”和“写入”的“允许”权限是没有的,此处点击“编辑”按钮-选择“Users”-勾选“修改”和“写入”的允许权限-应用-确定-可以修改

预祝大家消灭所有报错,取得成功!

 

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: Microsoft Speech SDK11语音识别例子是一种基于微软语音技术的软件开发工具包,它提供了一系列语音识别示例,为开发者在应用程序中快速实现语音识别功能提供了易用、高效的开发方案。 通过使用Microsoft Speech SDK11语音识别例子,开发者可以通过API调用实现语音输入文字的功能,例如,在Microsoft Visual Studio中创建Windows应用程序,通过调用语音识别API实现语音命令控制功能。开发者可以定制识别的语法,指定具体的命令,来实现特定的应用程序功能。 另外,Microsoft Speech SDK11语音识别例子还提供了多语言、多种声音的语音识别支持,并且支持实时录制、识别、翻译和文本转换等功能。它还支持对不同声音和背景噪声的识别,并支持自定义语音识别模型,以提高识别准确率。 此外,Microsoft Speech SDK11语音识别例子还可以支持与其他技术集成,如机器翻译、自然语言处理等,以实现更为复杂的应用程序。 总的来说,Microsoft Speech SDK11语音识别例子提供了快速、便捷实现语音识别功能的解决方案,有助于开发者在应用程序中加入语音交互的功能,提高应用程序的用户体验。 ### 回答2: Microsoft Speech SDK11是一种先进的语音技术,它能够将语音转化为文本,帮助人们更方便地进行电脑操作。 举个例子,如果你正在开发一个语音控制家电设备的应用,那么使用Microsoft Speech SDK11就能够实现语音识别并控制设备的功能。例如,你可以通过对SDK的调用来实现“打开电视”、“调整音量”等听命于口令的指令,从而使家庭控制更加智能便捷。 此外,Microsoft Speech SDK11还可以应用于其他方面,比如语音翻译、文字转语音、语音命令控制等等。例如,你可以通过连通SDK的API接口,实现对应用程序的语音交互和操作。随着科技的发展,像Microsoft Speech SDK11这样的语音技术将会更加普遍地存在于我们和我们的设备之间,在互联网、智能家居、医疗健康等方面发挥更大的作用和贡献。 ### 回答3: Microsoft Speech SDK11是一款由微软公司开发的语音识别软件,其具有高效精准识别的特点,并且支持多个语言的识别功能。 这款软件可以应用于许多领域,例如语音助手、智能家居、语音控制等。下面我们以语音助手为例来简单介绍一下Microsoft Speech SDK11的使用。 语音助手是一款具有语音识别和语音合成功能的应用程序,用户可以通过语音命令让助手完成一些操作。首先,需要添加SDK库文件到我们的项目中,以便使用SDK提供的功能。 接下来,我们需要设置语音输入设备和输出设备,我们可以使用SpeechRecognitionEngine类和SpeechSynthesizer类来完成设备的设置。通过SpeechRecognitionEngine类,我们可以实现对语音输入的监听和处理,而通过SpeechSynthesizer类,就可以实现语音合成的功能。 完成设备设置后,我们就可以开始实现语音识别和语音合成的功能了。比如,当用户说出“打开微信”,语音助手就可以通过语音识别识别用户的指令,并调用微信应用程序打开微信;而当用户说出“今天天气怎么样”,语音助手就可以通过调用天气预报API获取天气信息,并通过语音合成的方式将结果读出。 总的来说,Microsoft Speech SDK11是一款高效精准的语音识别软件,可以应用于许多领域。通过各种实际的操作,我们可以更好地了解SDK的功能和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值