一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用PWM完成語音播放?

GReq_mcu168 ? 來源:ARM中文社區(qū) ? 作者:Xiaoya ? 2021-04-25 16:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

事實上大部分MCU都可以實現(xiàn)語音播放

以一定的速度采樣(ADC)這些波形進行存儲,就是音頻數(shù)據(jù)了,所以播放就是按原來采樣的速率再用DAC輸出對應(yīng)的數(shù)據(jù)即可。

這里的音頻有兩個主要的參數(shù),采樣速率和采樣位數(shù)。

采樣速率:指1s中采樣多少個數(shù)據(jù)點,比如1s種采集16000個點,那么采樣率就是16KHz。采樣速率越高,越能抓到頻率較高的聲音,比如CD的采樣率就是44.1KHz,確保人耳能聽到的聲音都會被抓到。

采樣位數(shù):指音頻幅度最大值與最小值分為了多少階,比如滿幅度是3.3V,如果是8Bit位數(shù),那么每一階就是3.3V/256 = 12.89mv,采樣位數(shù)越高,聲音細節(jié)越好。所以采樣速率和位數(shù)越高,聲音還原越逼真,但存儲的數(shù)據(jù)量也越大,一首三四分鐘的歌曲,如果不采用編碼按原始波形數(shù)據(jù)存儲,數(shù)據(jù)量有好幾十兆大小,這涉及到音頻編碼的問題,這里不展開講了,有興趣的同學(xué)可以找相關(guān)資料。

接下來看怎么播放,最簡單的當然是把采樣(ADC)的數(shù)據(jù)按原樣輸出(DAC)了。但我們有些芯片本身不帶有DAC,所以只能用PWM代替DAC,PWM即脈沖寬度調(diào)制。這里只需要把DAC的幅度值轉(zhuǎn)換成PWM的占空比即可,例如16KHz 8Bit的聲音轉(zhuǎn)換成16Khz 256階占空比的PWM。但有一個問題,如果用16KHz的PWM播放語音,聲音是可以播放,但有一個16Khz的諧波存在,這個聲音會被人耳聽到,所以需要更高頻率的PWM,數(shù)據(jù)還是按照16Khz更新。

我這里使用32KHz的PWM,用16KHz 8Bit PCM格式的音頻數(shù)據(jù),8Bit的數(shù)據(jù)對應(yīng)一個Byte,16KHz采樣,1秒種占用存儲空間就是16K Byte,F(xiàn)429有2M Byte的Flash存儲空間,理論上可以存儲2048K/16K = 128秒的音頻。

下面是用NucleoF429實現(xiàn)音頻播放的具體過程:

一、配置PWM

1、用STM32CubeMx建立工程,配置兩個定時器TIM1和TIM2,TIM用于PWM產(chǎn)生,TIM2用于16KHz數(shù)據(jù)更新。

TIM1選擇PWM互補輸出(單通道也可以),將PE8和PE9復(fù)用為PWMN和PWMP。

TIM1在APB2總線上,TIM2在APB1總線上

所以TIM1和TIM2的時鐘頻率分別為180M和90M,系統(tǒng)時鐘用HSE輸入的8MHz。

將TIM1設(shè)置為32KHz,即31.25us。8Bit占空比,一個LSB為31.25us / 256 = 0.1220703125us = 8.192MHz,TIM1 180M / 8.192M = 21.97265625,這里取整數(shù)22。所以實際的PWM頻率為1/(180 / 22)*256 = 31.289us = 31.96KHz

TIM2 為90MHz,45分頻后為2MHz即0.5us,周期125即62.5us = 16KHz。

NVIC開啟TIM2中斷。生成工程名和目錄后生成Keil工程。

二、播放語音

1、先編譯后,編寫TIM中斷服務(wù)程序。

完成后,開啟TIM2中斷和PWM,(PWM是互補輸出,需要單獨開啟各個通道)

用邏輯分析儀測量輸出波形。

如圖所示,TIM1 PWM為31.96KHz,TIM2為62.5us即16KHz,結(jié)果正確。

接下來處理音頻:

這里使用的音頻是PCM格式,是未進行壓縮編碼的原始數(shù)據(jù),可以直接給PWM輸出。

音頻處理的軟件有許多,只要能把格式轉(zhuǎn)為PCM即可,下面是我用Cool Edit這款軟件做的音頻格式轉(zhuǎn)換。

選擇菜單文件-->批量轉(zhuǎn)換

選擇新的采樣率和采樣位數(shù)。

選擇PCM格式。設(shè)置輸出目錄后運行批處理完成轉(zhuǎn)換。

完成后的音頻文件用WinHeX這個軟件打開。

圖中紅框中的44個Byte為PCM格式的文件頭信息,后面的的數(shù)據(jù)為音頻數(shù)據(jù),數(shù)據(jù)全選后利用WinHex的可選格式復(fù)制

