找回密碼
 立即註冊
惟家LINE群QRCODE
    查看: 1|回覆: 0

    在自己家跑語音助理:一句話都不用上雲的完整做法

    [複製鏈接]

    !lvup!   100%

    363

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22005752
    發表於 3 天前 | 顯示全部樓層 |閱讀模式
    跟 Google 音箱最大的差別:你說的話不會離開你家。

    這篇講整套怎麼組起來。



    語音助理其實是四個階段
    1. 1. 喚醒詞偵測(Wake Word)
    2.    「OK Nabu」——只有聽到這個才開始錄
    3. 2. 語音轉文字(STT / Speech to Text)
    4.    把你說的話變成文字
    5. 3. 意圖處理(Intent / Conversation)
    6.    「開客廳的燈」→ 呼叫 light.turn_on
    7. 4. 文字轉語音(TTS / Text to Speech)
    8.    把回應唸出來
    複製代碼

    HA 把這四個階段串起來的機制叫「Assist 管線(Pipeline)」。

    每一階段都是獨立的服務,用 Wyoming 協定溝通
    (這是 Rhasspy 專案訂的開放標準)。

    好處可以單獨換掉其中一個
    或者把最吃資源的 LLM 放到另一台機器

    硬體:最簡單的路

    Home Assistant Voice Preview Edition(Voice PE)


    • 官方出的語音裝置,約 59 美元
    • ESP32-S3 + 雙麥克風 + 音訊 DSP(有降噪)
    • 實體靜音開關 —— 是硬體切斷麥克風,不是軟體
    • 喚醒詞在裝置上偵測,沒聽到喚醒詞之前什麼都不傳
    • 喇叭講話夠用,放音樂不行


    實體靜音開關這點很重要 ——
    軟體的靜音你永遠不知道它有沒有真的停。

    自己用舊手機或平板也可以(HA 的 App 有語音功能),
    喚醒詞和降噪差很多



    軟體:2026 年的標準組合


    • faster-whisper —— 語音轉文字
    • Piper —— 文字轉語音
    • openWakeWord —— 喚醒詞(或者裝置自己做)
    • HA 內建的 Assist —— 意圖處理(不用 AI 也能用)
    • Ollama(選配)—— 本地大語言模型,處理複雜的對話


    全部都有 HA 附加元件可以一鍵安裝。

    安裝步驟


    • 設定 → 附加元件 → 商店
    • Whisper(語音轉文字)
    • Piper(文字轉語音)
    • 兩個都啟動
    • HA 會自動發現它們並提示你設定


    然後


    • 設定 → 語音助理
    • 新增助理
    • 選擇語言STT(Whisper)、TTS(Piper)


    HA 2026.6 之後這個介面簡化了不少 ——
    Wyoming 的 STT/TTS 整合被精簡,而且 Ollama 直接內建在管線設定介面裡
    不用改 YAML。

    中文的現況(要有心理準備)



    語音轉文字(Whisper)


    • 中文辨識可以用,但不完美
    • 模型越大越準,但越慢
    • 台灣口音和台語夾雜的話辨識率會掉


    模型大小的選擇
    1. tiny    最快,中文很不準
    2. base    可以試試
    3. small   中文的甜蜜點 ← 推薦從這個開始
    4. medium  更準但慢很多
    5. large   要 GPU 才實用
    複製代碼

    文字轉語音(Piper)


    • 中文語音有,但聽起來比較機械
    • 比 Google 的差滿多的
    • 但夠用(它只是回你「好的」之類的短句)


    意圖辨識

    這是最大的問題。


    • HA 內建的句型是英文為主
    • 中文支援有,但比較陽春
    • 實體名稱要用中文才叫得動


    實用建議


    • 把常用裝置改成好唸的中文名稱
    • 不要用「客廳崁燈第二組」這種名字
    • 用「客廳燈」「房間燈」「電視」這種短的


    自訂句型

    在 configuration.yaml
    1. conversation:
    2.   intents:
    3.     睡覺:
    4.       - "我要睡了"
    5.       - "晚安"
    6.       - "關燈睡覺"
    7. intent_script:
    8.   睡覺:
    9.     action:
    10.       - action: script.睡覺模式
    11.     speech:
    12.       text: "晚安,燈都關好了"
    複製代碼

    這個方法很實用 ——
    與其跟內建的意圖辨識搏鬥,不如自己定義你真正會說的句子。



    硬體需求

    不用 LLM 的話(只做裝置控制)


    • 樹莓派 4 就能跑(慢,但能動)
    • Intel N100 的無風扇迷你主機 + 16GB 記憶體 ——
        喚醒詞、Whisper(small)、Piper 都很順
    • 不需要顯卡


    要用 LLM 的話

    這才是吃資源的部分。


    • CPU 也能跑,但很慢(一句話要十幾秒)
    • 有人用二手的 RTX 3060 12GB 跑 Ollama,速度就很舒服
    • LLM 可以放在另一台機器,HA 透過網路呼叫


    速度的期望值


    • 基本的裝置控制(不走 LLM)—— 一秒以內
    • 走 LLM 的對話 —— 端到端大概 2-4 秒


    2-4 秒跟雲端助理差不多,而且完全不出門

    重要:保留「本地優先」的處理

    HA 的管線有一個設定叫「優先本地處理」。

    開著的話


    • 「開客廳的燈」這種指令直接由 HA 處理,不經過 LLM
    • 一秒以內完成
    • 只有 HA 看不懂的才丟給 LLM


    這個一定要開 —— 不然每句話都要等 LLM 想三秒。

    麥克風擺位的實務


    • 不要放在電視旁邊 —— 電視的聲音會一直觸發
    • 不要放在冷氣出風口 —— 風切聲會影響
    • 不要放在牆角 —— 回音
    • 離你平常講話的位置三公尺內
    • 一個房間一台(不要指望一台管全家)


    常見的問題

    一、喚醒詞常常誤觸發


    • 調高靈敏度門檻
    • 換一個比較少見的喚醒詞
    • 「Hey Jarvis」比「Alexa」少誤觸發(因為電視不會講)


    二、聽得到但辨識錯


    • 換大一點的 Whisper 模型
    • 確認語言設定是「中文」不是「英文」
    • 說慢一點、離近一點


    三、辨識對了但沒反應


    • 實體名稱跟你講的不一樣
    • 那個實體沒有「暴露給 Assist」
        (設定 → 語音助理 → 公開 → 勾選)
    • 試試看在 HA 的 Assist 對話框直接打字 ——
        這樣可以排除掉語音辨識的問題


    第三點是最好的除錯方法
    先用打字確認意圖能動,再處理語音。

    ---

    下一篇:讓 LLM 控制你家 ——
    怎麼選模型、怎麼避免它亂來、怎麼不把 context 塞爆。
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

    Archiver|手機版|惟家的智能論壇

    GMT+8, 2026-9-24 11:19 , Processed in 0.079689 second(s), 24 queries .

    快速回覆 返回頂部 返回列表