Tale ind og ud (STT / TTS)
AiHummer håndterer tale ind og tale ud af boksen — ingen betalt tale-API kræves. Et indkommende lydklip transskriberes (STT), teksten styrer en normal agenttur, og svaret bliver talt tilbage (TTS). Begge motorer er gratis og lokal og kør som sidevogne: faster-whisper til transskription og edge-tts til syntese.
Hvordan en stemmeomskifter fungerer
Et stemmeskift er et normalt agent-skift med lyd på begge ender:
- Gatewayet sender den indgående lyd til STT sidevogn (
:8001, faster-whisper) og får teksten tilbage. - Den tekst driver den sædvanlige funktionskalds-turn — samme router, orkestrator, værktøjer og hukommelse som en tekstbesked.
- Svarteksten sendes til TTS sidecar (
:8002, edge-tts) og den talt lyd returneres til opkalderen.
Dette er eksponeret som et enkelt endepunkt, POST /v1/voice/turn, så en kanal eller klient kan overlevere lyd og modtage lyd uden selv at orkestrere trinnene.
Endepunkterne
| Metode | Endepunkt | Formål |
|---|---|---|
POST |
/v1/voice/turn |
Lyd ind → agentens tur → lyd ud |
GET |
/v1/voice/config |
Nuværende stemmekonfiguration (motorer, justeringsknapper) |
POST /v1/voice/turn HTTP/1.1
Host: localhost:8780
Content-Type: application/json
{
"audio": "<base64-encoded clip>",
"format": "wav"
}
[!NOTE] Taleegenskaber er en del af kerne — de er ikke bundet til SIP-plugin’et. SIP-kanal bruger disse samme STT/TTS-motorer til sin
localmotor, men stemme ind/ud virker for enhver klient, der ringer/v1/voice/turn.
Stemme-sidecars
| Havn | Sidevogn | Motor | Rolle | Forbundet med |
|---|---|---|---|---|
| 8001 | STT | hurtigere-hvisken | tale → tekst | AIHUMMER_STT_URL |
| 8002 | TTS | edge-tts | tekst → tale | AIHUMMER_TTS_URL |
Begge motorer er gratis og lokale: intet sendes til en betalt taleudbyder. Som med enhver sidevogn, når gatewayen dem ved URL, så du kan køre dem ved siden af gatewayen eller på en delt instans.
Ledningsføring
Den host-native installer indstiller STT- og TTS-URL’erne for dig. De er katalogindstillinger — ændre dem fra admin-brugergrænsefladen (Administration → Indstillinger) eller med aihummer settings set; gateway.env er kun bootstrap og ignoreres for disse:
# 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] Fordi hver sidevogn kun er en URL, kan flere gateways dele én STT/TTS forekomst. Centraliser de tungere tale tjenester i stedet for at køre en kopi pr vært.
Indstilling af lydvejen
Stemmekvalitetsknapper lever i Medier · Stemme indstillingsgruppe og kan konfigureres fra webadministrationsbrugerfladen — ingen genudrulning nødvendig. De dækker den realtids lydsti:
| Knop | Hvad det styrer |
|---|---|
| Dupleks | Full-duplex (lyt mens du taler) vs half-duplex |
| AEC | Akustisk ekkoudsletning |
| Støjundertrykkelse | Filtrerer baggrundsstøj før STT |
| AGC | Automatisk forstærkningskontrol (niveau normalisering) |
| VAD-tærskel | Følsomhed for stemmeaktivitetsdetektion |
| Afbryd | Lad opkalderen afbryde agenten midt i svaret |
GET /v1/voice/config returnerer den effektive konfiguration, så en klient kan opdage de aktive motorer og disse indstillinger.
Automatiske talesvar
Tre indstillinger i gruppen „Media · Voice“ (webgrænseflade → Administration → Indstillinger) afgør, hvornår et færdigt svar læses op:
| Indstilling | Nøgle | Værdier |
|---|---|---|
| Automatiske talesvar | AIHUMMER_TTS_AUTO_REPLY |
off — aldrig; always — altid; inbound (standard) — kun som svar på indgående lyd; tagged — når agenten udtrykkeligt markerer svaret til oplæsning |
| Tegngrænse for oplæsning | AIHUMMER_TTS_MAX_CHARS |
0 (standard) — læs hele svaret op; 100–10000 — grænse for den oplæste tekst |
| Opsummér lange talesvar | AIHUMMER_TTS_SUMMARIZE |
slået til som standard: et langt svar forkortes af modellen til grænsen; er modellen utilgængelig, læses tekstens begyndelse op |
Svarets fulde tekst forbliver i dialoghistorikken i alle tilstande. off
slår kun den automatiske oplæsning fra — en udtrykkelig anmodning om syntese
via værktøjet tts virker stadig.
For en enkelt dialog kan agenten på samtalepartnerens anmodning tilsidesætte
disse værdier med værktøjerne voice_preferences (læs de gældende værdier)
og set_voice_preferences (sæt auto, max_chars, summarize; et tomt
objekt genopretter instansens standarder). Kun en deltager i dialogen kan
skrive. Taleoutput opfanger en udbyder, der først er tilsluttet efter
gatewayens start, og respekterer den enkelte brugers indstillinger.
Hvor til næste
- Transportmodellen bag disse tjenester: Sidevogne.
- Taleoversættelse og videoforståelse: Taleoversættelse & video.
- Stemme på en telefonlinje: SIP-telefoni.