性插爽视频欧美_久久国产精品视频_精品国产美女福到在线不卡f_国语自产精品视频_九色精品视频在线观看_国内精品视频九九九九_中文成人久久久久影院免费观看_国产成人综合色在线观看网站_国产精品亚洲αv天堂无码_18禁无遮挡羞羞污污污污免费

歡迎訪問深圳唯創(chuàng)知音電子有限公司官網(wǎng)!| 全國統(tǒng)一服務(wù)熱線:4008-122-919

WT3000T語音合成芯片在收款機中的應(yīng)用 設(shè)計介紹

發(fā)布時間:2024-06-11 10:01 瀏覽次數(shù):

image.png

 


目錄

一.方案背景描述

二.方案系統(tǒng)組成

2.1系統(tǒng)主要功能

2.2系統(tǒng)結(jié)構(gòu)框圖

2.3主要芯片介紹

2.4 引腳描述

2.5 WT3000T M01模塊

三、協(xié)議命令格式

3.1 GB 2312編碼簡介

3.2 UTF8編碼簡介

四、語音合成功能使用方法

4.1 簡單調(diào)用方式

4.2 標準調(diào)用方式

4.3查詢芯片工作狀態(tài)的方法

4.4固定語音功能

4.5 測試軟件

五、 串口控制示例代碼

5.1 函數(shù)聲明,結(jié)構(gòu)體聲明

5.2 串口接收數(shù)據(jù)處理

5.3 根據(jù)串口協(xié)議發(fā)送數(shù)據(jù)

 

一.方案背景描述

隨著科技的飛速發(fā)展,人工智能和語音識別技術(shù)在各個領(lǐng)域都得到了廣泛應(yīng)用。其中,文本轉(zhuǎn)語音(TTS)技術(shù)以其獨特的優(yōu)勢,在收款機語音播報收銀領(lǐng)域發(fā)揮著越來越重要的作用。本文將深入探討TTS技術(shù)在收款機播報收銀中的具體應(yīng)用,包括技術(shù)概述、播報需求、應(yīng)用優(yōu)勢、內(nèi)容定制、用戶體驗提升以及未來的發(fā)展趨勢與展望。

1.TTS技術(shù)概述

TTS,即文本轉(zhuǎn)語音技術(shù),是一種能夠?qū)⒂嬎銠C中的文本信息轉(zhuǎn)化為可聽懂的語音輸出的技術(shù)。它基于先進的語音合成算法,結(jié)合自然語言處理技術(shù)和語音學(xué)知識,能夠生成流暢自然的語音。在收款機播報收銀中,TTS技術(shù)能夠?qū)⒔灰仔畔崟r轉(zhuǎn)化為語音,方便顧客了解交易詳情。

2.收款機播報需求

在商場、超市等零售場所,收款機播報收銀的需求日益凸顯。通過語音播報,顧客可以無需查看屏幕即可了解交易金額、找零等信息,大大提高了購物體驗和效率。同時,對于視力不佳或不便查看屏幕的顧客來說,語音播報更是提供了極大的便利。

3.TTS應(yīng)用優(yōu)勢

TTS技術(shù)在收款機播報收銀中的應(yīng)用具有以下優(yōu)勢:首先,實時性強,能夠?qū)崟r將交易信息轉(zhuǎn)化為語音輸出;其次,準確度高,能夠確保播報內(nèi)容的準確性;再次,靈活性好,可以根據(jù)實際需求定制播報內(nèi)容;最后,用戶體驗佳,通過語音播報提高了顧客購物的便捷性和舒適性。

4.播報內(nèi)容定制

在TTS應(yīng)用中,播報內(nèi)容的定制是關(guān)鍵一環(huán)。收款機可以根據(jù)實際需求和場景設(shè)置不同的播報內(nèi)容,包括交易金額、支付方式、找零情況、優(yōu)惠信息等。同時,還可以根據(jù)顧客的偏好和需求進行個性化定制,提高播報內(nèi)容的針對性和實用性。

5.用戶體驗提升

通過應(yīng)用TTS技術(shù),收款機播報收銀可以顯著提升用戶體驗。顧客在購物過程中無需分心查看屏幕或詢問收銀員,就能獲取到完整的交易信息。此外,語音播報還可以配合其他交互方式,如語音識別、觸摸屏等,提供更加便捷、智能的購物體驗。

