從菓葉菜宅到健康餐桌:用 iVoice 與 FFmpeg 製作台語故事音檔
讓菓葉人的菜宅、漁獲與惜物精神,透過台語聲音走進地中海健康餐盤
菓葉迎日・海味地中海餐盤:一半蔬菜海藻、四分之一全穀雜糧、四分之一海鮮蛋白。
這次的實作,是為「115年臺南澎湖農村綠色照顧四面向行動方案」製作一段具有地方感的台語故事音檔。主題從澎湖菓葉社區的菜宅出發,經過漁港與惜食記憶,最後連結到適合長輩的地中海健康餐盤。
語音合成採用意傳科技 iVoice 台語語音合成 API,沒有使用 Runway。原因很單純:這次需要的是能處理臺灣台語與台羅拼音的專用語音引擎,而不是一般影音生成服務。實作結果也再次說明,地方故事的自然度不只取決於聲音模型,更取決於文稿中的用詞、語尾、停頓與生活細節。
- 語音引擎:iVoice 台語語音合成 API
- 聲音:男聲
- 腔口:強勢腔(偏高雄腔)
- 內容:菓葉菜宅、漁獲、惜物精神與地中海餐盤
- 後製:去除頭尾靜音、調整音量與語速
- 長度:約 4 分 46 秒
- 格式:MP3、44.1 kHz、單聲道、192 kbps
一、先寫出「菓葉人的話」,再交給語音引擎
若只把一般中文文章直接送進語音合成,聲音即使發音正確,也容易像在朗讀新聞,缺少社區長輩的生活感。因此,第一步不是調整模型參數,而是先把文稿改成適合「說」的台語故事。
文稿設計掌握三個原則:
- 用地方生活做主角:以玄武岩石牆、菜宅、菓葉漁港、魚、小管及拇指管形成故事場景。
- 用惜物精神串起情節:一瓢水要省著用、菜葉有蟲孔仍可食、魚肉做菜、魚骨熬湯,呈現菓葉人的辛勤與節省。
- 把健康知識轉成生活語言:不直接堆疊營養名詞,而是從「以前菜宅有什麼就煮什麼,漁船捕到什麼就吃什麼」帶出地中海飲食。
土地生出來的物件,攏是辛苦換來的,毋通浪費。
若希望更接近菓葉阿婆的海口語氣,可以適度加入「阮、海跤、袂使糟蹋、毋通討債」等詞彙,並把長句拆短。這種調整通常比只在提示詞寫上「澎湖口音」更有效。
二、iVoice 台語語音合成流程
本次採用兩階段處理。先將台文轉為帶數字聲調的台羅拼音,再將台羅拼音交給台語語音合成端點輸出 WAV。
| 台文轉台羅 | /html_taigi_tw_py?text0=台文內容 |
|---|---|
| 台語語音合成 | /synthesize_TLPA?text1=台羅拼音&gender=男聲&accent=強勢腔(高雄腔) |
| 服務端點 | tts001.ivoice.tw:8804 |
| 原始輸出 | WAV、22.05 kHz、16-bit、單聲道 |
為什麼要分段合成?
四至五分鐘的故事若一次送入,可能遇到逾時、截斷或重做成本過高的問題。因此,我將故事依情節切成九段,逐段轉換台羅、逐段合成 WAV,確認每段有效後再串接。這樣即使其中一段失敗,也只需重新處理該段。
台語故事稿
↓ 依情節切成短段落
台文轉台羅拼音
↓
iVoice 逐段合成 WAV
↓
去除每段頭尾靜音
↓
串接、音量正規化、語速調整
↓
輸出 MP3
三、用 FFmpeg 整理停頓、音量與語速
語音引擎輸出的 WAV 可以直接播放,但若要用在成果展、點讀設備或故事機,仍需整理頭尾空白、段落音量與播放速度。
1. 只移除頭尾靜音,不破壞句中停頓
第一次測試時,我把靜音移除條件設得過度積極,結果句子中原本自然的停頓也被判定為切點,將接近五分鐘的音檔錯誤縮短成約十一秒。修正方式是:先修剪開頭,再將音訊反轉、修剪反轉後的開頭,最後再反轉回來。如此便能只處理原始音訊的頭尾。
ffmpeg -i input.wav \
-af "silenceremove=start_periods=1:start_duration=0.08:start_threshold=-45dB,\
areverse,\
silenceremove=start_periods=1:start_duration=0.08:start_threshold=-45dB,\
areverse,apad=pad_dur=0.32" \
output_clean.wav
apad=pad_dur=0.32 會在段落尾端保留約 0.32 秒空白,使九段串接後仍有呼吸感,不會像連珠炮。
2. 串接、音量正規化與 MP3 輸出
ffmpeg -f concat -safe 0 -i concat.txt \
-af "loudnorm=I=-18:LRA=7:TP=-1.5,atempo=1.04" \
-ar 44100 -ac 1 -b:a 192k \
guoye_taigi_story.mp3
loudnorm:統一各段的響度,避免忽大忽小。atempo=1.04:在不明顯改變聲音質感的前提下,略微調整速度。-ar 44100:輸出取樣率設定為 44.1 kHz。-ac 1:旁白採單聲道,適合展示與點讀應用。-b:a 192k:MP3 位元率設定為 192 kbps。
四、一只餐盤,裝著菓葉人的日子
從菓葉菜宅、漁港到地中海健康餐桌
我是在菓葉長大的阿婆。
細漢的時陣,天才微微光,厝裡的大人就已經起床。阿母帶我走進玄武岩石牆圍起來的菜宅,看看番薯、高麗菜、絲瓜和番茄。菓葉的海風強,土地又乾,種菜並不簡單。石牆替菜苗擋風,每一瓢水都要用得有打算;菜葉若有蟲孔,只要還能食,就不會隨便丟掉。
大人常講:「土地生出來的物件,攏是辛苦換來的,毋通浪費。」
太陽升起後,漁船慢慢駛回菓葉漁港。魚、小管和拇指管一籃一籃搬上岸,漁網上還留著鹹鹹的海水味。賣相好的送去市場,較小尾或外形不完整的,就帶回家煮湯、汆燙、曝乾。魚肉做菜,魚骨熬湯,能利用的都留下來。那個年代大家生活不富裕,卻很懂得珍惜土地與海洋給我們的每一份食物。
以前我們不知道什麼叫「地中海飲食」,只知道菜宅有什麼就煮什麼,漁船捕到什麼就吃什麼;多吃菜、海菜、番薯和魚,少放一點鹽,也很少大魚大肉。
後來,社區的青年和老師回到菓葉,和長輩一起把老一輩的飲食智慧重新整理。他們將餐盤分成三個部分:一半放菜宅蔬菜和澎湖海菜;四分之一放番薯、玉米和糙米;另外四分之一放當季鮮魚、小管或拇指管,再加一點花生和苦茶油。
我們看了都笑著說:「這不就是菓葉人以前吃的飯菜嗎?」
不一樣的是,現在我們把傳統經驗變成清楚的健康餐盤。海菜先洗去鹽分,蔬菜煮得柔軟,小管切成長輩容易入口的小塊;利用檸檬、番茄和蒜頭增加香氣,減少鹽和加工醬料。老味道沒有消失,反而用新的方法變得更健康、更適合長輩。
這一盤「菓葉迎日・海味地中海餐盤」,裝的不只是蔬菜、番薯和漁獲。它裝著菓葉人迎著海風耕作的辛勤、珍惜每一份食物的節省,也裝著年輕人與長輩共同創新的心意。
從菜宅走到漁港,再從漁港走上健康餐桌,菓葉人把過去的生活智慧,變成照顧現在、也能傳給未來的一頓好飯。
五、這次實作帶來的三個體會
- 地方感先寫進文稿,不能只靠聲音模型。iVoice 的強勢腔偏高雄腔,並非真正的澎湖真人口音;菓葉的海口感主要來自生活詞彙、語尾與敘事節奏。
- 長文要分段,停頓要刻意保留。技術上的「去靜音」不等於把所有安靜處刪除。對長輩故事而言,呼吸與停頓也是內容的一部分。
- AI 的價值是協助地方知識轉譯。這份音檔不是要取代社區長輩,而是先建立可展示、可點讀、可再修改的素材,讓長輩、青年與教師能一起確認內容。
結語:讓科技替地方記憶多留一條路
從菓葉菜宅、漁獲到地中海餐盤,表面上是一段飲食故事,背後其實連結了地方農漁業、長輩記憶、健康促進、台語傳承與青銀共創。透過台語語音合成與簡單的音訊後製,我們可以把文字變成能在成果展播放、能放入故事機,也能搭配 Tale-Map 或 OID 點讀圖卡使用的聲音素材。
科技不一定要把地方變成另一個樣子。更有意義的做法,是讓科技聽懂地方、說出地方,也讓菓葉人的生活智慧被更多人聽見。
沒有留言:
張貼留言