新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 文字轉發音單片處理器WTS701的原理及應用

        文字轉發音單片處理器WTS701的原理及應用

        作者: 時間:2005-09-28 來源:網絡 收藏

        摘要:WTS702是華邦公司推出的內建喇叭驅動功能的“音”單芯片集成電路。該芯片將連續運算法與華邦專有的多層次儲存技術相結合,從而實現了真正將“音”的完整功能。文中介紹了該芯片的及典型,給出了Cygnal F120MPU與的接口電路,并根據相應的芯片指令給出了其控制軟件的代碼程序。

        關鍵詞:音;;C51語言;

        1 概述

        WTS701是華邦電子推出的第一顆“文字轉發音”(text-to-speech)單芯片。WTS701使用真人發音為樣本,從而確保了所輸出的發音是清晰的真人發音,而不會像計算機合成聲音般不自然,因此,通過該芯片將文字轉換成的發音更自然、真實、悅耳。

        WTS701單芯片解決方案將連續運算法(concat enation algorithm) 與華邦專有的多層次儲存技術(Multi-Level Storage,MLS) 相結合。WTS701單芯片內建喇叭驅動功能,不需要微處理器或個人計算機即可運作,因而可廣泛于無線產品上。舉凡電子郵件的閱讀、實時簡訊、網站、新聞、天氣、運動、股價等信息,或是電子商務訊息傳遞及衛星導航系統的語音說明,皆可使用此款IC將文字轉換成為語音,以聽覺代替視覺來讀取。此外,WTS701單芯片處理器還可以運用在學習輔助教材、視障輔助教材、電子書、玩具及其它娛樂產品上。

        2 引腳排列及功能

        WTS701采用56腳TSOP封裝。其引腳排列如圖1所示,各引腳的功能說明如表1所列。

        表1 的引腳功能

        引腳號 引腳名稱 I/O

        功 能

        2,36,44 VSSA G 模擬地
        3 VCLK I CODEC主頻時鐘
        4 VFS I CODEC同步信號
        5 VDX O CODEC數據輸出
        6 MISO O SPI輸出方式,主入從出
        7 XTAL2 O 外接時鐘輸出
        8 XTAL1 I 外接時鐘輸入
        9,10 VSSD G 數據地
        11,12 VCCD P 數據電源
        13 INT O 中斷輸出
        14 MOSI I SPI輸出方式,主出從入
        15 SS I SPI輸出方式,從方選擇
        16 SCLK I SPI串口時鐘輸入
        25 CS I WTS701片選
        26 R/B O 數據傳輸空閑或忙引腳
        27 RESET I 復位
        40 ATTCAP I/O 自動靜噪,與模擬地之間連接4.7μF電容
        42 SP- O 差分負極揚聲器輸出
        46 SP+ O 差分正極揚聲器輸出
        48 VCCA OP 模擬電源
        52 AUXIN I 模擬輸入
        54 AUXOUT O 模擬輸出
        1,17-24,28-35,37-39,
        41,43,45,47,49-51,
        53,55-56
        NC  懸空

        特性

        3.1 芯片工作參數

        ●采用2.7V~3.3V工作電壓。

        ●其I/O引腳可耐3V~5V電壓。

        ●功耗低,工作模式時的電流為35μA,等待模式時為1μA。

        ●工作溫度范圍:-40℃~+85℃。

        ●采用模擬音頻輸出,可外接8Ω揚聲器。

        ●發音語速可調。

        ●可對ASCII碼或Unicode碼進行文字轉發音。

        ●支持英語男、女性發音和中文女性發音。

        3.2 存儲單元和SPI傳輸格式

        該芯片內含2組內存數組:其一為語音數據庫所用,另一則為處理核心程序所用。有1組模擬/數字轉換器負責通過音效PCM輸出音效,另有1組揚聲器驅動線路可做為模擬輸出。WTS701支持ASCII碼的文字輸入(國語則需使用Unicode編碼文字),并可通過串行SPI接口輸入,然后將其轉換為語音并通過模擬端口輸出,當然,也可輸出至數字CODEC。WTS701芯片的系統工作流程框圖如圖2所示。

        WTS701的傳輸協議采用SPI方式,傳輸格式如圖3所示。

        4 典型應用

        圖4所示是WTS701與Cygnal F120微控制器的接口電路。系統的應用軟件代碼程序見下文。當微處理器Cygnal F120與WTS701以及相應的外圍電路連接完畢后,便可運行該應用軟件,揚聲器將發出“大家好”的問候語。

        #include"c:\cygnaldefiles\c51\inc\c8051f120.h"

        #define byte unsigned char

        #define uint unsigned int

        #define SYSCLK 22118400 //系統時鐘外部晶體

        data byte SFRPAGE_SAVE;

        idata byte status[23];??

        sbit cs =P2^0;

        sbit ss =P2^1;

        sbit mosi=P2^2;?

        sbit sclk=P2^3;

        sbit miso=P2^4;

        sbit rdy =P2^5;

        sbit bint=P2^6;

        sbit res =P2^7;

        void SYSCLK_Init(void)

        { data int i;

        // 延時計數器

        SFRPAGE_SAVE=SFRPAGE;

        SFRPAGE=CONFIG_PAGE;

        OSCXCN=0x67; // 啟動外部22.1184MHz晶振

        for(i=0;i<255;i++); ? // 等待振蕩器啟動

        while(!(OSCXCN&0x80?)); // 等待晶體振蕩器穩定

        CLKSEL=0x01;

        OSCICN=0x00; // 選擇外部振蕩器為系統時鐘源并使能丟失時鐘檢測器

        SFRPAGE=SFRPAGE_SAVE;

        }

        void PORT_Init(void)

        { SFRPAGE_SAVE=SFRPAGE;

        SFRPAGE=CONFIG_PAGE;

        XBR0=0x04; // 使能UART0

        XBR1=0x14; // 使能INT0和INT1

        XBR2=0x44; // 使能數據交叉開關和弱上拉

        P2MDOUT|=0xff; // 允許為推挽輸出

        SFRPAGE=SFRPAGE_SAVE;

        }

        void spi_begin()

        { mosi=1;

        delay(1);

        sclk=1;

        delay(1);?

        ss=1;

        delay(1);?

        ss=0;

        }

        byte spi_send_byte(byte d)

        ?{ idata byte i;

        idata byte result=0;

        while(!rdy); ?

        mosi=1; miso=1;

        for(i=0;i<8;i++)

        { sclk=0;

        delay(5);?

        mosi=(bit)(d&0x80);?

        d=d<<1;

        delay(5);?

        sclk=1;

        delay?5??

        result*=2?

        if(miso) result++;

        }

        return(result);?

        }

        void spi_end()

        { mosi=1;

        delay(1);?

        sclk=0;

        delay(1);?

        ss=0;

        delay(1);?

        ss=1;

        }

        void delay(uint delx)

        { idata uint i=0;

        while(i<delx)

        { i++;} ?

        }

        main()

        { WDTCN=0xde; // 禁止看門狗定時器

        WDTCN=0xad;

        SYSCLK_Init();? // 初始化振蕩器

        PORT_Init(); // 初始化數據交叉開關和通用IO口

        cs=0; res=1; delay(10); res=0; delay(10);?

        spi_begin();

        status[0]=spi_send_byte(0x14);

        status[1]=spi_send_byte(0x00);?

        spi_end();??

        delay(500); //ready to accept commands but not powered up

        spi_begin();

        status[2]=spi_send_byte(0x02);

        status[3]=spi_send_byte(0x00);?

        spi_end();

        delay(500); //send the power up command

        spi_begin();

        status[4]=spi_send_byte(0x06); //send read interrupt command

        status[5]=spi_send_byte(0x00);

        status[6]=spi_send_byte(0x00);?

        status[7]=spi_send_byte(0x00);?

        spi_end();?

        delay(500); //return the status of the wts701,now be ready for conversion

        spi_begin();?

        spi_send_byte(0x51);

        spi_send_byte(0x00);?

        spi_end();

        delay(500); //svol set vol register command

        spi_begin???

        spi_send_byte(0x52);?

        spi_send_byte(0x07);?

        spi_end();

        delay(500);//svol set vol register command

        spi_begin();

        status[8]=spi_send_byte(0x81);?

        status[9]=spi_send_byte(0x00);?

        status[10]=spi_send_byte(0x10);? //^P

        status[11]=spi_send_byte('D'); //“大”的拼音

        status[12]=spi_send_byte('A'??

        status[13]=spi_send_byte('4');?

        status[14]=spi_send_byte('J');? //“家”的拼音

        status[15]=spi_send_byte('I');?

        status[16]=spi_send_byte('A');?

        status[17]=spi_send_byte('1');?

        status[18]=spi_send_byte('H');? //“好”的拼音

        status[19]=spi_send_byte('A');?

        status[20]=spi_send_byte('0');?

        status[21]=spi_send_byte('3');?

        status[22]=spi_send_byte(' '); //結束符

        spi_end();?

        while(1); ?

        }

        5 結束語

        實際使用時,可利用華邦WTS701語音芯片的預錄人聲方式來讓文字轉換后的語音更具有人情味。現今市場上的TTS產品多半采用計算機合成的語音模式,WTS701的問世則可把一般文字轉化為真人發音的語音輸出,從而創造一個更具人性化的語音環境。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 无极县| 蒙城县| 通海县| 广德县| 安图县| 龙里县| 铜山县| 宣汉县| 河曲县| 玉山县| 达孜县| 错那县| 砚山县| 伊春市| 连云港市| 浮梁县| 海阳市| 阿鲁科尔沁旗| 岫岩| 会泽县| 台江县| 惠州市| 巨野县| 广宗县| 廉江市| 吴江市| 杂多县| 修水县| 哈密市| 汤阴县| 城市| 杭州市| 小金县| 富锦市| 阳西县| 稻城县| 吉木萨尔县| 临湘市| 荔浦县| 新宁县| 永川市|