-
大小: 4KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-12
- 語(yǔ)言: 其他
- 標(biāo)簽: 語(yǔ)音識(shí)別??
資源簡(jiǎn)介
本程序在vs2013下完美運(yùn)行,如果編譯不通過(guò),請(qǐng)先下載Microsoft Speech SDK,并設(shè)置好對(duì)應(yīng)選項(xiàng),程序分為兩部分,分為語(yǔ)音轉(zhuǎn)文字和文字轉(zhuǎn)語(yǔ)音

代碼片段和文件信息
#define?_CRT_SECURE_NO_WARNINGS
#pragma?warning(disable:?4996)?
#include?
#include? //需用到CString
#include? //語(yǔ)音識(shí)別頭文件
#include? //導(dǎo)入語(yǔ)音頭文件
#include?
#include?
#include?
//包含語(yǔ)音引擎對(duì)應(yīng)的靜態(tài)庫(kù)
#pragma?comment(lib?“sapi.lib“)
#pragma?comment(lib?“comsupp.lib“)
?
const?int?WM_RECORD?=?WM_USER?+?100;
#define?GID_CMD_GR?333333
#define?WM_RECOEVENT?WM_USER+1
/************************************************************************************************************************************************
SAPI?API在一個(gè)應(yīng)用程序和語(yǔ)音引擎之間提供一個(gè)高級(jí)別的接口。SAPI?實(shí)現(xiàn)了所有必需的對(duì)各種語(yǔ)音引擎的實(shí)時(shí)的控制和管理等低級(jí)別的細(xì)節(jié)。
SAPI引擎的兩個(gè)基本類型是文本語(yǔ)音轉(zhuǎn)換系統(tǒng)(TTS)和語(yǔ)音識(shí)別系統(tǒng)。
TTS系統(tǒng)使用合成語(yǔ)音合成文本字符串和文件到聲音音頻流。
語(yǔ)音識(shí)別技術(shù)轉(zhuǎn)換人類的聲音語(yǔ)音流到可讀的文本字符串或者文件。
************************************************************************************************************************************************/
LRESULT?CALLBACK?WndProc(HWND?UINT?WPARAM?LPARAM);
void?openqq();
void?closeqq();
char?szAppName[]?=?“TsinghuaYincheng“;?
BOOL?b_initSR;
BOOL?b_Cmd_Grammar;
CComPtrm_cpRecoCtxt; //語(yǔ)言識(shí)別程序接口
CComPtrm_cpCmdGramma; //識(shí)別語(yǔ)法接口
CComPtrm_cpRecoEngine; //語(yǔ)言識(shí)別引擎接口
//CComPtrm_pInputStream;//?流()的接口。
//CComPtrjectToken>m_pToken;//?語(yǔ)音特征的(token)接口。
//CComPtrm_pAudio;//?音頻(Audio)的接口。(用來(lái)保存原來(lái)默認(rèn)的輸入流)
//ULONGLONG?ullGrammerID;
int?speak(wchar_t?*str);
//創(chuàng)建應(yīng)用程序窗口
int?WINAPI?WinMain(HINSTANCE?hInstance?HINSTANCE?hPrevInstance?PSTR?szCmdLine?int?iCmdShow)
{
HWND?hwnd; //句柄
MSG?msg; //消息體
WNDCLASS?wndclass; //窗體對(duì)象
//窗口參數(shù)
wndclass.cbClsExtra?=?0;
wndclass.cbWndExtra?=?0;
wndclass.hbrBackground?=?(HBRUSH)GetStockobject(WHITE_BRUSH); //背景刷
wndclass.hCursor?=?LoadCursor(NULL?IDC_ARROW); //窗口光標(biāo)
wndclass.hIcon?=?LoadIcon(NULL?IDI_APPLICATION); //圖標(biāo)
wndclass.hInstance?=?hInstance; //窗體實(shí)例名由Windows自動(dòng)分發(fā)
wndclass.lpfnWndProc?=?WndProc; //窗體接收消息函數(shù)
wndclass.lpszClassName?=?szAppName; //窗體類名
wndclass.lpszMenuName?=?NULL;
wndclass.style?=?CS_HREDRAW?|?CS_VREDRAW; //樣式
//注冊(cè)窗體
if?(!RegisterClass(&wndclass))
{
MessageBox(NULL?TEXT(“This?program?requires?Windows?NT!“)?szAppName?MB_IConerror);
return?0;
}
//創(chuàng)建窗口返回句柄
hwnd?=?CreateWindow(szAppName //類名
TEXT(“語(yǔ)音識(shí)別教程“) //標(biāo)題
WS_OVERLAPPEDWINDOW //風(fēng)格
CW_USEDEFAULT //x初始位置
CW_USEDEFAULT //y初始位置
CW_USEDEFAULT //x初始尺寸
CW_USEDEFAULT //y初始尺寸
NULL //父窗口句柄
NULL //窗口菜單句柄
hInstance //實(shí)例句柄
NULL);
ShowWindow(hwnd?iCmdShow); //顯示窗口
UpdateWindow(hwnd); //更新窗口
speak(L“請(qǐng)說(shuō)一些我能聽(tīng)懂的話“);
//消息循環(huán)
while?(GetMessage(&msg?NULL?0?0))
{
TranslateMessage(&msg); //翻譯消息并發(fā)送到消息隊(duì)列
DispatchMessage(&msg); //接收消息
}
return?msg.wParam;
}
//用于接收和處理窗口消息
//hwnd是要處理窗口的句柄;message是消息ID,代表了不同的消息類型;wParam和lParam代表了消息的附加信息,附加信息會(huì)隨著消息類型的不同而不同。
LRESULT?CALLBACK?WndProc(HWND?hwnd?UINT?message?WPARAM?wParam?LPARA
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????7650??2019-11-08?11:16??speech.cpp
?????文件????????259??2019-11-08?11:16??er.xm
-----------?---------??----------?-----??----
?????????????????7909????????????????????2
評(píng)論
共有 條評(píng)論