文档库 最新最全的文档下载
当前位置:文档库 › 带有语音提示功能的界面设计与开发

带有语音提示功能的界面设计与开发

带有语音提示功能的界面设计与开发
带有语音提示功能的界面设计与开发

人机交互基础教程

实验报告

实验题目:

带有语音提示功能的界面设计与开发

专业计算机科学与技术

学生姓名

班级学号

教师

指导单位计算机软件学院日期

一、实验目的

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 //引入头文件,以调用SDK中的API

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你好 , SPF_IS_XML, NULL);//也可直接写成xml标签的格式

pVoice->Speak(LThis sounds normal but the pitch drops half way through, SPF_IS_XML, NULL ); //声调控制,-代表低音,+代表高音 pVoice->Release();

pVoice = NULL;

}

CoUninitialize();

Speech sdk还有很多功能,详见安装目录下的帮助文档。

(2)实验步骤

1)熟悉Text-To-Speech(TTS)基本函数的调用方法,编程实现最简单的语音合成原型系统。

2)体会交互过程和实现方法。

3)设计一个完整的人机交互界面,在适当的环节嵌入语音合成

相关文档