TTS(Text To Speech,從文本到語音)技術(shù)作為人機對話的一部分,近年來隨著人工智能的發(fā)展得到了顯著的進步。TTS技術(shù)的應(yīng)用范圍廣泛,包括電子郵件的閱讀、IVR系統(tǒng)的語音提示等,并在各個行業(yè)中發(fā)揮著重要作用。關(guān)于TTS技術(shù)的發(fā)展前景,有以下幾個方面的趨勢:

更高的自然度和真實感:隨著深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)技術(shù)的不斷進步,TTS系統(tǒng)能夠?qū)W習(xí)自然語言中的各種聲音和音調(diào),生成的語音將更接近人類的語音特征,從而提高語音的自然度和真實感。

個性化定制:TTS系統(tǒng)有望通過學(xué)習(xí)用戶的語音、音調(diào)、口音等特征,生成更符合用戶需求的語音。這將使得語音合成技術(shù)更加貼近用戶的個性化需求,從而提高用戶體驗。

多語言支持:隨著跨語言翻譯和多語言交流的需求不斷增加,TTS系統(tǒng)將需要支持更多的語言和口音。這將推動TTS技術(shù)在多語言場景下的應(yīng)用和發(fā)展。

多樣化的語音風格和情感表達:TTS系統(tǒng)將進一步提供多樣化的語音風格和情感表達能力。用戶可以根據(jù)個人喜好和需求選擇不同的語音風格,如年齡、性別、口音等。

廣泛的應(yīng)用領(lǐng)域:除了傳統(tǒng)的應(yīng)用領(lǐng)域,TTS技術(shù)還將進一步應(yīng)用于虛擬人物、機器人等場景中,為這些領(lǐng)域帶來更加真實的語音交互體驗。

綜上所述,TTS技術(shù)的發(fā)展前景十分廣闊,未來將在提高語音質(zhì)量和自然度、個性化定制、多語言支持以及多樣化應(yīng)用等方面取得更多的突破和創(chuàng)新。這將為用戶帶來更加便捷、高效和真實的語音交互體驗,推動人機交互技術(shù)的發(fā)展。

綜上所述,TTS技術(shù)在收款機播報收銀中具有重要的應(yīng)用價值和發(fā)展前景。通過不斷優(yōu)化和完善技術(shù),我們可以期待它在未來為零售行業(yè)帶來更多的創(chuàng)新和變革。本方案采用WT3000T芯片增加語音功能。不但可用耳朵聽語音播報收款的情況等(依用戶需求設(shè)置),而且可以播放音樂或英語口語美文。解決了在不同播報要求下語音占用大量資源空間的問題??梢詫崿F(xiàn)低成本低功耗的文本轉(zhuǎn)語音,支持中英文兩種功能,實現(xiàn)播報語音自由配置無需通過升級方式替換語音,給方案商提供性價比非常高的解決方案。

WT3000T8是一款功能強大的高品質(zhì)語音芯片,采用了高性能32位處理器、最高頻率可達240MHz。WT3000T8高集成度的語音合成芯片,可實現(xiàn)中文、英文字母語音合成;并集成了語音編碼、解碼功能,可支持用戶進行語音合成和語音播放,具有低成本、低功耗、高可靠性、通用性強等特點,現(xiàn)有WT3000T8-32N  QFN32(體積小4*4MM)的封裝芯片。帶有地址播放、插播、單曲循環(huán)、所有曲目循環(huán)、隨機播放等功能。31級音量可調(diào)、最大可以支持外掛128Mbit的Flash。

深圳唯創(chuàng)知音電子有限公司,位于廣東省深圳市寶安區(qū),1999年成立于廣州。歷經(jīng)20多年的發(fā)展,公司已成為集研發(fā)、生產(chǎn)、銷售和服務(wù)于一體的,專注于語音技術(shù)研究、語音產(chǎn)品方案設(shè)計及控制等軟、硬件設(shè)計的國家高新技術(shù)企業(yè)。在北京、廣州、武漢、上海等地擁有多家子公司,構(gòu)筑了面向全國的經(jīng)營和服務(wù)網(wǎng)絡(luò),涵蓋家電、醫(yī)療器械、安防報警、汽車電子、多媒體、通信、電話錄音、工業(yè)自動化控制、玩具及互動消費類產(chǎn)品等領(lǐng)域,公司的集成芯片和模塊主要有:播放類、錄音類、MP3類、藍牙WiFi類、語音識別類。唯創(chuàng)知音已經(jīng)形成標準的品質(zhì)保障流程和高效的服務(wù)體系。芯片資料可向公司官網(wǎng)或客服索取相關(guān)資料,如果有訂制需求,也可向客服咨詢,可提供更多的技術(shù)服務(wù)。

  公司成品線主要產(chǎn)品涵蓋有工地安全、電梯安全(語音廣告)、森林防火安全提示、垃圾分類提示、娛樂、店鋪迎賓等業(yè)務(wù)領(lǐng)域,涉及政府、工業(yè)、文教、交通、能源和企業(yè)等行業(yè)應(yīng)用。

  

