人机交互基础教程
实验报告
实验题目:
带有语音提示功能的界面设计与开发
专业计算机科学与技术
学生姓名
班级学号
教师
指导单位计算机软件学院日期
一、实验目的
1)通过开发一个简单的具有语音提示功能的人机交互系统,使同学了解多通道交互系统的优点和交互模型的构建方法。
2)理解语音合成技术的基本原理。
3)了解和掌握Microsoft speech sdk的使用方法。
二、实验器材
1.配有语音卡、耳麦、扬声器等多媒体设备的PC机
2. Windows操作系统
3. MS Speech SDK
三、实验说明
1.MS Speech SDK简介:
为解决语音引擎之间不兼容的问题,微软推出了一套语音应用程序开发的软件开发资源包Speech SDK,方便开发人员使用资源
包开发语音识别和语音合成的应用程序,隔离了应用软件与语音引擎之间的联系,使得语音引擎的更换不会影响到应用程序的设计。
2.Speech SDK基本工作原理
作为应用程序开发者,只需调用speech sdk中的函数,即可实现语音合成与语音识别功能。
3.下载安装
从Microsoft官方下载站点搜索Speech SDK 5.1并下载安装,中文语言包可选择安装。安装好Speech SDK后,语音控制程序将被添加到“控制面板”->“语音”选项中。利用下图对话框可以设置语音识别和文字-语音转换的各项属性,包括语言、语调、语速和输入设备等。
三、实验内容与步骤
(1)实验内容
在visual c++或.net环境下,用微软的Speech SDK实现一个具有语音提示功能的界面,要求设计交互模型,并根据实际应用情况来确定是否要用语音。
调用Speech sdk的方法简述如下:
首先在visual c++主窗口的菜单栏中选择“工程”-> “设置”。在弹出对话框中选择“c/c++”选项卡,在分类中选择“preprocessor”,在附加包含路径中,输入speech sdk安装路径下的include目录,如:
C:\Program Files\Microsoft Speech SDK 5.1\Include
然后选择“link”选项卡,在分类中选择“Input”,在附加库路径中,输入speech sdk安装路径下的lib目录,如:
C:\Program Files\Microsoft Speech SDK 5.1\Lib\i386
程序中的关键代码如下:
#include
#include
UpdateData();
ISpVoice * pVoice = NULL;
if (FAILED(CoInitialize(NULL)))
{
AfxMessageBox(Error to intiliaze COM);
return;
}//初始化COM
HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
if( SUCCEEDED( hr ) )
{
hr = pVoice->SetVolume(80);//音量控制0~100
hr = pVoice->SetRate(0);//语速控制-5~5
hr = pVoice->Speak(L“hello world”, SPF_DEFAULT, NULL);//语音的内容ISpObjectToken * spToken = NULL;
if (SUCCEEDED(SpFindBestToken(SPCAT_VOICES, Llanguage=804, NULL, &SpToken))) { pVoice->SetVoice(SpToken);//切换至中文语音模式,language=804代表中文,409代表英文
pVoice->Speak(L世界你好, SPF_DEFAULT, NULL);
SpToken->Release();
}
if (SUCCEEDED(SpFindBestToken(SPCAT_VOICES, Llanguage=409, LName=Microsoft Mike, &SpToken)))//说话人控制
{
pVoice->SetVoice(SpToken);
pVoice->Speak(LThis is Mike speaking, SPF_DEFAULT, NULL);
SpToken->Release();
}
pVoice->Speak(L
pVoice->Speak(LThis sounds normal
pVoice = NULL;
}
CoUninitialize();
Speech sdk还有很多功能,详见安装目录下的帮助文档。
(2)实验步骤
1)熟悉Text-To-Speech(TTS)基本函数的调用方法,编程实现最简单的语音合成原型系统。
2)体会交互过程和实现方法。
3)设计一个完整的人机交互界面,在适当的环节嵌入语音合成