導航:首頁 > 操作系統 > 單片機語音識別程序

單片機語音識別程序

發布時間:2022-11-29 07:10:23

❶ 51單片機的語音識別

自己做也可以做了,但是識別效果要看你的處理運算了,比如有用MFCC數學工具提取語音特徵進行識別的,具體你查查吧。

❷ 51單片機語音識別

比較難,51做不到,如果說加相關晶元,唯一需要加的就是DSP了,不過既然用DSP了,為何還要用51呢,聲音識別需要做FFT運算得到頻域的特徵值,51的運算能力達不到。

❸ 單片機做語音程序

加一個語音晶元(用ISD4000即可)
加一個實時時鍾晶元(用PCF8563P即可)
先錄好音,再用單片機程序去控制這兩個晶元就可以實現了。
我以前做過的,並不是很難。

❹ 求凌陽單片機語音控製程序

// 工程名稱: Car_Demo
// 功能描述: 實現小車的語音控制
// 涉及的庫: CMacro1016.lib
// bsrv222SDL.lib
// sacmv26e.lib
// 組成文件: main.c
// Flash.asm, hardware.asm,ISR.asm
// hardware.h,s480.h, hardware.inc
// 硬體連接: IOA0-----KEY1
// IOA1-----KEY2
// IOA2-----KEY3
// IOB8-----前進
// IOB9-----倒車
// IOB10----左拐
// IOB11----右拐
// 維護記錄: 2005-12-12 v1.0
//========================================================

#include "s480.h"
#include "bsrsd.h"

#define P_IOA_Data (volatile unsigned int *)0x7000
#define P_IOA_Dir (volatile unsigned int *)0x7002
#define P_IOA_Attrib (volatile unsigned int *)0x7003
#define P_IOB_Data (volatile unsigned int *)0x7005
#define P_IOB_Dir (volatile unsigned int *)0x7007
#define P_IOB_Attrib (volatile unsigned int *)0x7008
#define P_TimerA_Data (volatile unsigned int *)0x700A
#define P_TimerA_Ctrl (volatile unsigned int *)0x700B
#define P_TimerB_Data (volatile unsigned int *)0x700C
#define P_TimerB_Ctrl (volatile unsigned int *)0x700D
#define P_Watchdog_Clear (volatile unsigned int *)0x7012
#define P_INT_Mask (volatile unsigned int *)0x702D
#define P_INT_Clear (volatile unsigned int *)0x7011

#define NAME_ID 0x100
#define COMMAND_GO_ID 0x101
#define COMMAND_BACK_ID 0x102
#define COMMAND_LEFT_ID 0x103
#define COMMAND_RIGHT_ID 0x104

#define S_NAME 0 //給我取個名字吧
#define S_ACT1 1 //前進
#define S_ACT2 2 //倒車,請注意
#define S_ACT3 3 //左拐
#define S_ACT4 4 //右拐
#define S_RDY 5 //Yeah
#define S_AGAIN 6 //請再說一遍
#define S_NOVOICE 7 //沒有聽到任何聲音
#define S_CMDDIFF 8 //說什麼暗語呀
#define S_NOISY 8 //說什麼暗語呀
#define S_START 9 //准備就緒,開始辨識
#define S_GJG 10 //拐就拐
#define S_DCZY 11 //倒車,請注意

extern unsigned int BSR_SDModel[100]; //外部變數BSR_SDModel[100],辨識器自帶
extern void F_FlashWrite1Word(unsigned int addr,unsigned int Value);
extern void F_FlashErase(unsigned int sector);
unsigned int uiTimeset = 3; //運行時間定時,調整該參數控制運行時間
unsigned int uiTimecont; //運行時間計時

//=============================================================
// 語法格式: void Delay();
// 實現功能: 延時
// 參數: 無
// 返回值: 無
//=============================================================
void Delay()
{
unsigned int i;
for(i=0;i<0x3Fff;i++)
{
*P_Watchdog_Clear=0x0001;
}
}