二.方案系統(tǒng)組成

2.1系統(tǒng)主要功能

? 控制方式:UART(或者SPI),默認波特率9600;

? 上電默認不播放;具備BUSY狀態(tài)指示,上電默認BUSY播放時為低電平,不播放時為高電平(可發(fā)碼修改默認配置);

? 音頻輸出方式,樣品默認DAC輸出;

? 支持語音高品質(zhì)音頻格式,(8kbps~320kbps)聲音優(yōu)美,.MP3、.WAV格式;

? 支持指令隨機播放,無縫循環(huán)播放功能等;

? 最大可以支持128Mbit的Flash;

? 音量可調(diào),音量等級31級;

? 大功率IO驅(qū)動能力,最高可直接驅(qū)動32mA;

? 支持任意中文文本、英文字母的合成,并且支持中文與英文字母混讀,英文字母暫不支持使用標記實現(xiàn)變速變調(diào);

芯片支持任意中文、英文字母的合成,可以采用GB 2312編碼方式。每次合成的文本量最多可達2K字節(jié)。

芯片對文本進行分析,對常見的數(shù)字、號碼、時間、日期、度量衡符號等格式的文本,芯片能夠根據(jù)內(nèi)置的文本匹配規(guī)則進行正確的識別和處理。

? 支持多種控制命令

如合成文本、停止合成、暫停合成、恢復(fù)合成、狀態(tài)查詢、進入休眠模式、喚醒等。 控制器通過通訊接口發(fā)送控制命令可以對芯片進行相應(yīng)的控制。芯片的控制命令非常簡單易用,例如:芯片可通過參考對應(yīng)的指令說明即可實現(xiàn)播放提示音和中文文本合播放成,還可以通過標記文本實現(xiàn)對合成的參數(shù)設(shè)置。

? 支持多種方式查詢芯片的工作狀態(tài)

包括:查詢狀態(tài)管腳電平、通過讀芯片自動返回的工作狀態(tài)字、發(fā)送查詢命令獲得芯片工作狀態(tài)的回傳數(shù)據(jù)。

? 單芯片使用(使用內(nèi)置容量)時內(nèi)置語音需出廠前寫入。 


2.2系統(tǒng)結(jié)構(gòu)框圖

image.png

2.3主要芯片介紹

程序及模塊選型簡介

系列

功能代碼

通信方式

模塊選型

音頻輸出

功能說明

WT3000T系列

T001

UART(9600)

M01

DAC

僅支持內(nèi)置Flash播放,可存放30秒固定語音

 


2.4 引腳描述

芯片封裝管腳圖

 

image.png

 

 

 

PIN-NO.

名稱

功能說明

0

GND

芯片底部地(必須接地)

1

VMID

連接一個1uF外部電容到地

2

DACL

DAC左聲道音頻輸出

3

DACR

DAC右聲道音頻輸出

4

NC

保留此引腳懸空

5

P27

IO口

6

P26

IO口

7

P25

IO口

8

P24

IO口

9

P21

IO口

10

VCC

電源輸入

11

VREG

接一個1uF電容到地

12

P19

IO口

13

P18

IO口

14

P17

IO口

15

P16

IO口

16

VCM

參考電壓輸出,接一個0.1uF外部電容到地

17

XIN

18

XOUT

19

P37/SPI_DO

SPI Flash數(shù)據(jù)輸出

20

P36/SPI_CLK

SPI Flash時鐘

21

P35/SPI_DI

SPI Flash數(shù)據(jù)輸入

22

P34/SPI_CS

SPI Flash片選

23

ICEDAT/RX1

