資源簡介
本程序在vs2013下完美運行,如果編譯不通過,請先下載Microsoft Speech SDK,并設置好對應選項,程序分為兩部分,分為語音轉文字和文字轉語音

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