久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3841|回復: 5
收起左側(cè)

求助編好的語言不能識別

[復制鏈接]
ID:79154 發(fā)表于 2015-5-27 08:34 | 顯示全部樓層 |閱讀模式
#include "config.h"
extern void  delay(unsigned long uldata);
uint8 idata ucRegVal;
extern uint8 idata nAsrStatus;
void ProcessInt0(void);
/************************************************************************
功能描述:   復位LD模塊
入口參數(shù):  none
返 回 值:   none
其他說明:  none
**************************************************************************/
void LD_Reset()
{
RSTB=1;
delay(1);
RSTB=0;
delay(1);
RSTB=1;
delay(1);
CSB=0;
delay(1);
CSB=1;
delay(1);
}
/************************************************************************
功能描述: LD模塊命令初始化
入口參數(shù): none
返 回 值: none
其他說明: 該函數(shù)為出廠配置,一般不需要修改;
      有興趣的客戶可對照開發(fā)手冊根據(jù)需要自行修改。
**************************************************************************/
void LD_Init_Common()
{
LD_ReadReg(0x06);  
LD_WriteReg(0x17, 0x35);
delay(10);
LD_ReadReg(0x06);  
LD_WriteReg(0x89, 0x03);  
delay(5);
LD_WriteReg(0xCF, 0x43);   
delay(5);
LD_WriteReg(0xCB, 0x02);

/*PLL setting*/
LD_WriteReg(0x11, LD_PLL_11);      
LD_WriteReg(0x1E,0x00);
LD_WriteReg(0x19, LD_PLL_ASR_19);
LD_WriteReg(0x1B, LD_PLL_ASR_1B);  
  LD_WriteReg(0x1D, LD_PLL_ASR_1D);
delay(10);

    LD_WriteReg(0xCD, 0x04);
// LD_WriteReg(0x17, 0x4c);
delay(5);
LD_WriteReg(0xB9, 0x00);
LD_WriteReg(0xCF, 0x4F);
LD_WriteReg(0x6F, 0xFF);
}
/************************************************************************
功能描述:   LD模塊 ASR功能初始化
入口參數(shù):  none
返 回 值:   none
其他說明:  該函數(shù)為出廠配置,一般不需要修改;
      有興趣的客戶可對照開發(fā)手冊根據(jù)需要自行修改。
**************************************************************************/
void LD_Init_ASR()
{
LD_Init_Common();
LD_WriteReg(0xBD, 0x00);
LD_WriteReg(0x17, 0x48);
delay( 10 );
LD_WriteReg(0x3C, 0x80);   
LD_WriteReg(0x3E, 0x07);
LD_WriteReg(0x38, 0xff);   
LD_WriteReg(0x3A, 0x07);
  LD_WriteReg(0x40, 0);         
LD_WriteReg(0x42, 8);
LD_WriteReg(0x44, 0);   
LD_WriteReg(0x46, 8);
delay( 1 );
}
/************************************************************************
功能描述:  中斷處理函數(shù)
入口參數(shù):  none
返 回 值:   none
其他說明: 當LD模塊接收到音頻信號時,將進入該函數(shù),
      判斷識別是否有結(jié)果,如果沒有從新配置寄
            存器準備下一次的識別。
**************************************************************************/
void ProcessInt0(void)
{
uint8 nAsrResCount=0;
EX0=0;
ucRegVal = LD_ReadReg(0x2B);
LD_WriteReg(0x29,0) ;
LD_WriteReg(0x02,0) ;
if((ucRegVal & 0x10) &&
  LD_ReadReg(0xb2)==0x21 &&
  LD_ReadReg(0xbf)==0x35)   /*識別成功*/
{
  nAsrResCount = LD_ReadReg(0xba);
  if(nAsrResCount>0 && nAsrResCount<=4)
  {
   nAsrStatus=LD_ASR_FOUNDOK;
  }
  else
     {
   nAsrStatus=LD_ASR_FOUNDZERO;
  }
}                /*沒有識別結(jié)果*/
else
{  
  nAsrStatus=LD_ASR_FOUNDZERO;
}
  
  LD_WriteReg(0x2b, 0);
  LD_WriteReg(0x1C,0);/*寫0:ADC不可用*/
LD_WriteReg(0x29,0) ;
LD_WriteReg(0x02,0) ;
LD_WriteReg(0x2B,  0);
LD_WriteReg(0xBA, 0);
LD_WriteReg(0xBC,0);
LD_WriteReg(0x08,1);  /*清除FIFO_DATA*/
LD_WriteReg(0x08,0); /*清除FIFO_DATA后 再次寫0*/

EX0=1;
}
/************************************************************************
功能描述:  運行ASR識別流程
入口參數(shù): none
返 回 值:  asrflag:1->啟動成功, 0—>啟動失敗
其他說明: 識別順序如下:
      1、RunASR()函數(shù)實現(xiàn)了一次完整的ASR語音識別流程
      2、LD_AsrStart() 函數(shù)實現(xiàn)了ASR初始化
      3、LD_AsrAddFixed() 函數(shù)實現(xiàn)了添加關(guān)鍵詞語到LD3320芯片中
      4、LD_AsrRun() 函數(shù)啟動了一次ASR語音識別流程     
      任何一次ASR識別流程,都需要按照這個順序,從初始化開始
**************************************************************************/
uint8 RunASR(void)
{
uint8 i=0;
uint8 asrflag=0;
for (i=0; i<5; i++)   // 防止由于硬件原因?qū)е翷D3320芯片工作不正常,所以一共嘗試5次啟動ASR識別流程
{
  LD_AsrStart();
  delay(50);
  if (LD_AsrAddFixed()==0)
  {
   LD_Reset();   // LD3320芯片內(nèi)部出現(xiàn)不正常,立即重啟LD3320芯片
   delay(50);   // 并從初始化開始重新ASR識別流程
   continue;
  }
  delay(10);
  if (LD_AsrRun() == 0)
  {
   LD_Reset();   // LD3320芯片內(nèi)部出現(xiàn)不正常,立即重啟LD3320芯片
   delay(50);   // 并從初始化開始重新ASR識別流程
   continue;
  }
  asrflag=1;
  break;     // ASR流程啟動成功,退出當前for循環(huán)。開始等待LD3320送出的中斷信號
}
return asrflag;
}
/************************************************************************
功能描述:  檢測LD模塊是否空閑
入口參數(shù): none
返 回 值:  flag:1-> 空閑
其他說明: none
**************************************************************************/
uint8 LD_Check_ASRBusyFlag_b2()
{
uint8 j;
uint8 flag = 0;
for (j=0; j<10; j++)
{
  if (LD_ReadReg(0xb2) == 0x21)
  {
   flag = 1;
   break;
  }
  delay(10);  
}
return flag;
}
/************************************************************************
功能描述:  啟動ASR
入口參數(shù): none
返 回 值:  none
其他說明: none
**************************************************************************/
void LD_AsrStart()
{
LD_Init_ASR();
}
/************************************************************************
功能描述:  運行ASR
入口參數(shù): none
返 回 值:  1:啟動成功
其他說明: none
**************************************************************************/
uint8 LD_AsrRun()
{
EX0=0;
LD_WriteReg(0x35, MIC_VOL);
LD_WriteReg(0x1C, 0x09);
LD_WriteReg(0xBD, 0x20);
LD_WriteReg(0x08, 0x01);
delay( 1 );
LD_WriteReg(0x08, 0x00);
delay( 1 );
if(LD_Check_ASRBusyFlag_b2() == 0)
{
  return 0;
}
// LD_WriteReg(0xB6, 0xa); //識別時間  1S
// LD_WriteReg(0xB5, 0x1E); //背景音段時間 300ms
// LD_WriteReg(0xB8, 10); //結(jié)束時間
// LD_WriteReg(0x1C, 0x07); //配置雙通道音頻信號做為輸入信號
LD_WriteReg(0x1C, 0x0b); //配置麥克風做為輸入信號

LD_WriteReg(0xB2, 0xff);
delay( 1);
LD_WriteReg(0x37, 0x06);
delay( 1 );
    LD_WriteReg(0x37, 0x06);
  delay( 5 );
LD_WriteReg(0x29, 0x10);

LD_WriteReg(0xBD, 0x00);
EX0=1;
return 1;
}
/************************************************************************
功能描述: 向LD模塊添加關(guān)鍵詞
入口參數(shù): none
返 回 值: flag:1->添加成功
其他說明: 用戶修改.
      1、根據(jù)如下格式添加拼音關(guān)鍵詞,同時注意修改sRecog 和pCode 數(shù)組的長度
      和對應變了k的循環(huán)置。拼音串和識別碼是一一對應的。
      2、開發(fā)者可以學習"語音識別芯片LD3320高階秘籍.pdf"中
           關(guān)于垃圾詞語吸收錯誤的用法,來提供識別效果。
      3、”xiao jie “ 為口令,故在每次識別時,必須先發(fā)一級口令“小捷”
**************************************************************************/
uint8 LD_AsrAddFixed()
{
uint8 k, flag;
uint8 nAsrAddLength;
#define DATE_A 11   /*數(shù)組二維數(shù)值*/
#define DATE_B 25  /*數(shù)組一維數(shù)值*/
uint8 code sRecog[DATE_A][DATE_B] = {
                    "bai jia lao niang men",\  
                    "kai ke ting deng",\
                    "guan ke ting deng",\
                    "kai dian shi ji",\
                    "guan dian shi ji",\
                     "kai wo shi deng",\
                     "guan wo shi deng",\
                     "kai can ting deng",\
                     "guan can ting deng",\
                     "kai chu fang deng",\
                     "guan chu fang deng"
                   }; /*添加關(guān)鍵詞,用戶修改*/
uint8 code pCode[DATE_A] = {
               CODE_CMD,\
               CODE_KKTD,\
               CODE_GKTD,\
               CODE_KDSJ,\
               CODE_GDSJ,\
               CODE_KWSD,\
               CODE_GWSD,\
               CODE_KCTD,\
               CODE_GCTD,\  
               CODE_KCFD,\
               CODE_GCFD,

               }; /*添加識別碼,用戶修改*/
flag = 1;
for (k=0; k<DATE_A; k++)
{
   
  if(LD_Check_ASRBusyFlag_b2() == 0)
  {
   flag = 0;
   break;
  }
  
  LD_WriteReg(0xc1, pCode[k] );
  LD_WriteReg(0xc3, 0 );
  LD_WriteReg(0x08, 0x04);
  delay(1);
  LD_WriteReg(0x08, 0x00);
  delay(1);
  for (nAsrAddLength=0; nAsrAddLength<DATE_B; nAsrAddLength++)
  {
   if (sRecog[k][nAsrAddLength] == 0)
    break;
   LD_WriteReg(0x5, sRecog[k][nAsrAddLength]);
  }
  LD_WriteReg(0xb9, nAsrAddLength);
  LD_WriteReg(0xb2, 0xff);
  LD_WriteReg(0x37, 0x04);
}
    return flag;
}
/************************************************************************
功能描述:  獲取識別結(jié)果
入口參數(shù): none
返 回 值:  LD_ReadReg(0xc5 );  讀取內(nèi)部寄存器返回識別碼。
其他說明: none
**************************************************************************/
uint8 LD_GetResult()
{  
return LD_ReadReg(0xc5 );
}