UART_RX,語音芯片數(shù)據(jù)接收

24

ICECLK/TX1

UART_TX,語音芯片數(shù)據(jù)發(fā)送

25

UART_RX

IO口

26

UART_TX

IO口

27

P01

Busy顯示

28

P00

IO口

29

P39

IO口

30

NC

保留此引腳懸空

31

VOUT

芯片內(nèi)部IO電源3.3V輸出,必須接106電容到地

32

AGND

模擬地

 

 

2.5 WT3000T M01模塊

管腳描述

image.png


 

接口

名稱

功能說明

1

5V

電源輸入(2.6-5V)

2

GND

電源地

3

TX

UART_TX,通信端口

4

RX

UART_RX,通信端口

5

MIC+

未啟用

6

MIC-

未啟用

7

SPK-

模塊內(nèi)部功放左聲道輸出

8

SPK+

模塊內(nèi)部功放右聲道輸出

 

注:MIC接口、天線、晶振部分為兼容其他型號及后續(xù)產(chǎn)品迭代升級預(yù)留使用,使用TTS功能時無需考慮這部分,使用串口、喇叭接口即可滿足調(diào)試。

 

三、協(xié)議命令格式

芯片內(nèi)置標準UART異步串口接口,默認波特率9600,屬于3.3V TTL電平接口。通訊數(shù)據(jù)格式是:起始位:1位;數(shù)據(jù)位:8位;奇偶位:無;停止位:1位。使用電腦串口調(diào)試助手,需要正確設(shè)置串口的參數(shù),設(shè)置如圖:

image.png

指令發(fā)碼格式

起始碼

幀長度

流水號

應(yīng)答標志

數(shù)據(jù)幀來源

N個命令信息

累加和校驗

結(jié)束碼

7E

見下文

見下文

見下文

見下文

見下文

見下文

EF

指令返回碼格式

起始碼

幀長度

流水號

應(yīng)答標志

數(shù)據(jù)幀來源

N個命令信息

累加和校驗

結(jié)束碼

7E

見下文

見下文

見下文

見下文

見下文

見下文

EF

注:執(zhí)行完每條寫命令之后,按照通信協(xié)議格式返回該命令相對應(yīng)的結(jié)果碼。

幀長度:2字節(jié),指幀長度+流水號+應(yīng)答標志+數(shù)據(jù)幀來源+N個命令信息+累加和校驗和的長度,幀長度高位在前低位在后;

流水號:1字節(jié),每次一幀數(shù)據(jù)自動加1,避免接收重復(fù)的數(shù)據(jù),相同流水號的數(shù)據(jù)為重復(fù)數(shù)據(jù)應(yīng)做丟棄;

應(yīng)答標志:1字節(jié),固定填00;

數(shù)據(jù)幀來源:1字節(jié),02為TTS芯片端,03為MCU芯片端;

N個命令信息:由N個命令信息組成,1個命令信息內(nèi)容為2字節(jié)命令+1字節(jié)數(shù)據(jù)長度+N字節(jié)數(shù)據(jù),單個命令信息最大支持255個字節(jié)數(shù)據(jù),但支持同時傳遞多個相同的命令攜帶不同信息(返回碼的此處信息與發(fā)碼的略微有區(qū)別,詳情見《WT3000Tx語音合成指令表》介紹);

累加和校驗:是指幀長度+流水號+應(yīng)答標志+數(shù)據(jù)幀來源+N個命令信息和的低字節(jié)。

3.1 GB 2312編碼簡介

GB 2312碼是中華人民共和國國家標準漢字信息交換用編碼,全稱《信息交換用漢字編碼字符集 基本集》,標準號為GB 2312-80(GB是“國標”二字的漢語拼音縮寫),由中華人民共和國國家標準總局發(fā)布,1981年5月1日實施。習(xí)慣上稱國標碼、GB碼,或區(qū)位碼。它是一個簡化字漢字的編碼,通行于中國大陸地區(qū)。新加坡等地也使用這一編碼。GB 2312-80收錄簡化漢字及一般符號、序號、數(shù)字、拉丁字母、日文假名、希臘字母、俄文字母、漢語拼音符號、漢語注音字母,共7445個圖形字符。其中漢字以外的圖形字符682個,漢字6763個。GB 2312-80規(guī)定,“對任意一個圖形字符都采用兩個字節(jié)(Byte)表示。每個字節(jié)均采用GB 1988-80及GB 2311-80中的七位編碼表示。兩個字節(jié)中前面的字節(jié)為第一字節(jié),后面的字節(jié)為第二字節(jié)?!绷?xí)慣上稱第一字節(jié)為“高字節(jié)”,第二字節(jié)為“低字節(jié)”。

