我的Side Project 每拍呷 | 將音檔傳給用戶篇

更新 發佈閱讀 5 分鐘

今日進度5/14:研究如何把營養標示辨識結果與個人化建議用tts轉換成語音檔案後傳LINE給用戶。

首先,撇除掉Side Project,先單獨測試了用戶傳文字就收到語音檔的部份,是可以運作的;但是回去Side Project,改成將營養標示辨識結果與個人化建議用tts轉換成語音檔案,卻無法成功傳至LINE給用戶?

👽 — 我
🫡 — Gemini

👽為什麼單純請用戶輸入文字轉語音就可以成功、但接回營養標示辨識的程式碼就會失敗呢?

🫡你問了一個非常好的問題,這點正是許多人在開發 LINE BOT 時會遇到的挑戰!好奇為什麼單純的文字轉語音範例能成功,而整合到營養標示辨識程式碼後就會出現問題。
簡單文字轉語音 vs. 營養標示辨識的複雜度答案在於兩者之間流程的複雜度和外部依賴的數量有顯著差異:

簡單文字轉語音的流程 (你的成功範例)

  • LINE 傳送文字訊息 -> ngrok -> 你的 Flask 應用程式。
  • 你的 Flask 應用程式接收文字。
  • 呼叫 Azure TTS API,將文字轉換成語音,並儲存為本地 output.mp3。
  • 你的 Flask 應用程式建立一個指向 ngrok 公開 URL (/audio) 的 AudioMessage。LINE 伺服器 -> ngrok -> 你的 Flask 應用程式 (/audio 路由),下載 output.mp3。
  • LINE 將音訊傳送給用戶。

這個流程相對簡單直接,主要只涉及一次 Azure API 呼叫 (TTS) 和一次本地檔案伺服。

營養標示辨識的流程 (你目前的程式)

  • LINE 傳送圖片訊息 -> ngrok -> 你的 Flask 應用程式。
  • 你的 Flask 應用程式接收圖片。
  • 呼叫 Azure Document Intelligence API,上傳圖片進行 OCR 辨識,等待結果。
  • 你的 Flask 應用程式解析 OCR 結果,提取營養數據。
  • 計算個人化營養分析和建議。
  • 呼叫 Gemini LLM API,生成個人化建議文字,等待結果。
  • 組裝最終的文字報告。
  • 呼叫 Azure TTS API,將最終報告的語音內容轉換成語音,並儲存為本地 output.mp3。
  • 你的 Flask 應用程式建立一個指向 ngrok 公開 URL (/audio) 的 AudioMessage。
  • LINE 伺服器 -> ngrok -> 你的 Flask 應用程式 (/audio 路由),下載 output.mp3。
  • LINE 將音訊傳送給用戶。

👽那我的下一步要怎麼修正?
🫡(給了我超~長一串解決方法)

簡單來說,就是需要重新啟動 ngrok 並更新 URL,然後更新 LINE Developers 後台的 Webhook URL重新啟動 Flask 應用程式(詳細步驟略)

(咦?這些步驟我昨天都做過了呀…算了還是再做一次看看…)

(竟然成功了!我的LINE BOT可以回傳音檔給用戶了,歡呼!)

然後我發現它會朗讀emoji,譬如😊它會唸「微笑的臉」,所以我請它朗讀時移除emoji,殊不知這是災難的開始...
接下來生成的音檔全部都只會朗讀營養組成、沒有朗讀個人化建議與鼓勵,我找錯誤來源找了好多次都失敗,後來發現問題應該是因為這個:

tts_personalized_advice = remove_emojis(personalized_advice_text)

跟這個:

text = re.sub(r'[\U000026A0\U0001F621\U0001F62C\U0001F60A\U0001F629\U0001F62F\U0001F635\U0001F92C\U0001F4AA\U0001F92B\U0001F974\U0001F35E\U0001F36C\U0001F373\U0001F9C2\U0001F35A]', '', text)

這行代碼因為匹配的 Unicode 範圍過於廣泛,導致它不僅移除了表情符號,也移除許多正常的文字內容,所以就變成空字串…print文本出來看是有生成的,但轉音檔的時候因為文字跟著emoji一起被去掉所以沒轉。
我暫時把移除表情符號的需求拿掉,之後再想辦法吧!

明日進度:

  1. 思考看看有什麼辦法可以簡化用戶輸入個人資訊的步驟,目前要請用戶自己用逗號隔開(女性, 60, 158 1),這樣對用戶來說不太方便。
  2. 目前文字看起來很擁擠,不利長輩閱讀。要來研究怎麼從只傳送一個對話泡泡變成傳送多個對話泡泡。
