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