識別類型

識別編碼范圍

備注

半角ASCII符號區(qū)

0x00——0x7F


全角符號區(qū)

0xA1A0——0xA3FE


漢字區(qū)

0xB0A1——0xF7FE

共6768個漢字

3.2 UTF8編碼簡介

UTF-8(8位元,UniversalCharacterSet/UnicodeTransformationFormat)是針對Unicode的一種可變長度字符編碼。它可以用來表示Unicode標準中的任何字符,而且其編碼中的第一個字節(jié)仍與ASCII相容,使得原來處理ASCII字符的軟件無須或只進行少部分修改后,便可繼續(xù)使用。因此,它逐漸成為電子郵件、網(wǎng)頁及其他存儲或傳送文字的應(yīng)用中,優(yōu)先采用的編碼。

UTF-8是一種變長字節(jié)編碼方式。對于某一個字符的UTF-8編碼,如果只有一個字節(jié)則其最高二進制位為0;如果是多字節(jié),其第一個字節(jié)從最高位開始,連續(xù)的二進制位值為的個數(shù)決定了其編碼的位數(shù),其余各字節(jié)均以10開頭。

UTF-8最多可用到6個字節(jié)。

1字節(jié) 0xxxxxxx

2字節(jié) 110xxxxx 10xxxxxx

3字節(jié) 1110xxxx 10xxxxxx 10xxxxxx

4字節(jié) 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

5字節(jié) 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

6字節(jié) 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

識別類型

識別編碼范圍

備注

全角符號區(qū)

單字節(jié)UTF8字符中的“對應(yīng)Unicode的0x00區(qū)的內(nèi)容”

雙字節(jié)UTF8字符中的“對應(yīng)Unicode的部分00區(qū)和全部03區(qū)的符號”


漢字區(qū)

三字節(jié)UTF8字符中的“對應(yīng)Unicode的:20區(qū)以上的符號+漢字”

共20902個漢字

 

四、語音合成功能使用方法

4.1 簡單調(diào)用方式

簡單調(diào)用是指用戶不用關(guān)心芯片當前的工作狀態(tài),只需要發(fā)送文本到芯片合成為語音輸出。

在簡單調(diào)用情況下,上位機只要與芯片之間建立起UART通信方式,即可發(fā)送合成命令來實現(xiàn)文本的合成,上位機不需要判斷芯片的回傳數(shù)據(jù)或狀態(tài)引腳的輸出。

注意:如前一幀文本還沒有合成完,就再次發(fā)送文本到芯片會中斷前次合成,而執(zhí)行新的合成。

4.2 標準調(diào)用方式

若上位機需要確保上次文本被完整合成之后,再發(fā)送合成命令幀合成下一段文本,則需要通過回傳確定芯片的工作狀態(tài)。具體方法舉例如下:應(yīng)用中需要合成的文本為5k字節(jié),超過了WT3000T8芯片一個命令幀所能容納的最大文本長度(文本最多支持2016個字節(jié)),這時需要分多次給WT3000T8芯片發(fā)送文本信息。程序過程如下:

1、上位機先給WT3000T8芯片發(fā)送一個文本合成命令幀,攜帶不超過2016個字節(jié)的文本;

2、上位機等待WT3000T8芯片自動返回的回傳信息,直到收到回傳數(shù)據(jù),說明前面的

文本已合成完畢;或使用查詢芯片的狀態(tài)引腳、發(fā)送查詢命令的方法,確認上一幀文本合成完畢。

3、上位機向芯片再次發(fā)送一個文本合成命令幀,發(fā)送出剩下的文本,重復(fù)123流程直至所有數(shù)據(jù)發(fā)完。

4.3查詢芯片工作狀態(tài)的方法

通過硬件和軟件兩種方式查詢WT3000T8芯片的工作狀態(tài)。

硬件方式:通過查詢輸出引腳BUSY的電平,來判斷芯片的工作狀態(tài)。當BUSY處于低電平時,表明芯片正在合成文本;當BUSY處于高電平時,表明芯片處于空閑狀態(tài)。

