AiHummer
Polski
Zaloguj sięKonto
v1.3.x
{ }Swagger

Mowa wejściowa i wyjściowa (STT / TTS)

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

Uchwyty AiHummer mowa do i mowa z pudełka — nie jest wymagane płatne API do mowy. Nadchodzący klip audio jest transkrybowany (STT), tekst steruje normalną turą agenta, a odpowiedź jest odtwarzana głosowo (TTS). Oba silniki są darmowy i lokalny i uruchom jako boczny wózek: faster-whisper do transkrypcji i edge-tts do syntezy.

Jak działa przełącznik głosu

Zmiana głosu to normalna zmiana agenta z włączonym dźwiękiem po obu stronach:

  1. Brama wysyła przychodzący dźwięk do Sidecar STT (:8001, faster-whisper) i otrzymuje z powrotem tekst.
  2. Ten tekst wywołuje zwykłą turę wywoływania funkcji — ten sam router, ten sam orkiestrator, narzędzia i pamięć jako wiadomość tekstowa.
  3. Tekst odpowiedzi jest wysyłany do TTS sidecar (:8002, edge-tts) i Wypowiedziany dźwięk jest zwracany rozmówcy.

Jest to udostępnione jako pojedynczy punkt końcowy. POST /v1/voice/turn, tak aby kanał lub klient mógł przekazywać audio i odbierać audio bez samodzielnego koordynowania tych kroków.

Końcówki

Metoda Punkt końcowy Cel
POST /v1/voice/turn Dźwięk wejściowy → tura agenta → dźwięk wyjściowy
GET /v1/voice/config Bieżąca konfiguracja głosu (silniki, pokrętła regulacji)
POST /v1/voice/turn HTTP/1.1
Host: localhost:8780
Content-Type: application/json

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

[!NOTE] Cechy mowy są częścią rdzeń — nie są powiązane z wtyczką SIP. Kanał SIP korzysta z tych samych silników STT/TTS dla swojego local silnik, ale głos wejście/wyjście działa dla każdego klienta, który dzwoni /v1/voice/turn.

Boczki głosowe

Port Boksykar Silnik Rola Połączony przewodami
8001 STT szybszy-szept mowa → tekst AIHUMMER_STT_URL
8002 TTS edge-tts tekst → mowa AIHUMMER_TTS_URL

Oba silniki są darmowe i lokalne: nic nie jest wysyłane do płatnego dostawcy mowy. Jak w przypadku każdego sidecara, brama do nich dociera przez URL, więc możesz uruchamiać je obok bramki lub wskazać wspólną instancję.

Okablowanie

Instalator natywny gospodarza ustawia dla ciebie adresy URL STT i TTS. Są one ustawienia katalogu — zmień je z interfejsu administracyjnego (Zarządzanie → Ustawienia) lub z aihummer settings set; gateway.env jest tylko dla Bootstrap i ignorowany dla tych:

# 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] Ponieważ każdy sidecar to tylko adres URL, kilka bramek może współdzielić jedno STT/TTS przykład. Skoncentruj cięższe usługi mowy zamiast uruchamiać ich kopię na każdej gospodarz.

Strojenie ścieżki audio

Pokrętła jakości dźwięku znajdują się w Media · Głos grupa ustawień i można je konfigurować z poziomu interfejsu administracyjnego w sieci — nie jest potrzebne ponowne wdrażanie. Obejmują one ścieżkę audio w czasie rzeczywistym:

Gałka Co to kontroluje
Dwustronny Pełny duplex (słuchanie podczas mówienia) kontra półduplex
AEC Anulowanie echa akustycznego
Tłumienie hałasu Filtruje szumy tła przed STT
AGC Automatyczna kontrola wzmocnienia (normalizacja poziomu)
Próg VAD Czułość wykrywania aktywności głosowej
Przerywanie Pozwól, aby dzwoniący przerwał agentowi w trakcie odpowiedzi

GET /v1/voice/config zwraca skuteczną konfigurację, aby klient mógł odkryć aktywne silniki i te ustawienia.

Automatyczne odpowiedzi głosowe

O tym, kiedy gotowa odpowiedź ma zostać odczytana, decydują trzy ustawienia grupy „Media · Voice” (interfejs WWW → Zarządzanie → Ustawienia):

Ustawienie Klucz Wartości
Automatyczne odpowiedzi głosowe AIHUMMER_TTS_AUTO_REPLY off — nigdy; always — zawsze; inbound (domyślnie) — tylko w odpowiedzi na przychodzące audio; tagged — gdy agent jawnie oznaczy odpowiedź do odczytu
Limit znaków wypowiadanej odpowiedzi AIHUMMER_TTS_MAX_CHARS 0 (domyślnie) — odczytać pełną odpowiedź; 10010000 — limit odczytywanego tekstu
Skracanie długich odpowiedzi głosowych AIHUMMER_TTS_SUMMARIZE domyślnie włączone: długą odpowiedź model skraca do limitu; jeśli model jest niedostępny, odczytywany jest początek tekstu

Pełny tekst odpowiedzi w każdym trybie pozostaje w historii rozmowy. off wyłącza tylko automatyczny odczyt — jawne żądanie syntezy przez narzędzie tts nadal działa.

Dla pojedynczej rozmowy agent może na prośbę rozmówcy nadpisać te wartości narzędziami voice_preferences (odczyt obowiązujących wartości) i set_voice_preferences (ustawienie auto, max_chars, summarize; pusty obiekt przywraca domyślne wartości instancji). Zapis jest dostępny tylko dla uczestnika rozmowy. Wyjście głosowe podchwytuje dostawcę podłączonego już po starcie bramy i uwzględnia ustawienia konkretnego użytkownika.

Dokąd dalej