//=============================================================
// 語法格式: void PlaySnd(unsigned SndIndex,unsigned DAC_Channel);
// 實現功能: 語音播放函數
// 參數: SndIndex-播放語音資源索引號
// DAC_Channel-播放聲道選擇
// 返回值: 無
//=============================================================
void PlaySnd(unsigned SndIndex,unsigned DAC_Channel)
{
BSR_StopRecognizer(); //停止識別器
SACM_S480_Initial(1); //初始化為自動播放
SACM_S480_Play(SndIndex, DAC_Channel, 3); //開始播放一段語音
while((SACM_S480_Status()&0x0001)!= 0) //是否播放完畢?
{
SACM_S480_ServiceLoop(); //解碼並填充隊列
*P_Watchdog_Clear=0x0001; //清看門狗
}
SACM_S480_Stop(); //停止播放
BSR_InitRecognizer(BSR_MIC); //初始化識別器
}

//=============================================================
// 語法格式: int TrainWord(int WordID,int SndID);
// 實現功能: 訓練一條指令
// 參數: WordID-指令編碼
// SndID-指令提示音索引號
// 返回值: 無
//=============================================================
int TrainWord(unsigned int WordID,unsigned int SndID)
{
int Result;
PlaySnd(SndID,3); //引導訓練,播放指令對應動作
while(1)
{
Result = BSR_Train(WordID,BSR_TRAIN_TWICE); //訓練兩次,獲得訓練結果

if(Result==0)break;
switch(Result)
{
case -1: //沒有檢測出聲音
PlaySnd(S_NOVOICE,3);
return -1;
case -2: //需要訓練第二次
PlaySnd(S_AGAIN,3);
break;
case -3: //環境太吵
PlaySnd(S_NOISY,3);
return -3;
case -4: //資料庫滿
return -4;
case -5: //檢測出聲音不同
PlaySnd(S_CMDDIFF,3);
return -5;
case -6: //序號錯誤
return -6;
default:
break;
}
}
return 0;
}

//=============================================================
// 語法格式: void TrainSD();
// 實現功能: 訓練函數
// 參數: 無
// 返回值: 無
//=============================================================
void TrainSD()
{
while(TrainWord(NAME_ID,S_NAME) != 0) ; //訓練名稱
while(TrainWord(COMMAND_GO_ID,S_ACT1) != 0) ; //訓練第1個動作
while(TrainWord(COMMAND_BACK_ID,S_ACT2) != 0) ; //訓練第2個動作
while(TrainWord(COMMAND_LEFT_ID,S_ACT3) != 0) ; //訓練第3個動作
while(TrainWord(COMMAND_RIGHT_ID,S_ACT4) != 0) ; //訓練第4個動作
}

//=============================================================
// 語法格式: void StoreSD();
// 實現功能: 存儲語音模型函數
// 參數: 無
// 返回值: 無
//=============================================================
void StoreSD()
{ unsigned int ulAddr,i,commandID,g_Ret;
F_FlashWrite1Word(0xef00,0xaaaa);
F_FlashErase(0xe000);
F_FlashErase(0xe100);
F_FlashErase(0xe200);
ulAddr=0xe000;//********
for(commandID=0x100;commandID<0x105;commandID++)
{
g_Ret=BSR_ExportSDWord(commandID);
while(g_Ret!=0) //模型導出成功?
g_Ret=BSR_ExportSDWord(commandID);
for(i=0;i<100;i++) //保存語音模型SD1(0xe000---0xe063)
{
F_FlashWrite1Word(ulAddr,BSR_SDModel[i]);
ulAddr+=1;
}
}
}

