《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于WT588D模塊的語音播報(bào)系統(tǒng)設(shè)計(jì)
基于WT588D模塊的語音播報(bào)系統(tǒng)設(shè)計(jì)
來源:電子技術(shù)應(yīng)用2012年第1期
王春武1,2, 劉春玲1, 秦政坤1, 王廣德1, 王立忠1
1. 吉林師范大學(xué) 信息技術(shù)學(xué)院, 吉林 四平136000; 2. 東北大學(xué) 中荷生物醫(yī)學(xué)與信息工程學(xué)院, 遼寧 沈陽110004
摘要: 基于WT588D模塊設(shè)計(jì)了語音播報(bào)系統(tǒng),并詳細(xì)敘述了語音文件的制作、下載、硬件電路設(shè)計(jì)和編程設(shè)計(jì)過程。本系統(tǒng)整體結(jié)構(gòu)簡(jiǎn)單,音質(zhì)優(yōu)美,成本低廉,功能擴(kuò)展方便,可以作為一個(gè)基于WT588D模塊設(shè)計(jì)的模板應(yīng)用到多個(gè)相關(guān)領(lǐng)域中。
中圖分類號(hào): TP319
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)01-0115-03
The new voice broadcast system design based on the WT588D module
Wang Chunwu1,2, Liu Chunling1, Qin Zhengkun1, Wang Guangde1, Wang Lizhong1
1. College of Information and Technology, Jilin Normal University, Siping 136000, China; 2. Sino-Dutch Biomedical and Information Engineering School,Northeastern University, Shenyang 110004, China
Abstract: The new voice broadcast system based on the WT588D module is designed,it gives a detailed description to optimize design of software and hardware.This system has the advantages of simple integral structure, beautiful sound, low cost, convenient function expansion, and the system can be used as a template based on the WT588D modular bing applied in many related fields.
Key words : WT588D module; voice broadcast system; MPC82G516 microcontroller

    語音播報(bào)系統(tǒng)在兒童玩具、計(jì)算器、學(xué)習(xí)機(jī)、迎賓器、公交報(bào)站以及智能儀器儀表等設(shè)備中得到廣泛應(yīng)用。以往的語音播報(bào)系統(tǒng)中通常采用ISD系列的語音模塊,其缺點(diǎn)是價(jià)格較高,電路設(shè)計(jì)較復(fù)雜,控制方式不夠靈活,且常常因?yàn)樵诰€錄音會(huì)引入很強(qiáng)的噪聲,嚴(yán)重影響放音效果。而本文使用的WT588D模塊性價(jià)比較高,存儲(chǔ)容量大,使用專用下載軟件能夠在線燒寫音頻文件,操作極其方便,并支持6 kS/s~20 kS/s采樣率的音頻加載,可以無損展現(xiàn)音頻信息。

1 WT588D模塊簡(jiǎn)介
    WT588D模塊是廣州創(chuàng)科有限公司與臺(tái)灣華邦公司共同研發(fā)的集單片機(jī)、語音電路、SPI-Flash存儲(chǔ)器于一體的可編程語音系統(tǒng)。該語音系統(tǒng)支持6 kS/s~22 kS/s采樣頻率的音頻,具有220個(gè)可控制的語音地址,且每個(gè)地址還可以分成128段管理。配合WT-APP上位機(jī)操作系統(tǒng)軟件和專用的USB下載器,可以隨意設(shè)置系統(tǒng)的控制方式、語音地址和分段信息,支持語音信息在線燒錄。
    WT588D模塊支持MP3控制模式、按鍵控制模式、并口模式、一線串口模式及三線SPI模式。模塊內(nèi)部集成了DSP高速音頻處理器,內(nèi)置13 bit數(shù)模轉(zhuǎn)換器以及12 bit PWM輸出方式,可以無損地展現(xiàn)音頻信息。PWM輸出方式可以直接驅(qū)動(dòng)0.5 W/8 Ω揚(yáng)聲器,無需額外的驅(qū)動(dòng)電路[1]。
