TinyTTS -神經(jīng)模塊,使照片說話
當(dāng)我們翻看老照片時(shí),我們的腦海里充滿了各種聲音——廚房里的笑聲,火車站的嗡嗡聲,有人說“記得嗎?”我們建造這個(gè)項(xiàng)目是為了讓那些聲音回歸,而不僅僅是活在記憶中?,F(xiàn)在一張圖片就能說明一切——簡(jiǎn)短而溫暖的短語,比如你愛的人又在那里了。
它開始于一個(gè)家庭故事講述者:一些童年的照片,幾句關(guān)于有趣的時(shí)刻-按下播放,和框架說話,完全離線。然后就有了“談?wù)摰攸c(diǎn)”的想法:打開一張旅行快照,聽到一個(gè)故事的低語——就好像這個(gè)城市本身告訴你下一步要去哪里
所有這些都完全在設(shè)備上運(yùn)行——沒有云,沒有延遲。語音是在框架內(nèi)的TinyTTS模塊上生成的。你是導(dǎo)演:控制節(jié)奏、停頓和順序——或者只是讓故事展開。公式很簡(jiǎn)單:照片+文字→語音。就是這樣。剩下的就是情感了。
我們不只是分享一個(gè)教程——我們給你一個(gè)模板,為你自己的故事:家庭,博物館,旅游,教育。添加幾行,按下播放鍵,當(dāng)框架開始說話時(shí),表盤就會(huì)亮起來。它第一次說話的時(shí)候,真的感覺像變魔術(shù)一樣。
快速開始-準(zhǔn)備演示
準(zhǔn)備好立即啟動(dòng)的二進(jìn)制文件。
你需要
?TinyTTS套件(Elecrow或Tindie) -具有嵌入式神經(jīng)TTS的MCU模塊
?CrowPanel Advanced (Elecrow) (ESP32-S3顯示控制器)
?揚(yáng)聲器-連接到TinyTTS音頻輸出
1.通過USB/Serial連接CrowPanel (ESP32-S3)到您的計(jì)算機(jī)。將面板的功能選擇開關(guān)設(shè)置為“WM(0,1)”(UART1-OUT模式)。
暫時(shí)不要連接tinyTTS模塊。
2.刷新固件。
選項(xiàng)A -使用預(yù)構(gòu)建映像:在固件/中,選擇Binaries_album /用于相冊(cè)場(chǎng)景,或者Binaries_travel /用于旅行場(chǎng)景。
使用提供的Flash(參見firmware/flash_tool.md)進(jìn)行Flash。
選項(xiàng)B -從源代碼構(gòu)建:安裝ESP-IDF v5.4,克隆repo,選擇components/ui/scenario_build.h中的場(chǎng)景,然后運(yùn)行:
3.閃爍后:用4針電纜將tinyTTS模塊連接到CrowPanel (UART0?UART1-OUT)。將tinyTTS的音頻輸出(3.5毫米插孔)連接到揚(yáng)聲器或耳機(jī)。
4.運(yùn)行演示:
屏幕上顯示一張照片卡。
按播放-卡文本是由tinyTTS說。
按“→”-下一張牌出現(xiàn)(循環(huán)列表)。
它是如何工作的
大多數(shù)“會(huì)說話”的項(xiàng)目都是從云端傳輸音頻。這一個(gè)顯示了真正的設(shè)備上的TTS -真正的語音,完全產(chǎn)生在一個(gè)微控制器上。
CrowPanel處理UI、SD讀取、模式切換和UART傳輸。
TinyTTS通過UART接收線路,生成語音,完成信號(hào)。
數(shù)據(jù)流程:CrowPanel (UART)→TinyTTS→Speaker
?CrowPanel讀取圖像和文本文件。
?文本通過UART發(fā)送到TinyTTS。
?TinyTTS生成語音。
?音頻輸出從TinyTTS進(jìn)入揚(yáng)聲器。
?一切都完全脫機(jī)運(yùn)行。
制作你自己的專輯——例子:第三
(根據(jù)《添加場(chǎng)景指南》)
1. 創(chuàng)建場(chǎng)景文件夾
在存儲(chǔ)庫根目錄下,添加:
每個(gè)場(chǎng)景必須遵循命名約定:小寫場(chǎng)景名稱= third。
2. 在代碼中啟用場(chǎng)景
只有一個(gè)場(chǎng)景可以設(shè)置為1。
3. 增加資產(chǎn)
將.bin圖像(RAW格式)放置在inesppiffs_root /assets_third/中。
您可以使用SquareLine Studio或LVGL圖像轉(zhuǎn)換器(顏色格式:真彩色(RGB565),輸出:二進(jìn)制)生成它們。
4. 添加文字和視覺效果
文本:創(chuàng)建components/ui/ builtin_texts_thirdc -定義kThirdTexts[]數(shù)組與您的文本字符串。
視覺:創(chuàng)建components/ui/third/ visuals_thirdc -將每個(gè)文本映射到圖像(從img_third_*.c導(dǎo)入)。
例子:
5. 更新CMakeLists.txt
將新塊添加到components/ui/CMakeLists.txt中:
6. 構(gòu)建和Flash
清理、構(gòu)建和刷新:
期望的日志輸出:
接下來是什么
同樣的設(shè)置可以演變成博物館指南、教育工具包、會(huì)說話的玩具或家庭展示——所有這些都可以完全離線運(yùn)行。
沒有互聯(lián)網(wǎng),沒有延遲,沒有云依賴-只有本地語音和邏輯,你可以適應(yīng)任何講故事的場(chǎng)景。
今天就開始創(chuàng)作你的談話相冊(cè)的第一章。Flash ready demo,加載5張照片和5條短線,按Play。
剩下的故事——你會(huì)在路上發(fā)現(xiàn)的。
本文編譯自hackster.io