//=============================================================
// 語法格式: void StoreSD();
// 實現功能: 裝載語音模型函數
// 參數: 無
// 返回值: 無
//=============================================================
void LoadSD()
{ unsigned int *p,k,jk,Ret,g_Ret;
p=(int *)0xe000;
for(jk=0;jk<5;jk++)
{
for(k=0;k<100;k++)
{
Ret=*p;
BSR_SDModel[k]=Ret; //裝載語音模型
p+=1;
}
g_Ret=BSR_ImportSDWord();
while(g_Ret!=0) //模型裝載成功?
g_Ret=BSR_ImportSDWord();
}
}

//=============================================================
// 語法格式: void GoAhead();
// 實現功能: 前進子函數
// 參數: 無
// 返回值: 無
//=============================================================
void GoAhead() //前進
{
PlaySnd(S_ACT1,3); //提示
*P_IOB_Data=0x0100; //前進
*P_INT_Mask |= 0x0004; //以下為中斷定時操作
__asm("int fiq,irq");
uiTimecont = 0;
}
//=============================================================
// 語法格式: void BackUp();
// 實現功能: 後退子函數
// 參數: 無
// 返回值: 無
//=============================================================
void BackUp() //倒退
{
PlaySnd(S_DCZY,3); //提示
*P_IOB_Data=0x0200; //倒退
*P_INT_Mask |= 0x0004; //以下為中斷定時操作
__asm("int fiq,irq");
uiTimecont = 0;
}

//=============================================================
// 語法格式: void TurnLeft();
// 實現功能: 左轉子函數
// 參數: 無
// 返回值: 無
//=============================================================
void TurnLeft() //左轉
{
PlaySnd(S_GJG,3);
*P_IOB_Data=0x0900; //右轉
Delay(); //延時
*P_IOB_Data=0x0500; //左轉
*P_INT_Mask |= 0x0004; //以下為中斷定時操作
__asm("int fiq,irq");
uiTimecont = 0;
}
//=============================================================
// 語法格式: void TurnRight();
// 實現功能: 右轉子函數
// 參數: 無
// 返回值: 無
//=============================================================
void TurnRight() //右轉
{
PlaySnd(S_GJG,3); //語音提示
*P_IOB_Data=0x0500; //左轉
Delay(); //延時
*P_IOB_Data=0x0900; //右轉
*P_INT_Mask |= 0x0004; //以下為中斷定時操作
__asm("int fiq,irq");
uiTimecont = 0;
}

//=============================================================
// 語法格式: void Stop();
// 實現功能: 停車子函數
// 參數: 無
// 返回值: 無
//=============================================================
void Stop() //停車
{
*P_IOB_Data=0x0000; //停車
PlaySnd(S_RDY,3); //語音提示
}

//=============================================================
// 語法格式: void BSR(void);
// 實現功能: 辨識子函數
// 參數: 無
// 返回值: 無
//=============================================================
void BSR(void)
{
int Result; //辨識結果寄存
Result = BSR_GetResult(); //獲得識別結果

if(Result>0) //有語音觸發?
{
*P_IOB_Data=0x0000; //臨時停車
switch(Result)
{
case NAME_ID: //識別出名稱命令
Stop(); //停車待命
break;
case COMMAND_GO_ID: //識別出第一條命令
GoAhead(); //執行動作一:直走
break;
case COMMAND_BACK_ID: //識別出第二條命令
BackUp(); //執行動作二:倒車
break;
case COMMAND_LEFT_ID: //識別出第三條命令
TurnLeft(); //執行動作三:左轉
break;
case COMMAND_RIGHT_ID: //識別出第四條命令
TurnRight(); //執行動作四:右轉
break;
default:
break;
}
}
}
//=============================================================
// 語法格式: void IRQ5(void);
// 實現功能: 中斷服務子函數
// 參數: 無
// 返回值: 無
//=============================================================
void IRQ5(void)__attribute__((ISR)); //運動定時控制
void IRQ5(void)
{
if(uiTimecont++ == uiTimeset)
{
*P_IOB_Data = 0x0000;
}
*P_INT_Clear = 0x0004;
}