2 語音播報(bào)系統(tǒng)設(shè)計(jì)
2.1 語音文件的提取

    語音文件的提取有2種常用方法:(1)從錄制的文件中提取;(2)利用文字轉(zhuǎn)語音軟件提取。
    從錄制的文件中提取語音的步驟為:首先通過錄音軟件或通過手機(jī)錄制wav格式的音頻文件(例如包括0~9、時(shí)、分、秒等信息),然后打開GoldWave音頻編輯軟件,在原始wav格式文件中找到要截取的語音段,通過鼠標(biāo)選擇復(fù)制粘貼到新文件中即可。在該軟件中還可以對(duì)音頻進(jìn)行合并、降噪、濾波等特效處理。
    利用SoundToWav文字轉(zhuǎn)語音軟件,使得音頻文件提取更方便。該軟件利用TTS(Text To Speech)即語音合成技術(shù),可以將任意文字轉(zhuǎn)換成語音文件。為了得到較好的音質(zhì),采用了ChineseMandarinVoice語音引擎,該引擎的中文女聲音色較好,基本接近真人發(fā)聲水平。在SoundToWav軟件中選擇該語音引擎并選中按行分割文件方式,輸入要轉(zhuǎn)換的文字信息,點(diǎn)擊轉(zhuǎn)換即可生成音頻文件。
    以上兩種方法中,第一種方法的真人錄制語音更自然生動(dòng)更具有感染力,但容易引入噪聲干擾,音效相對(duì)較差些。而文字轉(zhuǎn)語音噪聲低、語音清晰、音質(zhì)好、操作方便,但是由于采用的是TTS語音合成方式,聲音缺少飽滿,缺乏真人的朗讀效果。
2.2 系統(tǒng)硬件設(shè)計(jì)
    本文選擇了WT588D模塊的SPI三線連接方式。為說明對(duì)語音模塊的控制過程,以完成播報(bào)當(dāng)前按鍵次數(shù)的功能為例。圖1為系統(tǒng)框圖,包括單片機(jī)最小系統(tǒng)、一個(gè)獨(dú)立按鍵、WT588D語音模塊和與其配套使用的下載接口。在設(shè)計(jì)中,需要先通過WT588D VoiceChip上位機(jī)軟件,將已經(jīng)提取的音頻文件下載到SPI-Flash存儲(chǔ)器的相應(yīng)地址段,并記錄好地址與語音的對(duì)照表,方便放音時(shí)進(jìn)行地址調(diào)用。圖2為系統(tǒng)電路圖,由于語音模塊供電的特殊要求,通過AMS1117模塊完成5 V~3 V的電壓轉(zhuǎn)換;通過PWM直接驅(qū)動(dòng)方式連接0.5 W/8 Ω揚(yáng)聲器;通過發(fā)光二極管觀察語音芯片的忙信號(hào)狀態(tài);單片機(jī)采用獨(dú)立按鍵方式。

2.3 系統(tǒng)軟件設(shè)計(jì)
    三線串口控制模式由片選CS、時(shí)鐘SCK和數(shù)據(jù)DATA組成,時(shí)序仿照標(biāo)準(zhǔn)SPI通信方式[2],具體時(shí)序如圖3所示。

    采用上位機(jī)軟件對(duì)SPI-Flash存儲(chǔ)器25PXX燒寫語音程序時(shí),選擇三線串口控制模式。語音模塊的P01口被定義為DATA數(shù)據(jù)口,P02為CS片選口,P03為CLK時(shí)鐘口,單片機(jī)通過3個(gè)控制口對(duì)WT588D語音模塊進(jìn)行控制。三線串口控制模式下其他的I/O口均無效。P17端為BUSY忙信號(hào)輸出端,可設(shè)置為播放狀態(tài)LED點(diǎn)亮和播放狀態(tài)LED熄滅。SPI-Flash存儲(chǔ)器25PXX的電壓范圍要保證在2.8 V~3. 5 V之間,VDD-SIM為WT588D語音芯片的串口電源管理輸入端,將25PXX的VCC連接到此端,可自動(dòng)平衡WT588D與25PXX之間的串口電壓。PWM輸出端禁止接電容到地或直接接地,系統(tǒng)工作為VDD=5 V,VCC=3.3 V。
    基于SPI通信時(shí)序[3-4]編寫如下通信子函數(shù),根據(jù)參數(shù)address的值可以播放對(duì)應(yīng)的語音段(注意傳數(shù)時(shí)低位在前)。
