Описание процесса расширения функциональности Telegram-бота, добавляющего голосовое взаимодействие с ChatGPT с помощью Google Cloud Text-to-Speech API. Рассмотрены этапы разработки и настройки, включая необходимые инструменты и код.
Подготовка
Для начала работы:
- Клонируйте проект (ссылка на репозиторий — в текстовом документе, доступном по ссылке под видео или в Telegram-канале). Разверните проект локально.
- Установите зависимости: выполните команду npm install.
- Модифицируйте default.json: вставьте Telegram-токен (получить у бота @BotFather) и ключ OpenAI.
Интеграция Google Text-to-Speech API
Интеграция включает:
- Регистрацию в Google Cloud Console и создание проекта.
- Включение Cloud Text-to-Speech API в Marketplace.
- Создание сервисного аккаунта с ролью Editor в разделе Credentials. Скачайте ключ в формате JSON и сохраните его в корне проекта (например, как google_youtube.json).
Конвертер текста в речь
Создайте файл text.js с классом TextConverter, содержащим методы:
- Получение токена авторизации: Использует данные из google_youtube.json, библиотеку jsonwebtoken (npm install jsonwebtoken) и делает запрос к Google API. Код опирается на создание JWT с использованием информации из ключа сервисного аккаунта. Включает обработку ошибок.
- Преобразование текста в речь: Метод textToSpeech принимает текст и отправляет запрос к Google Text-to-Speech API с использованием axios (npm install axios). Запрос формируется на основе параметров из документации Google Text-to-Speech API (язык ru-RU, голос, формат MP3).
- Обработка ответа: Преобразует Base64-кодированное аудио из ответа API в буфер и записывает его во временный MP3-файл с помощью fs.promises.writeFile. Файл удаляется после использования.
Модификация логики бота
В logic.js замените textToChat на метод, использующий TextConverter для преобразования текста в аудио и context.sendAudio для отправки аудио в Telegram. В качестве метаданных можно указать title и performer.
Тестирование и заключение
Запустите бота командой npm run dev. Протестируйте функциональность. Доработайте бота, настроив сообщения об ошибках и формат аудио. Учтите ограничения использования Telegram и YouTube в некоторых регионах.