//=============================================================
// 語法格式: int main(void);
// 實現功能: 主函數
// 參數: 無
// 返回值: 無
//=============================================================
int main(void)
{ unsigned int BS_Flag; //Train標志位

*P_IOA_Dir=0xff00; //初始化IOA,IOA0~7下拉輸入
*P_IOA_Attrib=0xff00;
*P_IOA_Data=0x0000;

*P_IOB_Dir=0x0f00; //初始化IOB,IOB8~11同向輸出
*P_IOB_Attrib=0x0f00;
*P_IOB_Data=0x0000;

BSR_DeleteSDGroup(0); //初始化存儲器RAM
BS_Flag=*(unsigned int *)0xe000; //讀存儲單元0xe000
if(BS_Flag==0xffff) //沒有經過訓練(0xe000內容為0xffff)
{
TrainSD(); //訓練
StoreSD(); //存儲訓練結果(語音模型)
}
else //經過訓練(0xe000內容為0x0055)
{
LoadSD(); //語音模型載入識別器
}

PlaySnd(S_START,3); //開始識別提示
BSR_InitRecognizer(BSR_MIC); //初始化識別器

while(1)
{
BSR();
if((*P_IOA_Data)&0x0004) //是否重新訓練
{
F_FlashErase(0xe000);
while(1);
}
}
}

//============================================================
// 文件名稱:flash.asm
// 實現功能: SPCE061 32K flash 的讀寫
// 維護記錄: 2003-6-9 V1.0
//============================================================

.INCLUDE hardware.inc

.DEFINE C_FLASH_SIZE 0x8000
.DEFINE C_FLASH_BLOCK_SIZE 0x100
.DEFINE C_FLASH_MATCH 0xAAAA
.DEFINE C_FLASH_PAGE_ERASE 0x5511 //擦除一頁
.DEFINE C_FLASH_MASS_ERASE 0x5522 //
.DEFINE C_FLASH_1WORD_PGM 0x5533 //寫一個字
.DEFINE C_FLASH_SEQUENT_PGM 0x5544 //寫多個字
.DEFINE C_FLASH_MAIN_BLOCK 0x5555
.DEFINE C_FLASH_INFORM_BLOCK 0x5566

.CODE
//============================================================================================
//語法:void F_FlashWrite1Word(int addr,int Value )
//描述:寫一個字到FLASH中
//參數:addr-被寫數據的存儲地址 Value-被寫數據
//返回:無
//===============================================================================================
.PUBLIC _F_FlashWrite1Word
.DEFINE P_Flash_Ctrl 0x7555
_F_FlashWrite1Word: .proc
push bp to [sp]
bp = sp+1
r1 = C_FLASH_MATCH //AAAA
[P_Flash_Ctrl] = r1
r1 = C_FLASH_1WORD_PGM //5533
[P_Flash_Ctrl] = r1
r1 = [bp+3] //flash address
r2 = [bp+4] //data
[r1] = r2

pop bp from [sp]
retf
.ENDP

//=============================================================================================
//語法:F_FlashWrite(int sector,int &num, int size)
//描述:順序寫多個字
//參數:sector-被寫數據的起始地址 &num-被寫數據 size-寫數據的數量
//返回:無
//=============================================================================================
.PUBLIC _F_FlashWrite
_F_FlashWrite: .proc
push bp to [sp]
bp = sp+1
r1 = [bp+3] //flash base address
r2 = [bp+4] //data
r3 = [bp+5] //多個位元組
r4 = C_FLASH_MATCH //AAAA
[P_Flash_Ctrl] = r4
L_FlashWriteLoop:
r4 = C_FLASH_SEQUENT_PGM //5544
[P_Flash_Ctrl] = r4
r4 = [r2++]
[r1++] = r4

r3 -= 1
jnz L_FlashWriteLoop
[P_Flash_Ctrl] = r3 //寫結束
pop bp from [sp]
retf
.ENDP

