開發(fā)背景:
產(chǎn)品需要更換語音內(nèi)容一直能存在于生產(chǎn)端,而不能夠?qū)崿F(xiàn)產(chǎn)品在使用終端更換語音,從而實現(xiàn)產(chǎn)品的迭代升級。
實現(xiàn)原理:
既然是要能夠?qū)崿F(xiàn)單曲聲音的更換,那就需要規(guī)劃一個文件系統(tǒng)去記錄聲音的信息,單曲更換在實際的情況下存放著不是連續(xù)的音頻文件,這樣就需要一個音頻信息的存放區(qū)域。
WT588F34B是一款內(nèi)置了32Mbit Flash的大容量語音芯片,可以通過Flash燒寫器去更換語音文件。在唯創(chuàng)知音芯片F(xiàn)lash的操作中,一個扇區(qū)是4K,意味著是我們整個單曲更換的最小單位是4K,但是當客戶的音頻文件都是很小的時候,遠遠達不到4K,這樣大大浪費了我們Flash的空間,空間利用率大大降低,于是提出劃分為兩個部分,一個是支持單曲更換的音頻區(qū)域,一個是不支持單曲更換的音頻區(qū)域,由客戶來選擇單曲存放的音頻數(shù)量,這樣也就提升了一個空間利用率,可以存放更大、更多的音頻文件。為了保障這個扇區(qū)的可靠性,唯創(chuàng)知音還增加了一個Word,對這個扇區(qū)進行一個校驗。
那么要怎樣去播放這些離散的音頻文件呢?
其實做法也很簡單,創(chuàng)建一個扇區(qū),里面記錄的便是每一個扇區(qū)時那一個音頻文件的數(shù)據(jù),在播放時,需要到這個扇區(qū)中尋找想要播放的地址,找到對應地址再進行一個尋址的計算,找到音頻存放的扇區(qū),開始進行播放,當這個扇區(qū)播放結(jié)束時,進行下一個扇區(qū)的地址尋找,這樣就能夠?qū)崿F(xiàn)離散扇區(qū)的連續(xù)播放,當播放的問題解決了之后,就是一個數(shù)據(jù)的更換了。
在上面提出了播放的原理后,數(shù)據(jù)更換的方式比較直白,只需要在記錄單曲音頻的扇區(qū)找到想要更換的地址的對應的扇區(qū),對該扇區(qū)的擦除和寫入,如果現(xiàn)有的音頻數(shù)據(jù)長度超過原來的,那便在記錄單曲音頻的扇區(qū)尋找一個無音頻數(shù)據(jù)的扇區(qū)進行寫入、不足原來的數(shù)據(jù)長度則需要對剩下的數(shù)據(jù)空間清空,這樣就是數(shù)據(jù)更換的原理。
但是在更換的過程中,遇到一個問題,F(xiàn)lash的寫入只能有一變?yōu)榱?,這就導致了無法隨意對記錄單曲音頻的扇區(qū)進行修改,必須先將這個扇區(qū)進行一個備份一份,4K的一個數(shù)據(jù)量,也不可能利用芯片的寄存器去存放這些數(shù)據(jù),于是有了一個新的想法,在FLASH中創(chuàng)造一個扇區(qū)去作為原來數(shù)據(jù)的一個備份區(qū),在數(shù)據(jù)更換的時候起到暫存的作用。
那么這個備份區(qū)的作用是不是僅僅如此呢?
答案是不止如此的!當數(shù)據(jù)更換時,如果遇到突發(fā)的情況,更換失敗了,那樣音頻數(shù)據(jù)必然是不完整的,按照原來的播放方式是不能正常播放,于是有了一個大膽的想法,在備份區(qū)備份的是不完整的扇區(qū),不對要更換的地址進行保存,然后在更換過程備份區(qū)備份好之后,對原先扇區(qū)進行一個“破壞”,這樣存在的數(shù)據(jù)校驗就不能通過,在原先扇區(qū)校驗通過不了的情況下,啟用備份區(qū),進行一個播放,這樣便保證了芯片能夠正常工作。
當然客戶執(zhí)行更換的操作時,并沒有這么麻煩,當然下面會講到這個。
芯片的功能和特點:
1.16位DSP語音芯片、32Mhz內(nèi)部振蕩;
2.工作電壓2.4~3.6V;
3.16bit的PWM/DAC輸出、可直接驅(qū)動8R 0.5W喇叭;
4.支持6K~32Khz的WAV文件;
5.客戶可以通過MCU或配套下載器在線更換芯片內(nèi)部語音內(nèi)容;
6.支持模擬SPI通訊;
7.支持最大4通道16K采樣率混音;
8.支持最高16通道m(xù)idi播放(8K采樣率);
9.具有硬件SPI接口、UART接口、IIC、內(nèi)置比較器等接口,可以為客戶定制各類功能。
10. 芯片主控程序和內(nèi)置存儲數(shù)據(jù)均可擦除再燒寫。
引腳功能圖:
SPI通信協(xié)議:
SPI是串行通訊協(xié)議,也就是說數(shù)據(jù)是一位一位的傳輸?shù)摹ISO引腳和MOSI引腳上的數(shù)據(jù)的MSB位必須與SPSCK的第一個邊沿同步,在SPI傳輸過程中,在同步時鐘信號周期開始時(上升沿)數(shù)據(jù)上線,然后在同步時鐘信號的下降沿時,SPI的接收方捕捉位信號,在時鐘信號的一個周期結(jié)束時(上升沿),下一位數(shù)據(jù)信號上線,再重復上述過程,先發(fā)高位,直到一個字節(jié)的8位信號傳輸結(jié)束。由此可以實現(xiàn)控制語音播放、停止、循環(huán)等。詳細說明可見下面介紹。
SPI控制模式由芯片CS、SCK和SI進行控制操作,每發(fā)一個字節(jié)數(shù)據(jù)前,CS先拉低4ms至20ms,推薦使用5ms,然后再發(fā)送CLK,接收數(shù)據(jù)高位在先,在時鐘的下降接收數(shù)據(jù)。時鐘周期介于160us~2ms之間,推薦周期使用200us。發(fā)數(shù)據(jù)時先發(fā)高位,再發(fā)低位。數(shù)據(jù)中的指令根據(jù)指令表來發(fā)送
1)播放命令碼:
2)更換指令碼
3)Flash 控制碼
應用電路
更換協(xié)議說明
bin文件制作或T3Z文件制作
制作bin文件:登陸網(wǎng)頁上位機網(wǎng)址后,加載要播放的語音文件或使用文字轉(zhuǎn)換音頻功能加載語音后制作bin文件。WT588網(wǎng)頁制作客戶登錄網(wǎng)址:
http://WT588f.waytronic.com:8083/user/register
bin文件制作步驟可參考《WT588F網(wǎng)頁上位機操作說明2020-8-31》或視頻解說,可聯(lián)系業(yè)務員提供。
訪問API接口,可加載本地語音或采用文字轉(zhuǎn)語音功能生成語音文件,將語音文件轉(zhuǎn)換為bin文件或T3Z文件(可用于單段語音修改),可用于單段語音或全部語音的遠程更換。
接口網(wǎng)址:
http://api.wt588f.waytronic.com:8083/doc.html?plus=1&cache=1
以下是API接口的使用流程:
應用場景
唯創(chuàng)知音的WT588F34B,能夠支持大容量的語音存放,并且能過更換語音,適用于需要頻繁更改語音播報的產(chǎn)品,能夠?qū)崿F(xiàn)在線更新語音包,增加產(chǎn)品活力。
1、公交車到站提醒系統(tǒng)
使用WT588F34芯片去進行到站語音的播報,不僅可以存放更多的一個公交站地點語音,而且在不同的場景下,比如節(jié)日祝福、防疫宣傳等等,可以通過MCU去進行語音更換,進行一個適應的語音播報。不需要繁瑣的將整個設(shè)備拆除更新語音。
2、打卡設(shè)備
現(xiàn)在市面上存在的高端打卡設(shè)備往往具有播報打卡人的名字,而中低端設(shè)備更多的是使用文字顯示,而我們的WT588F34B正好可以在中低端設(shè)備上增加語音播報,增加產(chǎn)品亮點,競爭力。錄入、修改打卡人,MCU同步對我們WT588F34B芯片的語音更換,達到正常的打卡人播放。
聯(lián)系方式:4008-122-919