留言
avatar-img
留言分享你的想法!
avatar-img
Galing的腦內劇場
1會員
15內容數
學習AI的新手,在這邊分享學習筆記跟知識,希望文組轉戰AI也可以闖出一片天💪 大學學的是戲劇,擁有服務業12年經驗,擔任銷售顧問;2025.07開始學習python與AI商業應用,目標是讓職涯變得更自由有彈性,做出好玩有趣的東西! 💬喜歡打電動、看動畫、K-pop佛系追星,偶爾可能會出現這些主題的文章。
Galing的腦內劇場的其他內容
2025/08/23
今日原訂進度4/14: 創建一個 Messaging API channel。在 LINE Developers 後台設定 BOT 的基本資訊,並取得 Channel Access Token 和 Channel Secret。設定 Webhook URL (使用 ngrok)
Thumbnail
2025/08/23
今日原訂進度4/14: 創建一個 Messaging API channel。在 LINE Developers 後台設定 BOT 的基本資訊,並取得 Channel Access Token 和 Channel Secret。設定 Webhook URL (使用 ngrok)
Thumbnail
2025/08/22
今日進度3/14: 設定Azure AI Services(或 Azure Cognitive Services for Vision) 的OCR服務。 撰寫一個簡單的Python程式碼,使用一個營養標示圖片進行OCR服務呼叫,並印出返回的JSON結構,確認服務能正常運作。
Thumbnail
2025/08/22
今日進度3/14: 設定Azure AI Services(或 Azure Cognitive Services for Vision) 的OCR服務。 撰寫一個簡單的Python程式碼,使用一個營養標示圖片進行OCR服務呼叫,並印出返回的JSON結構,確認服務能正常運作。
Thumbnail
2025/08/21
今日進度 2/14 : 今天主要針對成分表裡的「食品添加物」做分類,初步分成:香料、防腐劑、乳化劑、色素、其他。 使用者輸入文字內容後,系統就能輸出圓餅圖或其他視覺化的分析結果。 但是!實作之後改動了超多東西的,不停發現盲點... ...
Thumbnail
2025/08/21
今日進度 2/14 : 今天主要針對成分表裡的「食品添加物」做分類,初步分成:香料、防腐劑、乳化劑、色素、其他。 使用者輸入文字內容後,系統就能輸出圓餅圖或其他視覺化的分析結果。 但是!實作之後改動了超多東西的,不停發現盲點... ...
Thumbnail
看更多
你可能也想看
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
想聽我們聊更多,就來這邊吧~ 🚀|Apple Podcasts:https://apple.co/4bsgGsG 🚀|spotify:https://spoti.fi/3URbhE6 🚀|KKBOX Podcast:https://bit.ly/3UPKubj 🚀|聲浪:ht
Thumbnail
想聽我們聊更多,就來這邊吧~ 🚀|Apple Podcasts:https://apple.co/4bsgGsG 🚀|spotify:https://spoti.fi/3URbhE6 🚀|KKBOX Podcast:https://bit.ly/3UPKubj 🚀|聲浪:ht
Thumbnail
前陣子在準備三個報告跟三個作品集(類似論文) 內容有:1.語言學中語言景觀的研究與觀察,2.選一家歐洲的公司並觀察它如何進行內外溝通,3.跨文化的產品or廣告or文字使用比較 可能由於溝通上或學習環境上的文化差異,及內容可呈現的範圍很大,儘管找教授確認題目方向後,還是有點怕怕的,怕離題,怕內容不
Thumbnail
前陣子在準備三個報告跟三個作品集(類似論文) 內容有:1.語言學中語言景觀的研究與觀察,2.選一家歐洲的公司並觀察它如何進行內外溝通,3.跨文化的產品or廣告or文字使用比較 可能由於溝通上或學習環境上的文化差異,及內容可呈現的範圍很大,儘管找教授確認題目方向後,還是有點怕怕的,怕離題,怕內容不
Thumbnail
我們前面幾篇已經講完TTS技術的一大半架構了,知道了如何將聲學特徵重建回音訊波形,也從中可以知道要是聲學特徵不完善,最終取得的結果也會不自然,剩下要探討該如何將文字轉換成聲學特徵,且能夠自然地表現停頓及細節變化,讓我們開始吧。
Thumbnail
我們前面幾篇已經講完TTS技術的一大半架構了,知道了如何將聲學特徵重建回音訊波形,也從中可以知道要是聲學特徵不完善,最終取得的結果也會不自然,剩下要探討該如何將文字轉換成聲學特徵,且能夠自然地表現停頓及細節變化,讓我們開始吧。
Thumbnail
  我們在語音初探篇提到TTS的流程可以分成三個部分 :輸入前處理、預測音訊特徵、語音重建,其中輸入前處理的部分上兩篇已經處理完,在進入預測音訊特徵前,讓我們先來理解最後的語音重建部分。
