Text-to-speech (TTS)

Mayros สามารถแปลงการตอบกลับขาออกเป็นเสียงโดยใช้ ElevenLabs, OpenAI หรือ Edge TTS มันทำงานได้ทุกที่ที่ Mayros สามารถส่งเสียงได้ Telegram ได้ฟองเสียงโน้ตกลม

บริการที่รองรับ

  • ElevenLabs (ผู้ให้บริการหลักหรือ fallback)
  • OpenAI (ผู้ให้บริการหลักหรือ fallback ใช้สำหรับการสรุปด้วย)
  • Edge TTS (ผู้ให้บริการหลักหรือ fallback ใช้ node-edge-tts, ค่าเริ่มต้นเมื่อไม่มี API keys)

หมายเหตุ Edge TTS

Edge TTS ใช้บริการ TTS neural ออนไลน์ของ Microsoft Edge ผ่านไลบรารี node-edge-tts มันเป็นบริการโฮสต์ (ไม่ใช่โลคัล) ใช้ endpoint ของ Microsoft และ ไม่ต้องการ API key node-edge-tts เปิดเผยตัวเลือกการตั้งค่าคำพูดและ รูปแบบเอาต์พุต แต่ไม่ใช่ทุกตัวเลือกที่รองรับโดยบริการ Edge

เนื่องจาก Edge TTS เป็นบริการเว็บสาธารณะที่ไม่มี SLA หรือโควต้าที่เผยแพร่ ให้ปฏิบัติต่อมัน เป็นความพยายามที่ดีที่สุด หากคุณต้องการขีดจำกัดที่รับประกันและการสนับสนุน ให้ใช้ OpenAI หรือ ElevenLabs

Keys ตัวเลือก

หากคุณต้องการ OpenAI หรือ ElevenLabs:

  • ELEVENLABS_API_KEY (หรือ XI_API_KEY)
  • OPENAI_API_KEY

Edge TTS ไม่ ต้องการ API key หากไม่พบ API keys Mayros ใช้ค่าเริ่มต้น เป็น Edge TTS (เว้นแต่ปิดใช้งานผ่าน messages.tts.edge.enabled=false)

เปิดใช้งานตามค่าเริ่มต้นหรือไม่?

ไม่ TTS อัตโนมัติ ปิด ตามค่าเริ่มต้น เปิดใช้งานในการตั้งค่าด้วย messages.tts.auto หรือต่อเซสชันด้วย /tts always (นามแฝง: /tts on)

Edge TTS เปิดใช้งาน ตามค่าเริ่มต้นเมื่อ TTS เปิด และใช้อัตโนมัติ เมื่อไม่มี API keys OpenAI หรือ ElevenLabs

การตั้งค่า

การตั้งค่า TTS อยู่ภายใต้ messages.tts ใน mayros.json สคีมาเต็มอยู่ใน การตั้งค่า Gateway

การตั้งค่าขั้นต่ำ (เปิดใช้งาน + ผู้ให้บริการ)

json5
{
  messages: {
    tts: {
      auto: "always",
      provider: "elevenlabs",
    },
  },
}

OpenAI หลักพร้อม ElevenLabs fallback

json5
{
  messages: {
    tts: {
      auto: "always",
      provider: "openai",
      summaryModel: "openai/gpt-4.1-mini",
      modelOverrides: {
        enabled: true,
      },
      openai: {
        apiKey: "openai_api_key",
        model: "gpt-4o-mini-tts",
        voice: "alloy",
      },
      elevenlabs: {
        apiKey: "elevenlabs_api_key",
        baseUrl: "https://api.elevenlabs.io",
        voiceId: "voice_id",
        modelId: "eleven_multilingual_v2",
      },
    },
  },
}

Edge TTS หลัก (ไม่มี API key)

json5
{
  messages: {
    tts: {
      auto: "always",
      provider: "edge",
      edge: {
        enabled: true,
        voice: "en-US-MichelleNeural",
        lang: "en-US",
        outputFormat: "audio-24khz-48kbitrate-mono-mp3",
      },
    },
  },
}

พฤติกรรม TTS อัตโนมัติ

เมื่อเปิดใช้งาน Mayros:

  • ข้าม TTS หากการตอบกลับมีสื่อหรือคำสั่ง MEDIA: อยู่แล้ว
  • ข้ามการตอบกลับสั้นมาก (< 10 ตัวอักษร)
  • สรุปการตอบกลับยาวเมื่อเปิดใช้งานโดยใช้ agents.defaults.model.primary (หรือ summaryModel)
  • แนบเสียงที่สร้างไปกับการตอบกลับ

การใช้งานคำสั่ง Slash

มีคำสั่งเดียว: /tts ดู คำสั่ง Slash สำหรับรายละเอียดการเปิดใช้งาน

หมายเหตุ Discord: /tts เป็นคำสั่ง Discord ในตัว ดังนั้น Mayros จึงลงทะเบียน /voice เป็นคำสั่งเนทีฟที่นั่น ข้อความ /tts ... ยังใช้งานได้

/tts off
/tts always
/tts inbound
/tts tagged
/tts status
/tts provider openai
/tts limit 2000
/tts summary off
/tts audio สวัสดีจาก Mayros

เครื่องมือ Agent

เครื่องมือ tts แปลงข้อความเป็นคำพูดและส่งคืนเส้นทาง MEDIA: เมื่อ ผลลัพธ์เข้ากันได้กับ Telegram เครื่องมือรวม [[audio_as_voice]] เพื่อให้ Telegram ส่งฟองเสียง

Gateway RPC

เมธอด Gateway:

  • tts.status
  • tts.enable
  • tts.disable
  • tts.convert
  • tts.setProvider
  • tts.providers