將數(shù)據(jù)以C數(shù)組的形式導(dǎo)出,在工程目錄下新建.h文件,將復(fù)制的文件粘帖到.H文件并在工程中Include進來,定義起始和結(jié)束地址,數(shù)組的大小即為文件結(jié)束地址,數(shù)組用const修飾,可以將數(shù)據(jù)存儲到Flash中。

在TIM2中,以16KHz的速度更新PWM數(shù)據(jù)即可實現(xiàn)音頻播放。

編譯工程,下載到NucleoF429板子上,在PE8或PE9上接一個喇叭即可聽到聲音。

以上用的音頻采樣是16K 8Bit,要想提高音質(zhì),提高采樣和Bit數(shù)即可,音量可以用外接三極管或功放放大,音頻數(shù)據(jù)也可以用ADC采集后存儲到SPI Flash后播放,實現(xiàn)錄音回放。

為了方便閱讀,附件中包含了此文的PDF文檔,Source Code也在附件中,可以直接下載到Nucleo運行。

原文標題:使用PWM實現(xiàn)語音播放

文章出處:【微信公眾號:玩轉(zhuǎn)單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17984

    瀏覽量

    367262
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    116

    文章

    5525

    瀏覽量

    219493
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    【沁恒CH585開發(fā)板免費試用體驗】+串行通訊與語音模塊播放控制

    ; i<8; i++) { checksum += cmd3[i]; } cmd3[8] = (uint8_t)~checksum; } 此外,為了適應(yīng)語音播放模塊的要求,需在主程序?qū)?/div>
    發(fā)表于 07-05 11:37

    芯知識|廣州唯創(chuàng)電子WT2003H語音芯片連碼播放功能解析與應(yīng)用指南

    一、連碼播放功能的核心價值連碼播放(組合播放)是語音芯片將多段獨立語音片段無縫拼接為連續(xù)語句的技術(shù)。廣州唯創(chuàng)電子WT2003H系列通過高性能
    的頭像 發(fā)表于 06-27 09:19 ?118次閱讀
    芯知識|廣州唯創(chuàng)電子WT2003H<b class='flag-5'>語音</b>芯片連碼<b class='flag-5'>播放</b>功能解析與應(yīng)用指南

    芯知識|廣州唯創(chuàng)電子語音芯片播放中斷問題深度解析:從電源崩潰到指令失序

    電壓跌落、電容失效、指令沖突——三大致命中斷誘因的工程級解決方案在智能門鎖、工控設(shè)備、醫(yī)療儀器等關(guān)鍵應(yīng)用場景中,語音播放中斷直接導(dǎo)致產(chǎn)品功能失效。廣州唯創(chuàng)電子WT588D、WT2000H、WTN6
    的頭像 發(fā)表于 06-24 09:03 ?180次閱讀
    芯知識|廣州唯創(chuàng)電子<b class='flag-5'>語音</b>芯片<b class='flag-5'>播放</b>中斷問題深度解析:從電源崩潰到指令失序

    新品|Unit AudioPlayer,支持 MP3/WAV 播放的音頻播放單元

    通過3.5mm接口輸出,支持循環(huán)、組合等播放模式。此產(chǎn)品適用于智能語音交互設(shè)備(如智能家居中控、語音導(dǎo)覽器)、工業(yè)自動化報警系統(tǒng)、醫(yī)療設(shè)備語音提示終端、STEAM教
    的頭像 發(fā)表于 06-20 15:59 ?327次閱讀
    新品|Unit AudioPlayer,支持 MP3/WAV <b class='flag-5'>播放</b>的音頻<b class='flag-5'>播放</b>單元

    芯知識|廣州唯創(chuàng)電子語音芯片組合播放功能解析:高效串聯(lián)音頻,賦能智能交互

    播報信息。針對此類需求,廣州唯創(chuàng)電子在其語音芯片中創(chuàng)新設(shè)計了組合播放功能(又稱“連碼播放”),通過靈活的音頻地址管理技術(shù),實現(xiàn)多段語音的無縫銜接播放
    的頭像 發(fā)表于 05-23 09:03 ?167次閱讀
    芯知識|廣州唯創(chuàng)電子<b class='flag-5'>語音</b>芯片組合<b class='flag-5'>播放</b>功能解析:高效串聯(lián)音頻,賦能智能交互

    語音播放芯片IC技術(shù)解析:WTN6、WT588、WT2003H與WTV系列應(yīng)用指南

    一、引言:語音芯片的智能化浪潮在萬物互聯(lián)的智能化時代,語音交互技術(shù)已成為人機交互的重要紐帶。從智能家電的提示音到兒童玩具的趣味互動,從工業(yè)設(shè)備的語音告警到公共服務(wù)設(shè)施的自動播報,語音
    的頭像 發(fā)表于 03-17 09:03 ?536次閱讀
    <b class='flag-5'>語音</b><b class='flag-5'>播放</b>芯片IC技術(shù)解析:WTN6、WT588、WT2003H與WTV系列應(yīng)用指南

    TTS語音播報控制器能做什么?

    的效率和便捷性。 工作原理 文本語音:輸入文字自動合成語音,支持任意中文、數(shù)字和英文字母。 語音播放:支持wav格式文件,可播放音樂或錄音文
    的頭像 發(fā)表于 02-20 18:18 ?706次閱讀

    flash MP3語音IC芯片廠介紹兒童電子琴智能語音方案

    N9300和MP3-FLASH-16P,?這些芯片提供了集成MP3、?WAV硬解碼的能力,?支持串口通信協(xié)議,?以及通過簡單的串口指令完成語音播放,?無需復(fù)雜的底層
    的頭像 發(fā)表于 02-07 18:31 ?425次閱讀
    flash MP3<b class='flag-5'>語音</b>IC芯片廠介紹兒童電子琴智能<b class='flag-5'>語音</b>方案

    WTN6040FP-14S語音芯片在電梯控制板中的應(yīng)用開發(fā)方案-實現(xiàn)樓層指引背景音樂播放功能

    環(huán)境,提高運行效率,本文將介紹一種基于WTN6040FP-14S語音芯片的電梯控制板開發(fā)方案。該方案通過集成語音芯片,實現(xiàn)背景音樂播放和樓層指引功能,為乘客提供更加愉悅、便捷的乘坐體驗。
    的頭像 發(fā)表于 11-12 14:16 ?481次閱讀

    能在DSP的存儲器上存MP3或其他格式的音頻文件,由DSP讀后控制TLV320AIC23轉(zhuǎn)換成語音

    我想用TLV320AIC23和DSP做一個音頻系統(tǒng)。我想問一下能在DSP的存儲器上存MP3或其他格式的音頻文件,由DSP讀后控制TLV320AIC23轉(zhuǎn)換成語音?有沒有好的方案推薦謝謝!
    發(fā)表于 11-01 06:45

    N9305 MP3語音芯片:外掛FLASH自定義語音播放解決方案

    。這款N9305MP3語音芯片不僅以其強大的兼容性引領(lǐng)市場潮流,更在自定義語音播放方面展現(xiàn)出了前所未有的靈活性。用戶可以通過簡單的操作,將個性化的音頻文件,如企業(yè)
    的頭像 發(fā)表于 10-11 08:01 ?818次閱讀
    N9305 MP3<b class='flag-5'>語音</b>芯片:外掛FLASH自定義<b class='flag-5'>語音</b><b class='flag-5'>播放</b>解決方案

    物聯(lián)網(wǎng)中語音播報方案_WTN6X系列Flash語音芯片驅(qū)動分享

    的+/-1%內(nèi)部震蕩,不需要加外部震蕩,具備超低功耗待機。 二 功能簡述 (1) 工作電壓:2.4V~5.2V; (2) 待機模式下,靜態(tài)電流小于 5uA(語音播放完成后,DATA /CLK 信號線
    的頭像 發(fā)表于 09-26 11:06 ?1073次閱讀
    物聯(lián)網(wǎng)中<b class='flag-5'>語音</b>播報方案_WTN6X系列Flash<b class='flag-5'>語音</b>芯片驅(qū)動分享

    輸入文字轉(zhuǎn)化語音

    一、介紹 基于鴻蒙Next模擬一個輸入用戶文字,轉(zhuǎn)化成語音播報效果二、場景需求 輔助功能:為視障人士提供幫助:將文字內(nèi)容轉(zhuǎn)化為語音,使視覺障礙用戶能夠獲取信息。 教育與學(xué)習(xí):語言學(xué)習(xí):幫助學(xué)習(xí)者通過
    發(fā)表于 08-28 10:54

    NVG040W語音播放芯片智能引導(dǎo),讓治療儀/熱療機使用更便捷

    ,讓治療儀和熱療機的使用更加便捷。?NVG040W語音芯片是一種OTP語音芯片,?具有SOP8封裝和8腳設(shè)計,?通過PWM放音方式實現(xiàn)高保真、?高識別率的語音
    的頭像 發(fā)表于 08-14 08:07 ?519次閱讀
    NVG040W<b class='flag-5'>語音</b><b class='flag-5'>播放</b>芯片智能引導(dǎo),讓治療儀/熱療機使用更便捷

    讓家電擁有說話能力,一般會使用哪種類型的語音芯片?

    家電的語音功能依賴于語音播放和識別芯片。播放芯片用于語音提示,如故障報警;識別芯片則實現(xiàn)語音控制
    的頭像 發(fā)表于 07-24 09:22 ?621次閱讀