Thumbnail
  我們在語音初探篇提到TTS的流程可以分成三個部分 :輸入前處理、預測音訊特徵、語音重建,其中輸入前處理的部分上兩篇已經處理完,在進入預測音訊特徵前,讓我們先來理解最後的語音重建部分。
Thumbnail
上篇我們簡單的了解了 TTS 想要達到的目標,但是對於訓練資料的處理、網路架構、損失函數、輸出分析等考慮到篇幅尚未解釋清楚,這篇將針對訓練資料處理中的文字部分進行詳細說明,讓我們開始吧。
Thumbnail
上篇我們簡單的了解了 TTS 想要達到的目標,但是對於訓練資料的處理、網路架構、損失函數、輸出分析等考慮到篇幅尚未解釋清楚,這篇將針對訓練資料處理中的文字部分進行詳細說明,讓我們開始吧。
Thumbnail
「人工智障計畫」也執行了好一段時間了,關於這個專案中文字轉語音的方案,在之前的筆記中也有稍微提到,為了達成能自訂聲線,並且能完全離線運作兩個條件,我已經做過了不少嘗試。
Thumbnail
「人工智障計畫」也執行了好一段時間了,關於這個專案中文字轉語音的方案,在之前的筆記中也有稍微提到,為了達成能自訂聲線,並且能完全離線運作兩個條件,我已經做過了不少嘗試。
Thumbnail
  最近遇到一些人想做音訊的合成,我回答他或許可以從圖像風格轉換中找到些靈感,我才突然想起我對於這部分的認知只止於知道他能做什麼及結果大概如何,對於內部訓練邏輯及結構並沒有認真的去了解,現在剛好趁此機會好好的學習一下。
Thumbnail
  最近遇到一些人想做音訊的合成,我回答他或許可以從圖像風格轉換中找到些靈感,我才突然想起我對於這部分的認知只止於知道他能做什麼及結果大概如何,對於內部訓練邏輯及結構並沒有認真的去了解,現在剛好趁此機會好好的學習一下。
Thumbnail
這篇文章介紹瞭如何將聲音檔轉換為逐字稿,並且提到了使用雲端硬碟安裝colaboratory的方法。這篇文章指出了逐字稿的重要性,以及如何透過逐字稿做文字呈現方式的轉變。如果你需要處理會議紀錄或聲音檔,這些方法都能幫助你更輕鬆的進行工作。
Thumbnail
這篇文章介紹瞭如何將聲音檔轉換為逐字稿,並且提到了使用雲端硬碟安裝colaboratory的方法。這篇文章指出了逐字稿的重要性,以及如何透過逐字稿做文字呈現方式的轉變。如果你需要處理會議紀錄或聲音檔,這些方法都能幫助你更輕鬆的進行工作。
Thumbnail
在簡報設計中,我們有時需要視覺化去表達「語音」的概念,例如是講者介紹、客戶回饋、問答環節等。利用在常見的語音圖案是可行的做法,只是人手自己畫耗費時間,生成式人工智能又未必一下子做到想要的效果。要解決問題,還有第三種可行辦法,免費可商用的字體,同樣可以助你快速建立語音圖案,兼且保留設計的自由度。
Thumbnail
在簡報設計中,我們有時需要視覺化去表達「語音」的概念,例如是講者介紹、客戶回饋、問答環節等。利用在常見的語音圖案是可行的做法,只是人手自己畫耗費時間,生成式人工智能又未必一下子做到想要的效果。要解決問題,還有第三種可行辦法,免費可商用的字體,同樣可以助你快速建立語音圖案,兼且保留設計的自由度。
Thumbnail
上傳您的影音檔到Taption平台,或者從Youtube選取影片。把最困難的轉換任務交給我們,將影片的語音轉成文字。
Thumbnail
上傳您的影音檔到Taption平台,或者從Youtube選取影片。把最困難的轉換任務交給我們,將影片的語音轉成文字。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News