在下面介绍的程序中,用VC++6.0实现了Text-to-Speech的应用。
(1)创建一个工程
建立一个工程,Projects选项卡中选择MFC AppWizard (exe);下一步中选择Dialog based类型。
(2) 设置SAPI路径
应用TTS必须用到头文件sapi.h和sapi.lib,为了能编译通过必须设置SAPI路径:
a. 在选中tools菜单中的option子项。
b. 选中Directories选项卡。
c. 选中Show directries for列表框中选中include files项,并在Directories中添加sapi头文件路径:例如:"C:/Program Files/Microsoft Speech SDK 5.1/Include".
d. 选中Show directries for列表框中选中Library files项,并在Directories中添加sapi LIB文件路径:例
(3) 设计程序界面
添加如图所示的编辑框和命令按钮。
图2 程序界面
(4) 添加代码
双击speak按钮,添加朗读代码:
void CExe1Dlg::Onspeak()
{
UpdateData();
// 2) SAPI voice
ISpVoice * pVoice = NULL;
// 1)初始化COM
if (FAILED(CoInitialize(NULL)))
{
AfxMessageBox("Error to intiliaze COM");
return;
}
// 2)初始化SAPI
HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL,
CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
if( SUCCEEDED( hr ) )
{
// 3)朗读编辑框中的文字
hr = pVoice->Speak(m_mytext.AllocSysString(), 0, NULL);
//完成发声后可以将声音对象释放
pVoice->Release();
pVoice = NULL;
}
// 1)与CoInitialize(NULL)成对使用,释放COM
CoUninitialize();
}
注:m_mytext是编辑框的变量名。