Tale inn og ut (STT / TTS)
AiHummer håndterer tale inn og tale ut av boksen — ingen betalt tale-API kreves. En innkommende lydklipp transkriberes (STT), teksten styrer en vanlig agenttur, og svaret blir snakket tilbake (TTS). Begge motorene er gratis og lokal og kjør som sidevogner: faster-whisper for transkripsjon og edge-tts for syntese.
Hvordan en stemmeomkobling fungerer
Et stemmeskifte er en normal agentomgang med lyd på begge ender:
- Gatewayen sender den innkommende lyden til STT sidevogn (
:8001, faster-whisper) og får tilbake tekst. - Den teksten driver den vanlige funksjonskall-svingen — samme ruter, orkestrator, verktøy og minne som en tekstmelding.
- Svarteksten sendes til TTS sidevogn (
:8002, edge-tts) og talt lyd returneres til den som ringer.
Dette blir eksponert som ett enkelt endepunkt, POST /v1/voice/turn, slik at en kanal eller klient kan overføre lyd og motta lyd uten å selv organisere trinnene.
Endepunktene
| Metode | Endepunkt | Formål |
|---|---|---|
POST |
/v1/voice/turn |
Lyd inn → agentens tur → lyd ut |
GET |
/v1/voice/config |
Gjeldende stemmekonfigurasjon (motorer, justeringsknapper) |
POST /v1/voice/turn HTTP/1.1
Host: localhost:8780
Content-Type: application/json
{
"audio": "<base64-encoded clip>",
"format": "wav"
}
[!NOTE] Taleegenskaper er en del av kjerne — de er ikke knyttet til SIP-pluginen. Den SIP-kanal bruker disse samme STT/TTS-motorene for sin
localmotor, men stemme inn/ut fungerer for enhver klient som ringer/v1/voice/turn.
Stemmene sidevogner
| Havn | Sidevogn | Motor | Rolle | Kablet med |
|---|---|---|---|---|
| 8001 | STT | raskere-hviske | tale → tekst | AIHUMMER_STT_URL |
| 8002 | TTS | edge-tts | tekst → tale | AIHUMMER_TTS_URL |
Begge motorene er gratis og lokale: ingenting sendes til en betalt taleleverandør. Som med hver sidevogn, når gatewayen dem ved URL, slik at du kan kjøre dem ved siden av gatewayen eller peke på en delt instans.
Ledningsføring
Verten-native installatøren setter STT- og TTS-URLene for deg. De er kataloginnstillinger — endre dem fra administrasjonsbrukergrensesnittet (Administrasjon → Innstillinger) eller med aihummer settings set; gateway.env er kun bootstrap og ignorert 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 bare er en URL, kan flere gateways dele én STT/TTS tilfelle. Sentraliser de tyngre taletjenestene i stedet for å kjøre en kopi per vert.
Justering av lydbanen
Stemmekvalitetskontroller bor i Media · Stemme innstillingsgruppe og kan konfigureres fra webadministrasjonsgrensesnittet — ingen omdistribusjon nødvendig. De dekker lydbanen i sanntid:
| Knot | Hva det kontrollerer |
|---|---|
| Tomannsbolig | Full-dupleks (lytt mens du snakker) vs halv-dupleks |
| AEC | Akustisk ekkofjerning |
| Støydemping | Filtrerer bakgrunnsstøy før STT |
| AGC | Automatisk forsterkningskontroll (nivånormalisering) |
| VAD-terskel | Følsomhet for stemmeaktivitet-detektering |
| Avbryte midt i | La den som ringer avbryte agenten midt i svaret |
GET /v1/voice/config returnerer den faktiske konfigurasjonen slik at en klient kan oppdage de aktive motorene og disse innstillingene.
Automatiske talesvar
Tre innstillinger i gruppen «Media · Voice» (webgrensesnitt → Administrasjon → Innstillinger) avgjør når et ferdig svar leses opp:
| Innstilling | Nøkkel | Verdier |
|---|---|---|
| Automatiske talesvar | AIHUMMER_TTS_AUTO_REPLY |
off — aldri; always — alltid; inbound (standard) — bare som svar på innkommende lyd; tagged — når agenten uttrykkelig merker svaret for opplesing |
| Tegngrense for opplesing | AIHUMMER_TTS_MAX_CHARS |
0 (standard) — les opp hele svaret; 100–10000 — grense for den oppleste teksten |
| Oppsummer lange talesvar | AIHUMMER_TTS_SUMMARIZE |
på som standard: et langt svar forkortes av modellen til grensen; er modellen utilgjengelig, leses begynnelsen av teksten opp |
Svarets fulle tekst blir værende i dialoghistorikken i alle modi. off slår
bare av den automatiske opplesingen — en uttrykkelig forespørsel om syntese via
verktøyet tts virker fortsatt.
For en enkelt dialog kan agenten på samtalepartnerens forespørsel overstyre
disse verdiene med verktøyene voice_preferences (les gjeldende verdier) og
set_voice_preferences (sett auto, max_chars, summarize; et tomt objekt
gjenoppretter instansens standarder). Bare en deltaker i dialogen kan skrive.
Taleutgangen fanger opp en leverandør som først ble koblet til etter at
gatewayen startet, og respekterer den enkelte brukerens innstillinger.
Hvor til neste
- Transportmodellen bak disse tjenestene: Sidevogner.
- Taletolkning og videoforståelse: Taletolkning og video.
- Stemme på en telefonlinje: SIP-telefoni.