Cat

Перевод голоса в текст используя Deepgram

В этом посте мы добавим в Telegram-бота разспознование голоса через сервис Deepgram

Tips & Tricks proDream 26 Август 2024 Просмотров: 124

В посте "AIOgram3 16. Перевод голосовых сообщений в текст" в бота был добавлен перевод голосовых сообщений в текст используя API SpeechFlow, которое предоставляет 5 часов расшифровки в месяц.

В комментариях к посту, Timofei Ryko подсказал новый сервис - Deepgram, предоставляющий в бесплатном тарифе 200$, которого хватит примерно на 750 часов распознавания. Регистрация предельно простая. В личном кабинете получаем API-ключ, важно сохранить его сразу, т.к. он отображается всего раз.

Ссылка на сервис.

 

Давайте заменим старый сервис на новый в нашем боте:

  1. Установим библиотеку для работы с сервисом:
pip install deepgram-sdk

 

Добавляем секретный ключ в .env и прописываем соответствующее поле в pydantic-settings-модели.

В функции check_message() сносим старую обработку голосового сообщения и добавляем новую:

deepgram = DeepgramClient(api_key=secrets.deepgram_key.get_secret_value())  
file = await bot.get_file(message.voice.file_id)  
file_data: BytesIO = await bot.download_file(file.file_path)  
payload: FileSource = {"buffer": file_data.read()}  

options = PrerecordedOptions(model="nova-2", smart_format=True, language="ru-RU")  

response = await deepgram.listen.asyncrest.v("1").transcribe_file(payload, options)  

await message.reply(f"<pre><code>{response.results.channels[0].alternatives[0].transcript}</code></pre>")

 

Получаем файл голосового сообщения в буфер обмена и отправляем его в сервис. Затем полученный результат отправляем в ответ на голосовое сообщение.

Полный код бота доступен в нашем репозитории для подписчиков Boosty.

Автор

    Нет комментариев

    Реклама