微软语音开发包的丁点使用
来源:互联网 发布:元数据系统作用 编辑:程序博客网 时间:2024/05/18 01:05
首先说明,微软语音包(speech sdk 5.1)是很强大的,我对里面的功能就用过丁点。在最近使用的时候发现已经有5.3了,而昨晚意外的发现lingoes以及金山等词典工具都用到了它里面的TTS部分。
首先是必须得安装SPEECH SDK 5.1 以及其附加的语音包的(日语和中文,英文在SDK包里有了)。安装完后最好能初始化下,设置下配置文件。就是简单的录制你的声音。
然后在自己的工程里增加对库和头文件的引用。
/** 包含语音头文件 */
#include "sapi.h"
#include "sphelper.h"
#pragma comment(lib,"sapi.lib");
这是我在自己工程的stdafx.h头文件里写入的引用。仅供参考。
然后就只要用到两个函数了。
/**语音开发相关方法与成员*/
void RecoEvent();
void InitSR(HWND);
InistSR是用来初始化语音设备的。不过记得要在项目目录下有个CmdCtrl.xml文件存储命令。
具体代码如下:
然后就是RecoEvent函数了,用来监听语音消息的。里面有对应的接受到某个命令就该执行动作的地方。
我在里面放了个“前进”的命令。。。可以参考。
2个函数如果都嵌入好了,那就只剩激活语音了。激活了就OK了。
::CoInitializeEx(NULL,COINIT_APARTMENTTHREADED);
this->InitSR(this->m_Window.m_hWnd);
很简单的2句话,本来上面的初始化COM组件的我没写,这个地方让我捣鼓了2小时才意识到。基础功不扎实,罪过罪过。
另外在这里面会用到的数据成员是:
CComPtr<ISpRecoContext> m_cpRecoCtxt;
CComPtr<ISpRecoGrammar> m_cpDictationGrammar;
CComPtr<ISpRecoGrammar> m_cpCmdGrammar;
CComPtr<ISpRecognizer> cpRecoEngine;
BOOL b_Cmd_Grammar;
宏变量是:
#define GID_DICTATION 0 // Dictation grammar has grammar ID 0
#define GID_CMD_GR 33333
#define WM_RECOEVENT WM_USER+1
总共重新弄出语音来耗费了我一个周日。很笨吧我,呵呵。不过语音控制还是很好玩的。现在我的demo里有鼠标、键盘、摇杆以及语音控制了。可谓一个不错的IO交互了。呵呵~
希望对你有帮助。有问题欢迎探讨了。
- 微软语音开发包的丁点使用
- 使用微软Speech SDK 5.1(SAPI 5.1)语音开发包介绍
- 调用微软的语音合成库开发语音程序
- 个人对语音开发的丁点感觉
- 使用文本语音开发包实现语音朗读功能
- MS 语音开发包使用介绍
- MS 语音开发包使用介绍
- Ajax微软开发包使用步骤
- 使用微软的语音识别引擎Microsoft Speech API进行语音控制
- 使用文本语音开发包实现语音朗读功能(VB方法)
- VC++基于微软语音引擎开发语音识别总结
- VC++基于微软语音引擎开发语音识别总结
- VC++基于微软语音引擎开发语音识别总结
- VC++基于微软语音引擎开发语音识别总结
- VC++基于微软语音引擎开发语音识别总结
- VC++基于微软语音引擎开发语音识别总结
- VC++基于微软语音引擎开发语音识别总结
- iOS 【语音合成的集成和使用几点建议】
- oracle中的存储过程案例
- [转]C++异常处理 7
- 跨服务器查询
- MSDN DLL 综合
- [转]C++异常处理 8
- 微软语音开发包的丁点使用
- javascript单元测试(Jsunit应用)
- [转]C++异常处理 9
- [转]C++异常处理 10
- [转]C++异常处理 11
- 不好过哦
- [转]C++异常处理 12
- C预处理命令
- 开篇纪念,呵呵