void send_adr(unsigned  char  address)
{  
        unsigned  char  i;
        RESET=0;
        delay1ms(3);
        RESET=1;
        delay1ms(17);                                            /* 17ms*/
        CS=0;
        delay1ms(2);
        for(i=0;i<8;i++)
         {
           SCLK=0;
           If(address&1)                  /* low post before high*/
            DATA=1;
           else
            DATA=0;
           address >>=1;
           delay1us(50);
           SCLK=1;
           delay1us(50);
            }
        CS=1;
}
     主函數(shù)完成對(duì)獨(dú)立按鍵的掃描過程,其中delay1ms(10)的作用為延時(shí)去抖動(dòng),key_mark為鍵標(biāo)志,可以實(shí)現(xiàn)按鍵的一次響應(yīng)[5]。

 


void main(void)
{
      while(1)
      {
             if(!set&&!key_mark)
         {
                delay1ms(10);
            if(!set)
            {
                  key();
                  key_mark=1;
        }    
    }
    else if(set)
        key_mark=0;
}
    按鍵響應(yīng)函數(shù)key()可實(shí)現(xiàn),每次有鍵按下后,計(jì)數(shù)變量n++一次,通過對(duì)n值判斷進(jìn)行語音播報(bào)。當(dāng)n為10以內(nèi)數(shù)字時(shí),直接播放n號(hào)段的語音;當(dāng)n介于10~20之間時(shí),先播放&lsquo;10&rsquo;的語音再播放個(gè)位的語音;當(dāng)n介于20~100之間時(shí),先播放十位數(shù)字的語音,再播放&lsquo;10&rsquo;的語音,最后播放個(gè)位的語音。
    void key()
         { n++;                            //Number keys
         if(n<11)
                  send_adr(n);      
        else if(n>10&n<20)
        {            
            send_adr(10);                  //the voice of ten
            while(!BUSY);           //waiting for BUSY=1
            if(n%10)
              send_adr(n%10);                         // units&prime;digit
    }
    else
    {
            send_adr(n/10);                      // tens&prime;digit
        while(!BUSY);
            send_adr(10);
        while(!BUSY);
        if(n%10)
            send_adr(n%10);
    }
    while(!BUSY);      
}  
    本文以單片機(jī)為控制核心,詳細(xì)描述了使用WT588D模塊播報(bào)語音信息的具體實(shí)現(xiàn)過程,包括語音文件提取、硬件電路設(shè)計(jì)、通信協(xié)議分析、按鍵掃描、語音播報(bào)地址拆分等部分。與采用ISD系列語音芯片相比,WT588D模塊的性價(jià)比較高,音質(zhì)較好,易于分段管理,能夠提供豐富的工作方式,給系統(tǒng)設(shè)計(jì)帶來了較大的靈活性。本系統(tǒng)整體結(jié)構(gòu)簡(jiǎn)單、音質(zhì)優(yōu)美、成本低廉、功能擴(kuò)展方便,可以作為基于WT588D模塊設(shè)計(jì)的模板應(yīng)用到多個(gè)相關(guān)領(lǐng)域,并依據(jù)本文稍加修改即可進(jìn)行功能擴(kuò)展。
參考文獻(xiàn)
[1] 廣州市唯創(chuàng)科技有限公司.WT588D08/16使用資料[EB/OL]. [2011-07-22] http://www.w1999c.com/UploadFiles/2011311155241593.pdf.
[2] 徐博,郭秋敏.基于SPI協(xié)議的音頻流解碼系統(tǒng)的研究與設(shè)計(jì)[J].工礦自動(dòng)化,2011,34(1):45-49.
[3] 劉玉瓊.基于WT588D語音提示系統(tǒng)設(shè)計(jì)[J].企業(yè)科技與發(fā)展,2010,26(22):99-102.
[4] 裘有斌,張國(guó)忠,陳豐偉,等.基于ISD4004的家庭語音報(bào)警服務(wù)系統(tǒng)的設(shè)計(jì)[J].電子制作,2008,16(2):40-42.
[5] 王春武,李巖,孟祥英,等.C51中對(duì)按鍵的處理方法[J].吉林師范大學(xué),2007(4):86-87.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。