参考文档:
- windows下使用Microsoft Speech SDK开发包做语音识别https://blog.csdn.net/marleylee/article/details/77116609
- C++语音识别接口快速入门(Microsoft Speech SDK)——文字转语音https://blog.csdn.net/qq_34369618/article/details/53386288
步骤:
- 安装开发包
SpeechSDK51.exe 、 msttss22L.exe、SpeechSDK51LangPack.exe
下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=10121
SpeechSDK51.exe解压后运行setup.exe
SpeechSDK51LangPack.exe解压后运行setup.exe
msttss22L.exe直接运行
- 环境配置
右键项目→属性→配置属性→VC++ 目录→库目录→添加“C:\Program Files (x86)\Microsoft Speech SDK 5.1\Lib\i386”
右键项目→属性→配置属性→C/C++→附加包含目录→添加“C:\Program Files (x86)\Microsoft Speech SDK 5.1\Include”
- 测试代码
#include "stdafx.h"
#include <iostream>
#include <string>
#include <sapi.h>//导入语音头文件
#pragma comment(lib,"sapi.lib")//导入语音头文件库
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();
}
int main()
{
std::wstring a = L"符号我错了";
LPCWSTR str = a.c_str();
MSSSpeak(str);
return 0;
}