Windows Speech SDK5.1的安装和使用(xp/win7)

原文地址::https://blog.csdn.net/moyebaobei1/article/details/82801522

相关文章

1、Microsoft Speech SDK开发包 使用----https://blog.csdn.net/weixin_33937499/article/details/86278026?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control

2、QT使用microsoft speech sdk进行语音识别----https://blog.csdn.net/yangshuanzhu/article/details/102960882?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control

3、windows下使用Microsoft Speech SDK开发包做语音识别----https://blog.csdn.net/marleylee/article/details/77116609?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-2&spm=1001.2101.3001.4242

4、MicroSoft Speech SDK V11 TTS 中文报错 Speak error '80004005'----https://blog.csdn.net/z971130192/article/details/99878595?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=1328592.11250.16147555698811405&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

5、Microsoft Speech SDK 5.1的安装与使用----https://download.csdn.net/download/u010515294/5728499?utm_medium=distribute.pc_relevant.none-task-download-BlogCommendFromMachineLearnPai2-2.control&dist_request_id=1328592.11250.16147555698811405&depth_1-utm_source=distribute.pc_relevant.none-task-download-BlogCommendFromMachineLearnPai2-2.control

6、delphi调用Microsoft Speech SDK语音的例子----https://download.csdn.net/download/panwujun/5142224?utm_medium=distribute.pc_relevant_t0.none-task-download-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=1328592.11250.16147555698811405&depth_1-utm_source=distribute.pc_relevant_t0.none-task-download-BlogCommendFromMachineLearnPai2-1.control

7、Qt下使用微软的TTS----https://www.pianshen.com/article/47981473113/

 

由于工作需要,需要文字转语音功能的支持。由于各种原因限制,所以选择了使用Windows平台自带的语音引擎。

首先使用场景是局域网,无法访问互联网。所以通过网络接口提供的服务就被排除了,比如百度的tts服务。

由于应用范围也很有限,规模小,所以付费的语音引擎也不考虑了。比如科大讯飞的语音引擎。

再者个人经验\阅历有限,目前不知道其他开源的语音引擎,所以,只能选择平台自带的语音引擎(非windows正版用户功能有阉割),还好,找到了修复工具,解决了这个问题,修复工具见上一篇文章,附带好多语音库可以下载使用,还提供了demo工具可以测试。

下面说一下使用流程。

安装SpeechSDK5.1

这个直接到微软官网下载https://www.microsoft.com/en-us/download/confirmation.aspx?id=27226,可以下载汉语的语音包,不过是用英语的语调读汉语,比较别扭。下载安装后,需要下载补丁工具。

下载修复工具和测试工具

http://blog.sina.com.cn/s/blog_88bdc35c0102vd0e.html --------------------- 本文来自 moyebaobei1 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/moyebaobei1/article/details/82789362?utm_source=copy

这是个测试工具,可以用来测试服务是否可用,以及语音库是佛安装成功。http://www.cppfans.com/cbknowledge/skills/media/ttsdemo.asp --------------------- 本文来自 moyebaobei1 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/moyebaobei1/article/details/82789362?utm_source=copy

语音库可以看到我安装了哪些语音,语音库都是符合一定标准的就可以识别。然后输入朗读内容,单击【朗读】就可以按照这种语音库的规律朗读文字。如果朗读成功,则说明语音库安装成功了。

Windows平台,是基于COM和DCOM组织起来的,所以实现上就是需要创建出对应的组件,然后调用接口上的方法。哦通过SDK调用TTS服务,需要设置默认的语音库。

设置系统语音服务(默认语音库)

控制面板 - 语音(32位)- 文字转语音

封装调用

然后对SDK调用做一下简单的封装。

#pragma once
#include<iostream>
#include <sapi.h> //导入语音头文件
#include <string>
#pragma comment(lib,"sapi.lib") //导入语音头文件库
 
using namespace std;
 
void  MSSSpeak(LPCTSTR speakContent)// speakContent为LPCTSTR型的字符串,调用此函数即可将文字转为语音
{
    ISpVoice *pVoice = NULL;
 
    //初始化COM接口
    if (FAILED(::CoInitialize(NULL)))
        MessageBox(NULL, (LPCWSTR)L"COM接口初始化失败!", (LPCWSTR)L"提示", MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2);
 
    //获取SpVoice接口
    HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void**)&pVoice);
    if (SUCCEEDED(hr))
    {
        pVoice->SetVolume((USHORT)100); //设置音量,范围是 0 -100
        pVoice->SetRate(0); //设置速度,范围是 -10 - 10
        hr = pVoice->Speak(speakContent, 0, NULL);
        pVoice->Release();
        pVoice = NULL;
    }
 
    //释放com资源
    ::CoUninitialize();
}
 
//string转换车wstring  
std::wstring  StringToWString(const std::string& s)
{
    std::wstring wszStr;
    int nLength = MultiByteToWideChar(CP_ACP, 0, s.c_str(), -1, NULL, NULL);
    wszStr.resize(nLength);
    LPWSTR lpwszStr = new wchar_t[nLength];
    MultiByteToWideChar(CP_ACP, 0, s.c_str(), -1, lpwszStr, nLength);
    wszStr = lpwszStr;
    delete[] lpwszStr;
    return wszStr;
}
 
void read(string temp){
    wstring a = StringToWString(temp);
    LPCWSTR str = a.c_str();
    /*不知道为什么Cstr不行*/
    MSSSpeak(str);
    cout << "朗读结束\n";
}
 
————————————————
版权声明:本文为CSDN博主「老朱之三十而立」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/moyebaobei1/article/details/82801522

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值