Asystent głosowy oparty na AI z wykorzystaniem Python, PJSIP i VoIPstudio (Część 1)
- Tim Meredith
Spis treści
Klient VoIPstudio potrzebował, aby jego system SCADA automatycznie dzwonił do inżynierów, gdy uruchamiane były krytyczne alarmy.
Wykorzystując klienta SIP Python o otwartym kodzie źródłowym zbudowanego na PJSIP (PJSUA2), połączyli swoją infrastrukturę bezpośrednio z trunkiem SIP VoIPstudio i rozpoczęli wykonywanie automatycznych połączeń głosowych wyzwalanych przez zdarzenia systemowe.
Następnie rozszerzyli rozwiązanie, integrując lokalny silnik konwersacyjny AI, przekształcając jednokierunkowe połączenia alarmowe w dynamiczne, dwukierunkowe interakcje głosowe.
Pełna implementacja klienta jest dostępna jako open source.
Ten przypadek pokazuje, jak VoIPstudio zapewnia opartą na standardach, przyjazną dla programistów podstawę SIP dla programowalnych aplikacji głosowych opartych na AI.
Ewolucja komunikacji głosowej: Od ludzi do systemów
Komunikacja głosowa to już nie tylko komunikacja między ludźmi.
Nowoczesne środowiska operacyjne coraz częściej wymagają eskalacji system-człowiek:
- Alarmy systemów sterowania przemysłowego
- Awarie infrastruktury IT
- Zdarzenia wyzwalane przez IoT
- Przekroczenia progów monitorowania
- Alerty bezpieczeństwa
E-mail i SMS często nie wystarczają w przypadku incydentów o wysokim priorytecie. Komunikacja głosowa pozostaje najbardziej niezawodnym kanałem eskalacji w czasie rzeczywistym.
Początkowy przypadek użycia: Eskalacja alarmów SCADA
Klient obsługuje system SCADA (Supervisory Control and Data Acquisition) monitorujący infrastrukturę krytyczną.
Wymaganie:
Gdy uruchamiany jest alarm priorytetowy, system musi natychmiast zadzwonić do odpowiedzialnego inżyniera i przekazać wyraźne ostrzeżenie, spełniając następujące wymagania biznesowe:
- Bez interwencji człowieka.
- Bez ręcznego wybierania numeru.
- Bez sprzętowej centrali PBX.
Przegląd architektury
Rozwiązanie było celowo minimalne i oparte na standardach:
- Aplikacja Python
- PJSIP (wiązania PJSUA2)
- Trunk SIP VoIPstudio
- Wdrożenie na lokalnej maszynie
Gdy warunek alarmowy zostaje spełniony:
- Skrypt Python rejestruje się w VoIPstudio przy użyciu danych uwierzytelniających SIP.
- Inicjuje wychodzące połączenie SIP.
- Po odebraniu odtwarza nagrany wcześniej plik alertu .wav.
- Połączenie kończy się po zakończeniu odtwarzania.
Nie wymagało to żadnych zastrzeżonych SDK ani oprogramowania pośredniczącego telefonii, tylko SIP.
Fundament open source: voip-client-python
Rdzeniem tej implementacji jest projekt open source opracowany przez Luisa Miguela.
Repozytorium:
https://github.com/luismiguelbp/voip-client-python
Projekt: voip-client-python
To funkcjonalny klient SIP Python zbudowany przy użyciu PJSIP / PJSUA2, demonstrujący:
- Rejestrację SIP
- Inicjowanie i kończenie połączeń
- Obsługę mediów RTP
- Wstrzykiwanie odtwarzania audio
- Zarządzanie cyklem życia połączenia sterowane zdarzeniami
Zamiast być teoretycznym przykładem, jest to działający, możliwy do sprawdzenia kod, który programiści mogą rozwidlić i dostosować.
Przykład (Uproszczona logika nawiązywania połączenia)
Poniżej znajduje się uproszczony koncepcyjny przykład oparty na sposobie wykorzystania PJSUA2 w Pythonie:
call = MyCall(account, pj.CallOpParam(True))
call.makeCall("sip:+441234567890@sip.voipstudio.com", pj.CallOpParam(True))
Stamtąd wywołania zwrotne mediów umożliwiają wstrzykiwanie plików audio lub strumieni audio generowanych w czasie rzeczywistym.
Od statycznych alertów do konwersacji AI
Klient nie zatrzymał się na odtwarzaniu statycznego pliku .wav.
Rozszerzyli architekturę, integrując lokalny silnik konwersacyjny AI działający na tej samej maszynie co klient SIP.
Ulepszony przepływ:
- SCADA wyzwala alarm.
- Klient Python inicjuje połączenie przez VoIPstudio.
- AI generuje dynamiczny alert mówiony.
- Człowiek odpowiada werbalnie.
- AI przetwarza dane wejściowe mowy.
- System kontynuuje logikę konwersacyjną.
Rezultatem jest dwukierunkowa interakcja głosowa przez standardowy trunk SIP.
Zamiast:
„Alarm krytycznej temperatury.”
System może teraz powiedzieć:
„W Lokalizacji B uruchomił się alarm temperatury. Czy przyjmujesz odpowiedzialność? Proszę powiedzieć „potwierdzam”, aby zaakceptować.”
A następnie przetworzyć odpowiedź w czasie rzeczywistym.
Nie ma uzależnienia od chmurowej telefonii AI ani zastrzeżonej platformy botów głosowych. Tylko SIP + Python + AI. VoIPstudio po prostu zapewnia warstwę transportu telefonii.
Przegląd architektury
Poniżej znajduje się uproszczona reprezentacja architektury produkcyjnej wykorzystywanej w tym wdrożeniu:
+--------------------+ SIP +----------------------+
| Python App | <----------------> | VoIPstudio SIP |
| (voip-client) | | Infrastructure |
| | | - Authentication |
| - Alarm Logic | | - Call Routing |
| - Call Control | | - PSTN Termination |
| - AI Integration | | - Number Provision |
+---------+----------+ +----------+-----------+
| |
| RTP Media |
v v
+--------------------+ +----------------------+
| Local AI Engine | | Public Telephone |
| | | Network |
| - STT | | |
| - Conversational | | Engineer / Operator |
| - Response Gen | | Receives Call |
+--------------------+ +----------------------+
Przepływ połączenia
- System SCADA wyzwala alarm.
- Aplikacja Python inicjuje SIP INVITE przez VoIPstudio.
- Połączenie jest kierowane do numeru docelowego.
- Silnik AI generuje alert mówiony.
- Audio RTP jest przesyłane strumieniowo w czasie rzeczywistym.
- Odpowiedź człowieka jest przechwytywana i przetwarzana.
- Logika połączenia jest kontynuowana na podstawie drzewa decyzyjnego AI.
Ponieważ rozwiązanie opiera się na standardowym SIP:
- Może być wdrożone lokalnie lub w chmurze.
- Silniki AI mogą być wymieniane bez zmiany infrastruktury telefonicznej.
- Logika połączeń pozostaje w pełni programowalna.
To rozdzielenie inteligencji i transportu telefonicznego sprawia, że architektura jest skalowalna.
Poza SCADA: Gdzie ta architektura ma zastosowanie
Ten sam wzorzec VoIPstudio + Python + AI obsługuje:
- Monitorowanie infrastruktury IT: Połączenia eskalacyjne zgłaszające precyzyjne kody błędów inżynierom dyżurnym.
- Inteligentne systemy bezpieczeństwa: Automatyczne połączenia wychodzące do kontaktów alarmowych, gdy monitorowane działania nie zgłoszą się.
- Systemy potwierdzania wizyt: Dwukierunkowe potwierdzanie głosowe i przełożenie terminu bez operatorów ludzkich.
- Systemy IVR oparte na AI: Zastępowanie z góry określonych drzew DTMF agentami konwersacyjnymi.
- Eskalacja zdarzeń IoT: Alerty głosowe wyzwalane przez czujniki środowiskowe lub przekroczenia progów.
UWAGA: W każdym z tych przypadków VoIPstudio może działać jako niezawodna podstawa SIP.
Zapoznaj się z kodem
Jeśli buduje Pan/Pani systemy automatyzacji, asystentów AI, platformy monitorowania lub inteligentne przepływy pracy eskalacji, zacznij tutaj:
Repozytorium:
https://github.com/luismiguelbp/voip-client-python
Projekt: voip-client-python
Przejrzyj, rozwidl, rozszerz, a następnie połącz go z trunkiem SIP VoIPstudio i rozpocznij eksperymentowanie.
Gotowy, aby włączyć obsługę głosu w swoich aplikacjach?
VoIPstudio zapewnia:
- Globalną łączność SIP
- Elastyczne trunking
- Konfigurację przyjazną dla programistów
- Niezawodną terminację PSTN
Rozpocznij bezpłatny okres próbny i zacznij budować własne programowalne rozwiązania głosowe.
Inteligencja należy do Pana/Pani. My zapewniamy warstwę głosową.
Chcesz ulepszyć swoją komunikację biznesową?
Odblokuj moc call center klasy korporacyjnej w przystępnych cenach – bez sprzętu, bez opóźnień, bez niespodzianek!