// ============================================================================================
//語法:void F_FlashErase(sector)
//描述:擦除256位元組
//參數: sector-擦除頁的起始地址
//返回:無
// ============================================================================================
.PUBLIC _F_FlashErase
_F_FlashErase: .proc
push bp to [sp]
bp = sp + 1
r1 = C_FLASH_MATCH //AAAA
[P_Flash_Ctrl] = r1
r1 = C_FLASH_PAGE_ERASE //5511
[P_Flash_Ctrl] = r1
r1 = [bp+3] //擦除一頁
[r1] = r1

pop bp from [sp]
retf
.ENDP
.END

//============================================================
// 文件名稱:ISR.asm
// 實現功能: 語音播放/識別中斷服務
// 維護記錄: 2003-9-9 V1.0
//============================================================
.include hardware.inc

.public _FIQ;

.external _BSR_FIQ_Routine
.external F_FIQ_Service_SACM_S480

.text
_FIQ:
push R1,R5 to [sp]; // 寄存器壓棧保護
R1 = C_FIQ_TMA;
[P_INT_Clear] = R1;
call _BSR_FIQ_Routine //語音識別中斷服務
call F_FIQ_Service_SACM_S480; //語音播放中斷服務
pop R1,R5 from [sp];
reti;

❺ 有關凌陽61單片機的語音識別的

你說的問題不是你想的那麼簡單,除了你的單片機還必須其他的晶元配套才能完成的,如果光是直接識別語音那麼有這么幾點,
你需要一塊音頻採集晶元,然後搭建電路
你還需要一塊音頻解碼晶元,
這些都是些大公司做好的成品,你需要的是去收集這些晶元的資料,然後合理搭建電路。
到最後的信號你才能夠用單片機判別
做這個有點難度,希望你決定做就別怕苦,看資料最關鍵

❻ 單片機語音識別

這個用一般的單片機很難實現
涉及到復雜的演算法,可以買到這種晶元
初學單片機可以從下面幾點開始
1:學好基礎的C,模電,數電
2:練習單片機開發板(參考吳鑒鷹單片機開發板),做些小實驗,教程多看
3:有以上的基礎後再做些復雜的項目,這個東西是積累和實踐出來的

❼ 求高手編寫一個語音識別系統的c語言程序代碼,可以導入單片機的

我是做語音識別的,主要使用HTK進行語音識別。
如果想進一步做的的話,錦衣你學習一下因馬爾科夫過程
還有問題的話,請繼續提問

給分吧

❽ 跪求凌陽61單片機設計的語音識別系統的主程序

