Для интеграции сторонних клиентов - микрофонов на ESP и проч. есть специальные функции интеграции в webapi Ирины.
Вызываются по адресу: http://<ip_Ирины>:port/<точка_вызова>
Документация: http://<ip_Ирины>:port/docs, обычно http://localhost:5003/docs
Можно найти
- sendRawTxt - который принимает распознанный текст и выполняет его (если там есть ключевое слово)
- sendSimpleTxtCmd - тупо выполняет команду через плагины
- ttsWav - рендерит текст в звук
Вторым параметром у sendRawTxt и sendSimpleTxtCmd идет returnFormat, представляет собой строку. Варианты:
- none - обработать и вывести звук на сервере
- saytxt - вернуть текст на клиент
- saywav - вернуть звук на клиент
- none,saytxt - звук на сервере, текст на клиент (и прочие комбинации работают)
- wsmic - получает RAW WAV поток из микрофона 48 кгц, возвращает saytxt,saywav данные
Слабо тестировано:
- wsmic_48000_none - получает RAW WAV поток из микрофона 48 кгц, выполняет все на сервере. Идеально, если у вас "тонкий микрофон"
- wsmic_22050_none - получает RAW WAV поток из микрофона 22 кгц, выполняет все на сервере. Идеально, если у вас "тонкий микрофон"
- wsmic_44100_none - получает RAW WAV поток из микрофона 44 кгц, выполняет все на сервере. Идеально, если у вас "тонкий микрофон"
- wsrawtext - получает JSON-данные в вебсокет. Ожидаемые элементы JSON-dict:
- txt:str - сырой текст (вместе с кодовым словом ассистента или без него; во втором случае текст просто будет пропущен)
- returnFormat:str - (опционально) - комбинация none,saytxt,saywav - чтобы знать, что возвращать клиенту. По дефолту - none.
- wsrawtextcmd - получает JSON-данные в вебсокет. Ожидаемые элементы JSON-dict:
- txt:str - текст команды (то, что идет после имени ассистента)
- returnFormat:str - (опционально) - комбинация none,saytxt,saywav - чтобы знать, что возвращать клиенту. По дефолту - none.
Пример использования wsmic_ пойнтов в https://github.com/janvarev/Remote-Irene/blob/master/run_remoteva_micrem.py