Win7下 tts开发
VC6.0
#include <sphelper.h>
#include <sapi.h>
#pragma comment(lib,“ole32.lib”) //CoInitialize CoCreateInstance需要调用ole32.dll
#pragma comment(lib,“sapi.lib”) //sapi.lib在SDK的lib目录,必需正确配置
void CDlgTTS::OnOK()
{
// TODO: Add extra validation here
::CoInitialize(NULL);//初始化
ISpVoice * pSpVoice = NULL;//初始化
if (FAILED(CoCreateInstance(CLSID_SpVoice, NULL,CLSCTX_INPROC_SERVER, IID_ISpVoice, (void **)&pSpVoice)))//给语音变量创建环境,
{
//失败的提示信息
AfxMessageBox("语音初始化失败!\n");
return ;
}
pSpVoice->SetVolume(100);
IEnumSpObjectTokens *pSpEnumTokens = NULL;
if (SUCCEEDED(SpEnumTokens(SPCAT_VOICES, NULL, NULL, &pSpEnumTokens)))
{
ISpObjectToken *pSpToken = NULL;
while (SUCCEEDED(pSpEnumTokens->Next(1, &pSpToken, NULL)) && pSpToken != NULL)
{
LPWSTR pId = new WCHAR[32];
pSpToken->GetId(&pId);
int nLen = WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)pId, -1, NULL, 0, NULL, NULL);
char *s = new char[nLen + 1];
WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)pId, -1, s, nLen, NULL, NULL);
if (0 == strcmp(s, ("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\Tokens\\MS-Lili-2052-20-DSK")))//HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\MS-Anna-1033-20-DSK
//if (0 == strcmp(s, ("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\Tokens\\MS-Anna-1033-20-DSK")))//HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\MS-Anna-1033-20-DSK
{
pSpVoice->SetVoice(pSpToken);
pSpToken->Release();
delete[] s;
break;
}
delete[] s;
pSpToken->Release();
}
pSpEnumTokens->Release();
}
else
{
retrun;
}
pSpVoice->SetRate(-1);
pSpVoice->Speak(L"Hello World!",SPF_DEFAULT,NULL);//执行语音变量的Speek函数,这个函数用来读文字,并发声。
pSpVoice->Speak(L"大家好,我是机器人!",SPF_DEFAULT,NULL);
pSpVoice->Speak(L"京,1 2 Z 8 9 4 3 已经 入位!",SPF_DEFAULT,NULL);
pSpVoice->Speak(L"设备 已 启动",SPF_DEFAULT,NULL);
pSpVoice->Speak(L"启请不要 移动设备 ,!",SPF_DEFAULT,NULL);
pSpVoice->Release(); //释放语音变量
::CoUninitialize();//释放语音环境
}
环境搭建:
1.下载开发环境 所需包文件
地址:https://download.csdn.net/download/lwbailw/39483899
2.搭建说明(会的可以忽略)
1)先安装SDK(记住路径)
2)再装中文语言包
3)打开VC->Tool->Option…->Directories进行设置
(1)在include files 里添加 路径1里的include文件夹
(2)在library files 里添加 路径1里的lib\i386文件夹