凌陽61單片機實現RCL,由C語言編寫,凌陽61板實現功能-,C++ Builder,單片機開發/SCM
autocad預覽控制項.不需要安裝autocad即可在界面瀏覽-,Delphi,繪圖程序/Graph Drawing
本程序為基於matlab的小波分析的應用實例。-,matlab,界面編程/GUI Develop
高通brew平台上的BUIW控制項中的ImageStaticWidget使用示例-,Visual C++,Static控制項/Static control
客觀合理化一天一片人體豆腐花規范化廣泛非官方大哥大法國-,C++ Builder,界面編程/GUI Develop
本程序為基於matlab的插值分析與Euler解常微分方程的應用實例。-,matlab,界面編程/GUI Develop
用ASP.NET做的酒店管理系統,該系統主要處理酒店日常運營中涉及的客戶信息.-,ASP,其他書籍/Other Books
EVC 讀寫INI文件 EVC 讀寫INI文件EVC 讀寫INI文件EVC 讀寫INI文件EVC 讀寫INI文件-,Visual C++,文件操作/File Operate
本程序介紹基於matlab的平方根及改進平方根演算法。-,matlab,按鈕控制項/Button control
高通brew平台上的BUIW控制項中的slider的示常式序-,Visual C++,界面編程/GUI Develop
塔頂地無可奈何花落去 人威風掃地雪 可耕地枯無可奈何花落去 無可奈何花落去餓-,Visual C++,GDI/圖象編程/GDI-Bitmap
oblog31sql oblog31sql oblog31sql oblog31sql oblog31sql-,ASP,Web伺服器/Web Server
MATLAB實現簡單圖象處理的程序,在matlab2006a上通過-,matlab,matlab常式/matlab
源碼、運行程序、幫助文件、必須的資料庫文件-,Windows_Unix,C#編程/CSharp
dos下的TCP/IP棧庫函數,並提供了多種tcp/ip編程demo。 -,DOS,TCP/IP協議棧/TCP/IP Stack
MATLAB進入時顯示的圖標的程序實現,有動畫效果!-,matlab,matlab常式/matlab
地方官梵蒂岡地方官法 方法方法方法方法方法 -,Unix_Linux,TreeView控制項/TreeView
幾個matlab的編程實例,對初學者有一定的幫助。-,matlab,界面編程/GUI Develop
用ASP.NET做的客戶管理系統,該系統以客戶管理中涉及的銷售管理,合同管理為主體.-,ASP,其他書籍/Other Books
畢畢剝剝畢畢剝剝爸爸 畢畢剝剝畢畢剝剝爸爸 -,DOS,Static控制項/Static control
將資料庫的資料轉檔到EXCEL里進行保存-,Delphi,其他小程序/Other windows programs
數字圖像中隊圖像進行模板匹配演算法之前的預處理演算法!-,Visual C++,圖形/文字識別/Graph Recognize
存車處存車處存車處廠 滴滴答答滴滴答答得到 -,DOS,編輯框/EditBox
實數編碼GA,也是從網上下載的。非要上傳5個才能下載,哎,實在是沒辦法啊,這個也不知道能不能運行,不能的話請不要罵我哦,謝謝!!-,Visual C++,人工智慧/AI-NN-PR
DS1302+AT89C2051的LED鍾,可以顯示年、周、月、日、小時、分鍾、秒-,TEXT,其他小程序/Other windows programs
可耕地 唇形枯 要一地三三大哥有在一碼元表的有遙有-,Visual C++,TreeView控制項/TreeView
java寫的遺傳演算法的例子,比較簡單,如果解壓縮的時候需要密碼的話,應該是「1」。寫的比較簡單。是老早以前寫的了。-,Java,人工智慧/AI-NN-PR
匯編語言,用C51單片機實現交通燈控制!二極體模擬發光!-,Asm,單片機開發/SCM
通過串口控制步進電機控制器,實現聯絡,速度控制,步長-,Visual C++,串口編程/Com Port
絕佳的Tab View控制項的方式之一,VC++6.0經過運行調試的,可直接使用-,Visual C++,TreeView控制項/TreeView
以某中小規模汽車維修廠為案例,用ASP.NET做的倉庫管理系統.-,ASP,其他書籍/Other Books
關機程序。。。。。。。。。。。。。。。。。-,Visual C++,Windows編程/Windows Develop
絕佳的Tab View控制項的方式之二,VC++6.0經過運行調試的,可直接使用-,Visual C++,界面編程/GUI Develop
在VC6下基於OpenCV的輪廓檢測程序,其中圖像的二值化操作基於Canny和自適應閾值。通過trackbar來實現不同情況下的輪廓檢測。-,Visual C++,圖形/文字識別/Graph Recognize
絕佳的Tab View控制項的方式之三,VC++6.0經過運行調試的,可直接使用-,Visual C++,界面編程/GUI Develop
用於首先獲取需要下載的文件的大小,然後將其分塊下載。-,Java,網路編程/WinSock-NDIS
用csocket模擬聊天室,可以在一台機子上模擬,也可以在不同機子上-,Visual C++,網路編程/WinSock-NDIS
這個好象也是從網路上找到一個基本遺傳演算法的例子,解壓縮的時候如果需要密碼的話,應該是「1」。-,Visual C++,人工智慧/AI-NN-PR
本程序是運用java 語言 編寫一款查看 網站源文件的程序 -,Java,其他/Other systems
使用C語言實現菜單控制的源程序,實現了學生成績的管理.-,C-C++,界面編程/GUI Develop
在打開圖像時,點擊圖像可在打開對話框中實時看到預覽,絕好.-,Visual C++,界面編程/GUI Develop
用ASP.NET做的合同管理系統,該系統包括合同進展控制模塊,員工管理模塊,客戶管理模塊,項目管理模塊,合同管理模塊和合同統計模塊等.-,ASP,其他書籍/Other Books
語音識別與合成工具箱.具有如下功能:時域分析,頻域分析,LPC分析與合成等.-,matlab,matlab常式/matlab