軟件方式:通過發(fā)送狀態(tài)查詢命令幀來查詢芯片的工作狀態(tài)。當收到上位機發(fā)送的狀態(tài)查詢命令幀后,芯片會自動向上位機發(fā)送當前芯片狀態(tài)的回傳。上位機根據(jù)芯片狀態(tài)的回傳數(shù)據(jù)來判斷當前芯片是處于空閑狀態(tài)還是文本合成狀態(tài)。

4.4固定語音功能

WT3000T-T001預(yù)留了30秒存放固定語音,對批量采購的客戶可提供提示音添加、定制的服務(wù)。

注意:如有添加提示音的需求,需要提交與商務(wù)人員溝通,提供音頻和填寫相應(yīng)的資料。

固定語音的特性:

固定語音支持MP3格式,最大支持WAV格式,如果追求更加好的音質(zhì)和音色所帶來的更好的體驗,固定語音可以滿足客戶的這些高需求。相比于WT3000T-T001系列,WT3000T-T002系列芯片可以提供更大的flash空間來存放這些固定語音。

WT3000T-T002系列可提供最高32MBit的語音空間,最多可以放置近100首MP3固定語音。

WT3000T-T002提供以下在ETC使用場景的高品質(zhì)的內(nèi)置語音示例:

1

靜音  

2

前方  

3

米  

4

公里  

5

車道  

6

有車輛發(fā)生故障  

7

慢行注意安全

8

發(fā)生事故

9

道路設(shè)施故障

10

有停駛車輛

11

有車輛行駛緩慢

12

請注意保持車距

13

有車輛逆行

14

車道行駛緩慢

15

車道擁堵

16

有車輛超速行駛

17

變道時請注意安全

18

有緊急車輛行駛

19

請注意避讓應(yīng)急車道

20

有大貨車行駛

21

請注意行車安全

22

車輛發(fā)生火災(zāi)

23

請繞道行駛

24

路面發(fā)生火災(zāi)

25

路邊發(fā)生火災(zāi)

26

隧道內(nèi)發(fā)生火災(zāi)

27

道路設(shè)施發(fā)生火災(zāi)

28

發(fā)生地質(zhì)災(zāi)害

29

發(fā)生水災(zāi)

30

有暴雨天氣

31

有冰雹天氣

32

有雷電天氣

33

有大風天氣

34

有大霧天氣

35

有高溫天氣

36

有干旱天氣

37

有暴雪天氣

38

有寒潮天氣

39

有霜凍天氣

40

有霧霾天氣

41

有沙塵暴天氣

42

有團霧天氣

43

有橫風天氣

44

有物體散落

45

有液體灑落

46

有機油泄露

47

道路有障礙物

48

注意避讓道路行人

49

注意避讓道路動物

50

道路有積水

51

道路濕滑

52

道路結(jié)冰    

53

道路塌陷  

54

道路起伏    

55

道路施工  

56

注意慢行或繞道行駛  

57

道路斷路施工  

58

有文體商業(yè)活動  

59

有外交政務(wù)活動  

60

發(fā)生燃氣事故  

61

請停止行駛  

62

發(fā)生化學(xué)污染  

63

發(fā)生爆炸事故  

64

發(fā)生電力事故  

65

發(fā)生暴力事件

66

交通集中堵塞

67

交易金額

68

標簽拆卸

69

已預(yù)激活

70

是否激活

71

標簽已激活

72

電量不足

73

讀卡錯誤

74

ESAM鎖定

75

ESAM出錯

76

操作失敗

77

聯(lián)系運營商

78

請插卡

79

請記賬

80

M1卡

81

喚醒

82

藍牙已打開

83

藍牙出錯

84

交易成功

85

余額

86

版本

87

0

88

1

89

2

90

3

91

4

92

5

93

6

94

7

95

8

96

9

97

98

99

V

100

一聲短“滴”

101

一聲長“滴”

102

103

104

105

106

請充電





4.5 測試軟件

WT3000T-T001提供了一款好用的方便的上位機軟件來進行快速測試和演示。

image.png

上位機演示軟件操作界面

1. 用串口調(diào)試工具連接好WT3000T-T001模塊,插到電腦上,雙擊打開演示軟件。

image.png

上位機演示軟件圖標