回復

使用道具 舉報

ID:79154 發(fā)表于 2015-5-27 08:35 | 顯示全部樓層
/***********************************************************************************/
回復

使用道具 舉報

ID:1 發(fā)表于 2015-5-27 15:10 | 顯示全部樓層
詳細解說一下程序存在什么問題?還有電路圖呢 ?
回復

使用道具 舉報

ID:79154 發(fā)表于 2015-5-27 16:09 | 顯示全部樓層
admin 發(fā)表于 2015-5-27 15:10
詳細解說一下程序存在什么問題?還有電路圖呢 ?

編好的語言不能識別,
回復

使用道具 舉報

ID:79154 發(fā)表于 2015-5-27 16:10 | 顯示全部樓層
編好的語言不能識別,IO控制不了

YS-LDV7語音識別模塊原理圖.pdf

86.42 KB, 下載次數(shù): 4

評分

參與人數(shù) 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:81573 發(fā)表于 2015-5-30 15:14 | 顯示全部樓層
看不懂
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线中文字幕av | 日韩在线小视频 | 亚洲精品视频三区 | 一区二区精品 | 国产一区二区在线播放视频 | 在线成人一区 | 一二三区视频 | 国产精品一区二区三区在线 | 国产精品资源在线 | 中文字幕在线不卡 | 日日夜夜免费精品 | 亚洲精品电影 | 欧美日韩一本 | 日韩中文字幕在线观看视频 | 亚洲一区视频在线播放 | 精品国产免费一区二区三区五区 | 日本色综合| 性色视频 | 久久久久久久一区 | 亚洲成人免费视频 | 中文字幕 在线观看 | 韩日在线视频 | 欧洲一级毛片 | 在线观看视频一区二区三区 | 国产精品久久久久久久免费大片 | 日韩中文字幕 | 久久国产亚洲 | 国产aⅴ | 日韩www| 久久精品国产一区二区三区 | 中文字幕一区在线观看视频 | 999久久久精品 | 在线男人天堂 | 久久精品久久久久久 | 亚洲高清成人在线 | 久久久久久久久久爱 | 91精品国产综合久久婷婷香蕉 | 激情小视频 | 性视频网 | 欧美二三区 | 国产综合精品一区二区三区 |