❾ 51單片機如何實現語音功能

單片機需要增加語音功能,要麼選擇功能強大stm32之類的晶元,用內部的dac來模擬輸出,要麼就外掛一個語音晶元
語音晶元的作用
1、顧名思義,就在是產品上增加語音播報的功能,實現的也就是把語音播放出來
2、常見的如:停車場報金額、電梯報站、貨車報「左轉彎,請注意」等等,應用非常的廣泛
語音晶元的種類,不過主要的分類基本也就大致三種
1、第一種,稱之為OTP,就是那種SOP8封裝的語音晶元,內置幾段常用的語音,出廠之後就固話死了,不可修改
2、第二種,稱之為flash語音晶元,通常是一個主控晶元外掛一個spiflash,主控晶元是不變的,而flash則是可以重復燒錄的,但是語音往往只支持wav,所以音質會壓縮的很差。代表的如WT588D
3、第三種,就是現在最優秀的KT404A晶元,他是支持MP3解碼,比前面的兩種在技術上是一個跨越,將MP3這種優秀的技術應用於語音晶元上,同時他強大的usb直接虛擬flash成為U盤,這樣更新語音非常方便
您選的單片機有4個串口,隨便拿一個出來控制KT404A就好了
KT404A外掛一個spiflash,通過usb直接更新語音

❿ 推薦一款適合51單片機的語音識別模塊

推薦使用YQ5969,該模組系列可以支持1--8個咪頭,該語音晶元可以根據客戶具體需求提供單核--4核 32bit ARM核心的不同方案,可以支持本地和雲端識別不同需求。5米內本地識別率 93%以上,雲端識別率97%。從麥克風中輸入詞條(即語音指令),與存儲在 SPI Flash 中語音相對比,如果一致,即識別正確,之後模塊的串口 TX 會輸出相應的指令,並且三個 IO 口(OUTA-OUTC)會輸出相應的電平,同時喇叭播放語音。

閱讀全文

與單片機語音識別程序相關的資料

熱點內容
午夜宅男最新 瀏覽:252
白夜是什麼小說主角 瀏覽:651
可以直接觀看網站 瀏覽:53
女主開發了男主菊的小說 瀏覽:296
程序員陸漓懷孕第幾集 瀏覽:600
proe命令講解 瀏覽:24
yp99 76.c om 瀏覽:751
看片不用花錢的網站 瀏覽:983
主角叫凌天的小說 瀏覽:328
電影鴨王1完整版百度網盤 瀏覽:501
國產四級在線觀看 瀏覽:393
《斜陽若影》女穿男 瀏覽:756
男人從墳墓里爬出來報復出軌妻子的美國電影名字 瀏覽:485
女主叫小米的電視 瀏覽:291
淘寶小米雲伺服器 瀏覽:957
如何發送app請帖 瀏覽:114
大今長令 瀏覽:632
玩操正太電影 瀏覽:682
伺服器如何添加自啟軟體 瀏覽:489
小時候的一部台灣電影的名字 瀏覽:510