2. 設(shè)置好波特率9600,然后點擊打開串口使模塊和上位機連接成功。

3. 主播選擇:可以選擇不同的主播音色,支持男聲女聲。

4. 語速:可以調(diào)節(jié)合成語音的語速速度。

5. 語調(diào):可以使主播的音色變得清澈透亮或者雄渾厚重。

6. 音量:調(diào)節(jié)合成的音量大小。

只需要在文本框中以打字的方式輸入想要播出的文本內(nèi)容,點擊生成,再點擊發(fā)送就可以聽到模塊播出剛剛輸入的文本內(nèi)容了。

另外,在發(fā)送數(shù)據(jù)和接收數(shù)據(jù)一欄里還能直接復(fù)制生成的串口16進制數(shù)據(jù)到程序代碼中直接使用,快速驗證問題。

 

 

 

五、串口控制示例代碼

5.1 函數(shù)聲明,結(jié)構(gòu)體聲明

#include <stdio.h>

#include <stdlib.h>

 

void uart_recive(const unsigned char *packet, unsigned short size);

void keyid_confirm(unsigned short common_id,unsigned char source,void *data);

unsigned char check_data(const unsigned char *packet, unsigned short size);

void uart_send(void);

#define  h_16(h,l)  (((h)<<8)|l)

struct hex16_format

{

    unsigned char  head;       //包頭

    unsigned char  len_h;      //

    unsigned char  len_l;      //len_h len_l包總長度

    unsigned char  listnum;    //流水號

    unsigned char  flag;       //包序&應(yīng)答標志

    unsigned char  source;     //數(shù)據(jù)來源

    unsigned char  payload[0]; //數(shù)據(jù)開始

};

struct keyid_format {

    unsigned char  id_h;        //KEYID  高字節(jié)

    unsigned char  id_l;        //KEYID  低字節(jié)

    unsigned char  length;      //KEYID  數(shù)據(jù)長度

    unsigned char  data[0];     ////KEYID  數(shù)據(jù)

};

函數(shù)聲明,接收結(jié)構(gòu)體聲明

//主函數(shù)

int main(int argc, char **argv)

{

    unsigned char uart_rx_test[] = {0x7E ,0x00 ,0x0F ,0x01 ,0x00 ,0x03 ,0x03 ,0xE8 ,0x06 ,0x31 ,0x32 ,0x33 ,0x34 ,0x35 ,0x36 ,0x39 ,0xEF};//播放123456

    uart_recive(uart_rx_test,sizeof(uart_rx_test));//接收數(shù)據(jù)

    return 0;

}

main函數(shù)

 

5.2 串口接收數(shù)據(jù)處理

//packet:串口接收到的一包數(shù)據(jù)

//size:串口這一報數(shù)據(jù)的長度

void uart_recive(const unsigned char *packet, unsigned short size) ///一包數(shù)據(jù)接收處理及  應(yīng)答輸出

{

    struct hex16_format *p1 = (struct hex16_format *)packet;

    unsigned char ret=0;

    //檢測這一包數(shù)據(jù)是否可用

    ret=check_data(packet,size);

    if(ret)

    {

       printf("debug:check_data err=%d ",ret);

       return;

    }

    printf("check_data OK! ");

    //數(shù)據(jù)可用,開始解析KEYID

    unsigned int keyid_address=6;

    //循環(huán)掃描所有keyID

    while((keyid_address+3)<(size-2))

    {

        struct keyid_format *cmd = (struct keyid_format     *)(&packet[keyid_address]);//packet[6]剛好u16對齊,不然會內(nèi)存對齊異常導(dǎo)致出問題

        unsigned short common_id=0;

        common_id=((cmd->id_h)<<8)|cmd->id_l;

        //如果讀取到了末尾則退出掃描

        if(cmd->length+3+keyid_address>size-2)

        {

            printf("while    end=%d,keyid_address=%d,size=%d   ",cmd->length,keyid_address,size);

            break;

        }

        printf("ID=0x%04X,LEN=%d,DATA=%s   ",common_id,cmd->length,cmd->data);

        //根據(jù)ID進行分類處理

        keyid_confirm(common_id,p1->source,cmd);

        //KEYID地址往下準備讀取下一個KEYID

        keyid_address += cmd->length+3;

    }

}

接收串口數(shù)據(jù)處理數(shù)據(jù)

 

 

 

