Я разрабатываю голосового чат-бота, который может звонить человеку и вести разговор. В настоящее время чат-бот использует мой компьютерный микрофон и динамик для ввода и вывода звука. Я пытаюсь интегрировать это через мобильную сеть, чтобы заменить мой компьютерный микрофон и динамик мобильным. Смотрите блок-схему в ссылке для понимания

та же структурная схема, но другое облако

Я беру входные данные с микрофона и передаю их в конвертер речи в текст (S2TC), а ответ, предоставляемый чат-ботом, передает конвертер текста в речь (T2S).

import speech_recognition as sr
from speechtotext import convert_speech_to_text

r = sr.Recognizer()

with sr.Microphone() as source:
    # in_audio is the mic input
    in_audio = r.listen(source)

# bot give response based on input audio  
bot_response = chatbot(convert_speech_to_text(in_audio))
out_audio = convert_text_to_speech(bot_response)

Сейчас я пытаюсь использовать звездочку для подключения к сети и интеграции мобильного телефона и моего чат-бота. Для этого мне нужно, чтобы все, что говорилось на мобильном телефоне, было принято как «in_audio», а «out_audio» - по сети.

Здесь бот инициирует вызов, я только что получил ссылку для совершения вызова, но как мне получить или перехватить in_audio по сети, чтобы отправить его в мою программу или моим конвертерам, и отправить out_audio пользователю. Есть ли функции звездочки для этого? Если нет возможности настроить звездочку, можно ли как-нибудь интегрировать мобильную сеть в голосовых ботов?

Я строю приложение, используя python и bing конвертер речи в текст в Windows.

Примечание: я новичок в звездочке.

1 ответ1

0

У Asterisk есть интерфейсы audiohooks, которые можно использовать для этого (требуется кодирование c/c++)

Также есть интерфейс EAGI (звук может быть получен по номеру файла 3).

Основная проблема с таким ботом не связь. Услуги телефонии используют голос 8 кГц, и это НЕ достаточно для правильного распознавания. Нет лучшего способа изменить голос, все кодеки в соединении PSTN/GSM на данный момент являются кодеками 8 кГц.

Также у IBM Watson есть сервисы интеграции телефонии (дорогостоящие), которые принимают вызов, распознают, отправляют вам результат посредством обратного вызова. Но опять же, качество распознавания ужасно, если язык человека с другой стороны не идеален.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .