AiHummer
Română
AutentificareCont personal
v1.3.x
{ }Swagger

Vorbe în și din afară (STT / TTS)

v1.3.x · actualizat 2026-09-15

Mânere AiHummer discurs în și discurs din cutie — nu este necesar un API de vorbire plătit. Un fragment audio primit este transcris (STT), textul conduce o rundă normală a agentului, iar răspunsul este redat vorbit (TTS). Ambele motoare sunt gratuit și local și rulează ca motoscaune: faster-whisper pentru transcriere și edge-tts pentru sinteză.

Cum funcționează un turn de voce

O schimbare de voce este o schimbare normală a agentului cu audio activ la ambele capete:

  1. Poarta trimite audio-ul de intrare către Sidecar STT (:8001, faster-whisper) și primește înapoi text.
  2. Acest text declanșează runda obișnuită de apelare a funcțiilor — același router, același orchestrator, unelte și memorie ca un mesaj text.
  3. Textul de răspuns este trimis către TTS partener (:8002, edge-tts) și audio-ul vorbit este returnat apelantului.

Acesta este expus ca un singur punct final, POST /v1/voice/turn, astfel încât un canal sau client să poată transfera audio și să primească audio fără a orchestrat pașii singur.

Punctele finale

Metodă Punct final Scop
POST /v1/voice/turn Intrare audio → tură agent → ieșire audio
GET /v1/voice/config Configurația curentă a vocii (motoare, butoane de reglare)
POST /v1/voice/turn HTTP/1.1
Host: localhost:8780
Content-Type: application/json

{
  "audio": "<base64-encoded clip>",
  "format": "wav"
}

[!NOTE] Caracteristicile vorbirii fac parte din miez — ele nu sunt legate de pluginul SIP. Canalul SIP folosește aceste aceleași motoare STT/TTS pentru acesta local motor, dar voce în/înafara funcționează pentru orice client care apelează /v1/voice/turn.

Sidecarurile vocale

Port Atelaj lateral Motor Rol Conectat cu cablu
8001 STT șoaptă-mai-repede discurs → text AIHUMMER_STT_URL
8002 TTS edge-tts text → voce AIHUMMER_TTS_URL

Ambele motoare sunt gratuite și locale: nimic nu este trimis unui furnizor de vorbire plătit. Ca în cazul fiecărui sidecar, gateway-ul ajunge la ele prin URL, astfel încât să le puteți rula lângă gateway sau să indicați către o instanță partajată.

Încărcare cabluri

Instalatorul nativ al gazdei setează pentru tine URL-urile STT și TTS. Ele sunt setările catalogului — schimbă-le din interfața de administrare (Management → Setări) sau cu aihummer settings set; gateway.env este doar bootstrap și este ignorat pentru acestea:

# Voice in/out (auto-configured by the installer)
aihummer settings set AIHUMMER_STT_URL http://127.0.0.1:8001
aihummer settings set AIHUMMER_TTS_URL http://127.0.0.1:8002

[!TIP] Pentru că fiecare sidecar este doar un URL, mai multe gateway-uri pot împărți un singur STT/TTS instanță. Centralizați serviciile de vorbire mai grele în loc să rulați o copie pentru fiecare gazdă.

Ajustarea căii audio

Butonii pentru calitatea vocii se află în “Media · Voce” grup de setări și sunt configurabile din interfața web de administrare — nu este necesară o redeployare. Acestea acoperă traseul audio în timp real:

Buton Ce controlează
Dublu Full-duplex (ascultă în timp ce vorbești) vs half-duplex
AEC Anularea ecoului acustic
Suprimarea zgomotului Filtrează zgomotul de fundal înainte de STT
AGC Control automat al câștigului (normalizarea nivelului)
Prag VAD Sensibilitatea detectării activității vocale
A întrerupe brusc Permiteți apelantului să întrerupă agentul în timpul răspunsului

GET /v1/voice/config returnează configurația efectivă astfel încât un client să poată descoperi motoarele active și aceste setări.

Răspunsuri vocale automate

Când este rostit un răspuns gata decid trei setări din grupul „Media · Voice” (interfața web → Administrare → Setări):

Setare Cheie Valori
Răspunsuri vocale automate AIHUMMER_TTS_AUTO_REPLY off — niciodată; always — întotdeauna; inbound (implicit) — doar ca răspuns la audio primit; tagged — la marcarea vocală explicită a agentului
Limită de caractere pentru voce AIHUMMER_TTS_MAX_CHARS 0 (implicit) — rostește răspunsul complet; 10010000 — limita textului rostit
Rezumarea răspunsurilor vocale lungi AIHUMMER_TTS_SUMMARIZE activată implicit: un răspuns lung este scurtat de model până la limită; dacă modelul nu este disponibil, se rostește începutul textului

Textul complet al răspunsului rămâne în istoricul dialogului în orice mod. off dezactivează doar rostirea automată — o cerere explicită de sinteză prin instrumentul tts funcționează în continuare.

Pentru un dialog anume, agentul poate suprascrie aceste valori la cererea interlocutorului cu instrumentele voice_preferences (citește valorile în vigoare) și set_voice_preferences (setează auto, max_chars, summarize; un obiect gol restaurează valorile implicite ale instanței). Scrierea este disponibilă doar unui participant la dialog. Ieșirea vocală preia un furnizor conectat după pornirea gateway-ului și ține cont de setările utilizatorului respectiv.

Unde următor?