unsigned char check_data(const unsigned char *packet, unsigned short size) ///數(shù)據(jù)校驗:1數(shù)據(jù)頭異常 2數(shù)據(jù)結(jié)尾異常 3總長度異常 4校驗異常

{

    struct hex16_format *p0 = (struct hex16_format *)packet;

    unsigned char err=0;

    unsigned short pack_len=0;

    //獲取幀長度

    pack_len=h_16(p0->len_h,p0->len_l);//((p0->len_h)<<8)|p0->len_l;

    printf("head=%02X len=%d size - 2=%d ",packet[0],pack_len,size - 2);//log_info("head=%02X len=%d size=%d",p0->head,p0->len,size);

    //數(shù)據(jù)頭如果不是0x7e就錯誤

    if(packet[0]!=0x7e)

        err=1;

    //數(shù)據(jù)結(jié)尾不是0xef就錯誤

    else if(packet[size-1]!=0xef)

        err=2;

    //獲取的幀長度不等于數(shù)據(jù)長度就錯誤

    else if((pack_len!=0)&&(pack_len!=(size-2)))

        err=3;

    else  ///SUM校驗計算

    {

        unsigned short i=0;

        unsigned char sum=0;

        for(i=1;i<size-2;i++)

        {

            sum+=packet[i];

        }

        if(sum!=packet[size-2])//校驗不正確就錯誤

        {

            err=4;

            printf("sum=0x%02X,packet[%d]=0x%02X ",sum,size-2,packet[size-2]);

        }

    }

    return err;

}

校驗接收到的串口這一包數(shù)據(jù)

  

 

void keyid_confirm(unsigned short common_id,unsigned char source,void *data)

{

    struct keyid_format *cmd = data;

    printf("Chip common_id=%d ",common_id);

    switch (common_id)

    {

    case 0x03e8/* TTS語音合成KEYID */:

        /* code */

        user_deal();//用戶接收處理

        break;

    default:

        break;

    }

}

接收的KEYID分類處理 

 

5.3 根據(jù)串口協(xié)議發(fā)送數(shù)據(jù)

#define USER_KEY_ID 1000

struct user_format {

    unsigned char   head;

    unsigned char   len_h;

    unsigned char   len_l;

    unsigned char   flows;      //流水號

    unsigned char   sta;        //

    unsigned char   soure;      //來源

    unsigned char   id_h;      //KEYID高字節(jié)

    unsigned char   id_l;      //KEYID低字節(jié)

    unsigned char   len;        //KEYID數(shù)據(jù)長度

    unsigned char   status;     //KEYID數(shù)據(jù)

    unsigned char   sum;

    unsigned char   end;

};

結(jié)構(gòu)體聲明

void uart_send(void)

{

    printf("uart_send:");

    static unsigned char flows = 0; 

    struct user_format user_key = {0};

    //===============================================================//

    //包頭

    user_key.head = 0x7e;

    //一包數(shù)據(jù)長度

    user_key.len_h = (sizeof(struct user_format) - 2) >> 8;

    user_key.len_l = (sizeof(struct user_format) - 2);

    //流水號

    user_key.flows = flows;

    //來源

    user_key.soure = 0x03;

    //回復(fù)KEYID和數(shù)據(jù)

    user_key.id_h = (unsigned char) (USER_KEY_ID >> 8);

    user_key.id_l = (unsigned char) (USER_KEY_ID);

    user_key.len = 0x01;

    user_key.status = 0x01;

    //校驗和

    for(int i = 1; i < sizeof(struct user_format)-2 ; i++)

    {

        user_key.sum += ((unsigned char *)(&user_key))[i];

    }

    user_key.end = 0xef;//結(jié)尾

    //==============================================================//

    flows++;//流水號

    //模擬發(fā)送

    for(int j = 0; j < sizeof(struct user_format) ; j++)

    {

        printf("%4x",((unsigned char *)(&user_key))[j]);

    }

    printf(" ");

}

串口發(fā)送示例

 

語音芯片_語音芯片廠家_錄音IC_語音識別方案-唯創(chuàng)知音

Copyright (?) 2020 深圳唯創(chuàng)知音電子有限公司 版權(quán)所有  地址:深圳市寶安區(qū)福永街道大洋路90號中糧福安機器人智造產(chǎn)業(yè)園6棟2/3層 備案號:粵ICP備15026214號