想做一个语音提示系统!高手指点
想做一个类似银行叫号系统中的使用的语音提示系统,应该怎样实现啊?没点头绪,希望高手指点一下,最好有例子参考!欢迎大家踊跃参与!谢谢
[解决办法]
//mmsystem.h
BOOL PlaySound(
LPCSTR pszSound,
HMODULE hmod,
DWORD fdwSound
);
[解决办法]
PlaySound 簡單,好用,直接
API 調用...不需控件支持
基本用法
PlaySound( "c:\\a.wav ", NULL, SND_FILENAME | SND_ASYNC);
參考網頁:
http://www.impcas.ac.cn/usr/yuanyj/vcpptutorial/chap11_6.htm
提示:
問問題時可以多點技巧
像你這個問題
如果你加上語音中會出現什麼語句,
這樣會更好
因為回答的人不知道你只是想報一下數字什麼的,還是很復雜的東西
題外:
你是廣東人?香港人?
[解决办法]
看看这个语音开发的最简单的Koodoo语言:
Play( "Welcome.wav "); // 欢迎客户,请:
PlayNumber(id); // “183”
Play( "Service.wav "); // 接受服务
也支持TTS,即文字动态合成语音。
主页在这里:
http://www.bluespace.com.cn/koodoo
[解决办法]
用TTS也可以
给个例子
//--------BCB的----------------------
启动BCB,打开菜单项PROJECT-> Import Type Library...,
在弹出的对话框中单击Add,选择windows\speech目录下的Vtxtauto.tlb,
加入VtxtAuto[Version 1.0]一项。
单击OK,BCB就会自动生成一个VtxtAuto_TLB.cpp文件。
这个文件包含了TTS引擎的COM类接口,可以用来与DLL文件通信。
新建一个工程,将这个文件包含进来:
源码如下:
//Unit.h
#ifndef Unit1H
#define Unit1H
//---------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TEdit *Edit1;
TButton *Button1;
void __fastcall FormCreate(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------
#endif
//Unit.cpp
//---------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h "
#include "wstring.h "
#include "VTxtAuto_TLB.h "
//---------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm "
TForm1 *Form1;
IVTxtAuto *IVTxtAuto1;
//---------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
WideString a = "Demo1 ";
WideString b = "Project1.exe ";
WideString c= "Hi,I am trying to speak to you,Do you hear me? ";
IVTxtAuto1 = NULL;
CoInitialize(NULL);
OleCheck(CoCreateInstance(CLSID_VTxtAuto_,0,CLSCTX_ALL,IID_IVTxtAuto, (LPVOID*)&IVTxtAuto1));
IVTxtAuto1-> Register(a,b);
IVTxtAuto1-> set_Enabled(1);
IVTxtAuto1-> set_Speed(150);
IVTxtAuto1-> Speak(c,vtxtsp_VERYHIGH);
}
//---------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(IVTxtAuto1 != NULL)
{
IVTxtAuto1-> Speak((WideString)Edit1-> Text,vtxtsp_VERYHIGH);
ShowMessage( "OK ");//我的调试语句(没声卡)
}else{
ShowMessage( "服务器没有初始化成功 ");
}
}
//---------------------------------------
//Project.cpp
//---------------------------------------
#include <vcl.h>
#pragma hdrstop
USERES( "Project1.res ");
USEFORM( "Unit1.cpp ", Form1);
USEUNIT( "D:\Borland\CBuilder5\Imports\VTxtAuto_TLB.CPP ");
//---------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application-> Initialize();
Application-> CreateForm(__classid(TForm1), &Form1);
Application-> Run();
}
catch (Exception &exception)
{
Application-> ShowException(&exception);
}
return 0;
}
//---------------------------------------
[解决办法]
你做的东西应该是IVR的行业
上面的大部分兄弟都没有说到关键点
你可以搜索一下IVR
这是一个非常成熟的行业