一、语音接口的使用:
第一步,安装MSSpeech SDK。
MSSpeech SDK可从网络课堂安装,也可在微软公司直接下载,安装完毕后具有了语音处理能力。
安装过程全选默认即可。
安装完毕后,在开始菜单中会增加MS Speech SDK 5.1,选择其中的tools->TTSAPP可用来测试语音安装是否正常
第二步,增加中文处理。
安装中文语言包(可从网络课堂安装,也可在微软公司直接下载)。安装选项可仅选择安装中文语音。安装完毕后可处理中文。
在安装完毕后可从TTSAPP中voice下拉框中找到中文简体。
若希望得到高质量的语音,或希望可处理繁体中文,可选择安装高质量库(网络课堂里有)也可在网上搜索相关语音库。
第三步。在VC6.0中添加相关路径:
进入VC,选择Tools->Options(VC中文版为工具->选项)得到如下对话框。寻找Directories(中文版为路径),在右边选择include路径。双击下方路径表中空行,可输入speechSDK 的include路径。点击右边的 按钮可帮助选择路径。如图。
类似地再添加Library路径:
注意要选择lib目录下的386目录。
第四步 编写程序测试
下例中提供了三个函数。InitVoice初始化朗读,ReleaseVoice结束朗读,必须成对使用。在main函数执行时可多次使用Speak.。两个全局变量是语音需要,勿删除。
二、音乐输出
#include <atlbase.h>
#include <sapi.h>
#include <sphelper.h>CComPtr<ISpVoice> pVoice;
HRESULT hr;
int InitVoice()
{CComPtr<IEnumSpObjectTokens> pEnum;CComPtr<ISpObjectToken> pVoiceToken;int i;::CoInitialize(NULL);if(FAILED(hr=SpEnumTokens(SPCAT_VOICES,L"Language=804",NULL,&pEnum)))return 0;for(i=0;i<1;i++) //这里可以根据已安装的语音库,多循环几次以变更语音{pVoiceToken.Release();pEnum->Next(1, &pVoiceToken, NULL);}if(FAILED(hr=pVoice.CoCreateInstance(CLSID_SpVoice)))return 0;if(FAILED(hr = pVoice->SetVoice(pVoiceToken)))return 0;return 1;
}
void ReleaseVoice()
{pVoice.Release();CoUninitialize();
}
void Speak(char *Txt)
{CSpDynamicString s(Txt);pVoice->Speak(s,0,0);
}
void main(int argc, char* argv[])
{if(!InitVoice())return ;Speak("123中文");ReleaseVoice();
}
使用C语言调用多媒体库来输出音乐有多种方法,这里介绍最简单的WAV波形文件播放.直接使用Win32库函数PlaySound即可播放音乐。
首先向工程中添加库函数的头文件:
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")
//其次在需要播放的时候,添加PlaySound函数调用:
LPCTSTR path = _T("D:\\mp3\\030 Kaoma_-_Lambada.wav");
PlaySound(path, NULL, SND_FILENAME | SND_ASYNC);
即可播放音乐,当需要停止音乐时,可以用空路径再次调用PlaySound即可.
PlaySound(NULL,NULL, SND_FILENAME | SND_ASYNC);