基于MSTTS的网络通信应用开发
武汉大学电信学院(430072) 杨宗长
2003/08/04
VOIP(Voice over IP,俗称IP电话)是建立在IP技术上的分组化、数字化传输技术,其基本原理是:通过语音压缩算法对话音进行压缩编码处理,然后把这些语音数据按IP等相关协议进行打包,经过IP网络把数据包传输到目的地,再把这些语音数据包串起来,经过解码解压处理后,恢复成原来的语音信号,从而达到由IP网络传送话音的目的。虽然经过几年的快速发展.然而由于种种原因,VOIP离成熟的应用还有一段不小的距离;实际上,人们在网络通信的内容还是文本为主,正如:IOCQ等.
一、MSTTS(Microsoft Text TO Speech,文本朗读)网络通信设计
MSTTS 是基于COM(Component Object Model,组件对象模型) 规范的文本朗读技术;简单地说,它能将文本直接朗读出来.因此应用MSTTS技术 ,我们可以开发出具有语音功能的网络通信,
本文的基本设计思路: 通信方,将通话文本信息通过网络传输到对方;对方接收到信息后,显示信息并同时通过MSTTS 播放出来。

二、MSTTS 应用程序开发.
MSTTS基于COM 规范的文本朗读技术;COM是基于二进制标准一种软件组件通信技术,它主要的目标是为了管理日益复杂的应用程序和实现代码重用.在使用COM组件对象时,一般地使用两种方式:
A.通过CoCreateInstance() 或CoCreateInstanceEx()实例化对象;然后调用Addref()引用 计数,使用完后,再调用Release()释放对象
B..另外一种更简便的方法就是使用智能指针(smart pointer)。
所有的智能指针都是基于_com_ptr_t 的模块类,_ com_ptr_t 它封装IUnknow QureyInterface ,Addref() 和 Release() 方法;它具有自动计数的机制:即在构造对象时,自动计数;在析构对象时,自动调用Release().通过 #import 指令可以入服务组件到应用程序中,并生成智能指针定义.
1.MTTS 组件的应用编程
导入MSTTS 组件
#import "C:\Winnt\Speech\VText.DLL" no_namespace // MSTTS 的安装目录
CoInitialize(NULL); //COM 初始化
ITextToSpeechPtr pSkPtr(_uuidof(TextToSpeech)); /MSTTS智能指针
ITextToSpeech *pTxtSph=pSkPtr.GetInterfacePtr();;
pTxtSph->AddRef();
1>.朗读
char buf[]=”Hello, the word!”; //文本信息
pTxtSph->Speak(buf); //朗读
2>.暂停
pTextSph->Pause();
3>.继续
pTxtSph->Resume();
4>.停止
pTxtSph->Stop();
2.网络通信应用编程
<1> 套接字
它是网络的基本构件,是网络应用程序接口。它具有可以被命名和寻址的通信端点,使用中的每一个套接字都有其类型和一个与之相连听进程。WINDOWS SOCKET 版本支持两种套接字:流套接字(SOCK_STREAM)和数据报套接字(SOCK_DGRAM) .
<2>、WINDOWS SOCKETS 实现
WINDOWS SOCKETS 实现是指实现了WINDOWS SOCKETS规范所描述的全部功能的一套软件。在VC++6.0 开发平台中它提供了专门的阻塞形式的CSocket 类() 和异步形式的CAsyncSocket 类,封装实现了Windows Sockets 功能..
<3>网络数据报通信的编程实现
A. 创建建套接字
CasyncSocket m_Sock;
M_Sock.Create(6000,SOCK_DGRAM);// 数据报套接字,端口6000
B. 发送文本信息
char textbuf[]=”Hello,good day!”
m_Sock.SendTo(textbuf,//发送的数据
sizeof(buf),//数据的大小
,6000,//对方的端口
“127.0.0.1”,//对方的主机名或IP 地址
0);
C. 接收文本信息
char revbuf[50];//接收缓存区
CString strHost;//保存发送方IP地址的字符串
unsigned int port;//发送方端口
int len=m_Sock.ReceiveFrom(revbuf,50,strHost,port); //接收信息
pTxtSph->Speak(revbuf); //朗读接收到的文本信息
3.程序示例
<1>用户界面(如下图)

<2>通信演示(单机的自发自收)

计算机世界网(www.ccw.com.cn)
相关链接: