Teksti-kõneks (TTS)
Mayros saab konverteerida väljaminevaid vastuseid heliks kasutades ElevenLabs, OpenAI või Edge TTS. See töötab kõikjal, kus Mayros saab heli saata; Telegram saab ümmarguse häälmärkmiku mulli.
Toetatud teenused
- ElevenLabs (peamine või varupakkuja)
- OpenAI (peamine või varupakkuja; kasutatakse ka kokkuvõtete jaoks)
- Edge TTS (peamine või varupakkuja; kasutab
node-edge-tts, vaikimisi kui API võtmeid pole)
Edge TTS märkused
Edge TTS kasutab Microsoft Edge veebipõhist neuraalset TTS teenust node-edge-tts
teegi kaudu. See on hostitav teenus (mitte kohalik), kasutab Microsofti lõpp-punkte ja ei
nõua API võtit. node-edge-tts paljastab kõne konfiguratsiooni valikuid ja
väljundformaate, kuid kõiki valikuid ei toeta Edge teenus. citeturn2search0
Kuna Edge TTS on avalik veebiteenns ilma avaldatud SLA või kvoodita, kohtle seda parimas usus. Kui vajad garanteeritud piire ja tuge, kasuta OpenAI või ElevenLabs. Microsofti Speech REST API dokumenteerib 10-minutilist heli piiri taotluse kohta; Edge TTS ei avalda piire, seega oletame sarnaseid või madalamaid piire. citeturn0search3
Valikulised võtmed
Kui soovid OpenAI või ElevenLabs:
ELEVENLABS_API_KEY(võiXI_API_KEY)OPENAI_API_KEY
Edge TTS ei nõua API võtit. Kui API võtmeid ei leita, langeb Mayros vaikimisi
Edge TTS-le (välja arvatud juhul, kui keelatud messages.tts.edge.enabled=false kaudu).
Kui mitu pakkujat on konfigureeritud, kasutatakse valitud pakkujat esimesena ja teised on varuvalikud.
Automaatne kokkuvõte kasutab konfigureeritud summaryModel (või agents.defaults.model.primary),
seega peab see pakkuja olema samuti autenditud, kui lubad kokkuvõtteid.
Teenuste lingid
- OpenAI Text-to-Speech juhend
- OpenAI Audio API viide
- ElevenLabs Text to Speech
- ElevenLabs Autentimine
- node-edge-tts
- Microsoft Speech väljundformaadid
Kas see on vaikimisi lubatud?
Ei. Automaatne TTS on väljas vaikimisi. Luba see konfiguratsioonis
messages.tts.auto abil või sessiooni kohta /tts always (alias: /tts on) abil.
Edge TTS on vaikimisi lubatud, kui TTS on sees, ja kasutatakse automaatselt kui OpenAI või ElevenLabs API võtmeid ei ole saadaval.
Konfiguratsioon
TTS konfiguratsioon asub messages.tts all mayros.json failis.
Täielik skeem on Gateway konfiguratsioon.
Minimaalne konfiguratsioon (luba + pakkuja)
json5{ messages: { tts: { auto: "always", provider: "elevenlabs", }, }, }
OpenAI peamine ElevenLabs varukopiaga
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", seed: 42, applyTextNormalization: "auto", languageCode: "en", voiceSettings: { stability: 0.5, similarityBoost: 0.75, style: 0.0, useSpeakerBoost: true, speed: 1.0, }, }, }, }, }
Edge TTS peamine (ilma API võtita)
json5{ messages: { tts: { auto: "always", provider: "edge", edge: { enabled: true, voice: "en-US-MichelleNeural", lang: "en-US", outputFormat: "audio-24khz-48kbitrate-mono-mp3", rate: "+10%", pitch: "-5%", }, }, }, }
Keela Edge TTS
json5{ messages: { tts: { edge: { enabled: false, }, }, }, }
Kohandatud piirid + eelistuste tee
json5{ messages: { tts: { auto: "always", maxTextLength: 4000, timeoutMs: 30000, prefsPath: "~/.mayros/settings/tts.json", }, }, }
Vasta ainult heliga pärast sissetulevat häälmärkust
json5{ messages: { tts: { auto: "inbound", }, }, }
Keela automaatne kokkuvõte pikkade vastuste jaoks
json5{ messages: { tts: { auto: "always", }, }, }
Seejärel käivita:
/tts summary off
Märkused väljade kohta
auto: automaatne TTS režiim (off,always,inbound,tagged).inboundsaadab heli ainult pärast sissetulevat häälmärkust.taggedsaadab heli ainult siis, kui vastus sisaldab[[tts]]märgendeid.
enabled: pärand lüliti (doctor migreerib selleauto-ks).mode:"final"(vaikimisi) või"all"(sisaldab tööriista/bloki vastuseid).provider:"elevenlabs","openai"või"edge"(varukoopia on automaatne).- Kui
provideron määramata, eelistab Mayrosopenai(kui võti), seejärelelevenlabs(kui võti), vastasel juhuledge. summaryModel: valikuline odav mudel automaatseks kokkuvõtteks; vaikimisiagents.defaults.model.primary.- Aktsepteerib
provider/modelvõi konfigureeritud mudeli aliast.
- Aktsepteerib
modelOverrides: luba mudelil emiteerida TTS direktiive (vaikimisi sees).allowProvidervaikimisifalse(pakkuja vahetamine on opt-in).
maxTextLength: kõva piir TTS sisendile (märgid)./tts audioebaõnnestub kui ületatud.timeoutMs: taotluse ajalõpp (ms).prefsPath: alista kohalike eelistuste JSON tee (pakkuja/piir/kokkuvõte).apiKeyväärtused langevad tagasi env varsi (ELEVENLABS_API_KEY/XI_API_KEY,OPENAI_API_KEY).elevenlabs.baseUrl: alista ElevenLabs API baas URL.elevenlabs.voiceSettings:stability,similarityBoost,style:0..1useSpeakerBoost:true|falsespeed:0.5..2.0(1.0 = tavaline)
elevenlabs.applyTextNormalization:auto|on|offelevenlabs.languageCode: 2-täheline ISO 639-1 (nten,de)elevenlabs.seed: täisarv0..4294967295(parimas usus determinism)edge.enabled: luba Edge TTS kasutus (vaikimisitrue; API võtit pole vaja).edge.voice: Edge neuraalne hääle nimi (nten-US-MichelleNeural).edge.lang: keelekood (nten-US).edge.outputFormat: Edge väljundformaat (ntaudio-24khz-48kbitrate-mono-mp3).- Vaata Microsoft Speech väljundformaate kehtivate väärtuste jaoks; kõiki formaate Edge ei toeta.
edge.rate/edge.pitch/edge.volume: protsendi stringid (nt+10%,-5%).edge.saveSubtitles: kirjuta JSON subtiitrid heli faili kõrvale.edge.proxy: proxy URL Edge TTS taotluste jaoks.edge.timeoutMs: taotluse ajalõpu alistamine (ms).
Mudeli juhitud alistused (vaikimisi sees)
Vaikimisi saab mudel emiteerida TTS direktiive ühe vastuse jaoks.
Kui messages.tts.auto on tagged, on need direktiivid nõutud heli käivitamiseks.
Kui lubatud, saab mudel emiteerida [[tts:...]] direktiive hääle alistamiseks
ühe vastuse jaoks, pluss valikuline [[tts:text]]...[[/tts:text]] blokk, et
pakkuda ekspressiivseid märgendeid (naer, laulmise vihjed jne), mis peaksid ilmuma ainult
helis.
provider=... direktiive ignoreeritakse, välja arvatud juhul, kui modelOverrides.allowProvider: true.
Näidis vastuse kasulik koormus:
Siin on.
[[tts:voiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]]
[[tts:text]](naerab) Loe laul veel kord.[[/tts:text]]
Saadaolevad direktiivi võtmed (kui lubatud):
provider(openai|elevenlabs|edge, nõuaballowProvider: true)voice(OpenAI hääl) võivoiceId(ElevenLabs)model(OpenAI TTS mudel või ElevenLabs mudeli id)stability,similarityBoost,style,speed,useSpeakerBoostapplyTextNormalization(auto|on|off)languageCode(ISO 639-1)seed
Keela kõik mudeli alistused:
json5{ messages: { tts: { modelOverrides: { enabled: false, }, }, }, }
Valikuline lubatud nimekiri (luba pakkuja vahetamine, hoides teised nupud konfigureeritavad):
json5{ messages: { tts: { modelOverrides: { enabled: true, allowProvider: true, allowSeed: false, }, }, }, }
Kasutajapõhised eelistused
Slash käsud kirjutavad kohalikud alistused prefsPath-i (vaikimisi:
~/.mayros/settings/tts.json, alista MAYROS_TTS_PREFS või
messages.tts.prefsPath abil).
Salvestatud väljad:
enabledprovidermaxLength(kokkuvõtte lävi; vaikimisi 1500 märki)summarize(vaikimisitrue)
Need alistavad messages.tts.* selle hosti jaoks.
Väljundformaadid (fikseeritud)
- Telegram: Opus häälmärkus (
opus_48000_64ElevenLabs-st,opusOpenAI-st).- 48kHz / 64kbps on hea häälmärkmiku kompromiss ja nõutud ümarguse mulli jaoks.
- Teised kanalid: MP3 (
mp3_44100_128ElevenLabs-st,mp3OpenAI-st).- 44.1kHz / 128kbps on vaikimisi tasakaal kõne selguse jaoks.
- Edge TTS: kasutab
edge.outputFormat(vaikimisiaudio-24khz-48kbitrate-mono-mp3).node-edge-ttsaktsepteeriboutputFormat, kuid kõik formaadid ei ole saadaval Edge teenusest. citeturn2search0- Väljundformaadi väärtused järgivad Microsoft Speech väljundformaate (sealhulgas Ogg/WebM Opus). citeturn1search0
- Telegram
sendVoiceaktsepteerib OGG/MP3/M4A; kasuta OpenAI/ElevenLabs kui vajad garanteeritud Opus häälmärkusi. citeturn1search1 - Kui konfigureeritud Edge väljundformaat ebaõnnestub, proovib Mayros uuesti MP3-ga.
OpenAI/ElevenLabs formaadid on fikseeritud; Telegram ootab Opus häälmärkmiku UX jaoks.
Automaatne TTS käitumine
Kui lubatud, Mayros:
- vahele jätab TTS, kui vastus juba sisaldab meediat või
MEDIA:direktiivi. - vahele jätab väga lühikesed vastused (< 10 märki).
- võtab kokku pikad vastused, kui lubatud, kasutades
agents.defaults.model.primary(võisummaryModel). - lisab genereeritud heli vastusele.
Kui vastus ületab maxLength ja kokkuvõte on väljas (või puudub API võti
kokkuvõtte mudeli jaoks), jäetakse heli
vahele ja saadetakse tavaline teksti vastus.
Voodiagramm
Vastus -> TTS lubatud?
ei -> saada tekst
jah -> on meedia / MEDIA: / lühike?
jah -> saada tekst
ei -> pikkus > piir?
ei -> TTS -> lisa heli
jah -> kokkuvõte lubatud?
ei -> saada tekst
jah -> võta kokku (summaryModel või agents.defaults.model.primary)
-> TTS -> lisa heli
Slash käsu kasutus
On üks käsk: /tts.
Vaata Slash käsud lubamise üksikasjade jaoks.
Discord märkus: /tts on sisseehitatud Discord käsk, seega Mayros registreerib
/voice natiivsena käsuna seal. Tekst /tts ... töötab endiselt.
/tts off
/tts always
/tts inbound
/tts tagged
/tts status
/tts provider openai
/tts limit 2000
/tts summary off
/tts audio Tere Mayros-ist
Märkused:
- Käsud nõuavad volitatud saatjat (lubatud nimekiri/omaniku reeglid kehtivad endiselt).
commands.textvõi natiivne käsu registreerimine peab olema lubatud.off|always|inbound|taggedon sessiooni kohta lülitid (/tts onon alias/tts alwaysjaoks).limitjasummarysalvestatakse kohalikesse eelistustesse, mitte peamisse konfiguratsiooni./tts audiogenereerib ühekordselt heli vastuse (ei lülita TTS-i sisse).
Agendi tööriist
tts tööriist konverteerib teksti kõneks ja tagastab MEDIA: tee. Kui
tulemus on Telegram-ühilduv, sisaldab tööriist [[audio_as_voice]], nii et
Telegram saadab häälmulli.
Gateway RPC
Gateway meetodid:
tts.statustts.enabletts.disabletts.converttts.setProvidertts.providers