H繁中版
Flows用 ElevenLabs 給 Hermes Agent 一個聲音
IntegrationsBeginner5 分鐘閱讀by ElevenLabs Developers
<!-- Source: https://hermesbible.com/flows/give-hermes-agent-a-voice-with-elevenlabs -->

為什麼要給 Hermes 一個聲音

Hermes Agent 可以在終端機、通訊應用程式和手機上運行。預設情況下它沒有聲音。這份指南教你如何加上一個:用 ElevenLabs 文字轉語音回覆你的訊息,用語音轉文字轉錄你說的話。兩者都是在 Hermes 中做供應商設定 —— 不需要自訂腳本。

最終效果:你說話,Hermes 用 Scribe 聽見你、思考,然後用你選擇的 ElevenLabs 聲音回覆。

設定

從 ElevenLabs 控制面板取得 API 金鑰,然後加到 ~/.hermes/.env

ELEVENLABS_API_KEY=your_key_here

如果 ElevenLabs 依賴套件缺失,將 premium TTS 額外套件安裝到 Hermes 環境中:

pip install "hermes-agent[tts-premium]"

簡易設定(讓 Hermes 自己來)

Hermes 的設計就是使用你的機器。要啟用 ElevenLabs 文字轉語音和語音轉文字,你只需請 Hermes 為你設定。Hermes 有內建技能處理這個,而且相當可靠:

Set ElevenLabs as the voice mode for both TTS and STT. I have already added the API Key into .hermes/.env.

下方的手動步驟做的是同一件事 —— 值得閱讀因為它們展示了 Hermes 底層的設定運作方式。

文字轉語音(手動)

執行設定精靈,在聲音步驟選擇 ElevenLabs:

hermes setup

或直接編輯 ~/.hermes/config.yaml

tts:
  provider: "elevenlabs"
  elevenlabs:
    voice_id: "pNInz6obpgDQGcFmaJgB"  # any voice from your library
    model_id: "eleven_flash_v2_5"     # ~75ms, built for real-time

voice_id 是聲音 —— 從聲音庫中選擇或使用克隆。model_id 定義使用哪個模型:eleven_flash_v2_5 適合即時對話(約 75ms),而 eleven_multilingual_v2 是一個很好的泛用預設。Hermes 會根據輸出路徑選擇音訊格式。

修改設定後重新啟動 Hermes。在閘道(gateway)中使用:

/restart

在 CLI 中,退出並重新啟動 Hermes。然後用以下指令啟用聲音輸出:

/voice on
/voice tts

語音轉文字(手動)

ElevenLabs Scribe 是 Hermes 內建的語音轉文字供應商。你不需要建立自訂轉錄腳本或註冊指令供應商。

~/.hermes/config.yaml 中加入:

stt:
  enabled: true
  provider: elevenlabs
  elevenlabs:
    model_id: scribe_v2
    language_code: ""        # optional; leave blank for auto-detect
    tag_audio_events: false
    diarize: false

這樣就夠了。Hermes 將收到的音訊寫入暫存檔案,傳送到 ElevenLabs /speech-to-text API,然後使用回傳的轉錄結果。閘道重啟後,Telegram、Discord、WhatsApp、Slack 和 Signal 上的語音訊息都會使用 Scribe。

要強制指定語言,設定 language_code,例如:

stt:
  enabled: true
  provider: elevenlabs
  elevenlabs:
    model_id: scribe_v2
    language_code: eng

對於 Scribe 常常聽錯的名稱、產品術語和函式庫,請參閱 ElevenLabs 語音轉文字文件以取得 API 支援的最新提示和模型選項。

完成

說話,Hermes 用 Scribe 聽見你、思考,然後用你的 ElevenLabs 聲音回覆。隨時可以透過選擇新的 voice_id 來更換聲音。