Транскрипция вызова в реальном времени с использованием Twilio Media Streams и Deepgram в приложении Fastapi/Next.js не Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Транскрипция вызова в реальном времени с использованием Twilio Media Streams и Deepgram в приложении Fastapi/Next.js не

Сообщение Anonymous »

Я построил приложение Call-Center с помощью Next.js для Frontend и Fastapi для бэкэнда, интегрированного с Twilio для голосовых вызовов. Основные функции работают: пользователи могут инициировать исходящие вызовы от портала Frontend до любого номера телефона, а получатель получает звонок, позволяя разговору в реальном времени через наше приложение Dialer (используя Twilio Voice SDK для поддержки софтфонов в браузере). Я установил конечную точку WebSocket в Fastapi для обработки медиа-потока от Twilio и Forward Audio к Deepgram, но транскрипция не работает-на переднем обороте не работает. https://1dad7cb6fcf4.ngrok-free.app/api/v1/twilio/voice).
в бэкэнд (twilio_simple.py), я генерирую Twiml, который включает в себя глагол, чтобы отправить как вход, так и переходные дорожки для аудио WSS: //1dad7cb6fcf4.ngrok-free.app/api/v1/media-stream ).
реализовал обработчик WebSocket в media_stream.py для получения медиа-потока Twilio, извлеките вызовы из «Start», Decode Base64 Audio Puillys и Overchpart To Deepgrarm (с Actire 'Aceprabize Agirize Base Audio и пересылками на глубину (с помощью «Сказ-событие», основан на выгрузке, и пересылает их, на глубине «Входные» /«Источники».

Код: Выделить всё

ws://localhost:8001/api/v1/dashboard/ws< /code>) для получения сообщений о транскрипте в реальном времени, с результатом резервного опроса для загрузки разговоров, если WebSocket Falls.
Протестировано с помощью NGROK для публичного воздействия, и подтвердил работу основных вызовов без транскрипции.
отладки URL WebSocket (изначально имел дополнительные /медиа-потоки на пути, которые я исправил на основе веб-сайтов. «Media Stream Websocket подключен» в бэкэнд, а отладчик Twilio не показывает никаких очевидных ошибок для голосового веб -крюка, но, возможно, сбои для соединения WSS. Frontend показывает «отсоединенное» для панели панели Websocket, и не появляется транскриптов (даже при запасении опроса). Ключ DeepGram API установлен, но звук не достигает его.
`# ... (inside handle_voice_webhook)
if settings.DEEPGRAM_API_KEY and settings.TWILIO_WEBHOOK_URL:
try:
parsed_url = urlparse(settings.TWILIO_WEBHOOK_URL)
webhook_domain = parsed_url.netloc
stream_url = f"wss://{webhook_domain}/api/v1/media-stream"  # Corrected path
stream = Stream(url=stream_url, track="both_tracks")
response.append(stream)
logger.info("✅ Media streaming enabled for call transcription")
except Exception as e:
logger.warning(f"❌ Failed to set up media streaming: {e}")

dial = response.dial(
action=f"{settings.TWILIO_WEBHOOK_URL}/api/v1/twilio/dial-status",
method='POST',
timeout=30,
caller_id=To,
record=True,
recording_status_callback=f"{settings.TWILIO_WEBHOOK_URL}/api/v1/twilio/recording-status",
recording_status_callback_event="completed"
)
dial.number(target_num, status_callback=..., status_callback_event=...)`

Бэкэнд: обработчик WebSocket в media_stream.py :

Код: Выделить всё

`@router.websocket("/media-stream")
async def media_stream_websocket(websocket: WebSocket):
# Handles connection, extracts CallSID from 'start' event, forwards audio to Deepgram
# ... (full handler code as in context)`
frontend: websocket in in next.js (survageDisplay):
`// Initializes WebSocket to ws://localhost:8001/api/v1/dashboard/ws
// Handles onmessage for 'conversation_message' type, updates messages state
// Fallback polling to /api/v1/dashboard/active-calls and conversations`
< /code>
журналы /ошибки: < /strong> < /p>
Бэкэнд: «ℹ Стокол средств массовой информации отключен», если ключи отсутствуют, или «❌ Не удалось установить потоковую передачу носителя» с ошибками. Обновления. Веб -питания в FASTAPI/NEXT.JS Помощь? В частности, как правильно извлечь и транскрибировать голос в реальном времени от Caller и Callee? Я что -то упускаю в Twiml (например, размещение) или конфигурации WebSocket? Альтернативы, такие как встроенная транскрипционная работа Twilio для Post-Call, но мне нужно в режиме реального времени.
Я полностью заблокирован-любое руководство или исправление кода! < /P>

Подробнее здесь: https://stackoverflow.com/questions/797 ... in-fastapi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»