Python, выручай!
Продолжаем мегапроект, в котором поставим себе на службу безразмерное облако Яндекса. Задача — воспользоваться облачным сервисом Яндекса, который отвечает за расшифровку текста из аудиофайла.
Вчера мы подготовили «Яндекс.Облако» и разобрались с технологиями, которые будем использовать. Теперь можно отправлять файлы на сервер и получать текст.
Технические детали
В проекте мы будем распознавать длинные аудио. Яндекс считает длинными записи от 30 секунд и больше одного мегабайта, но никто не мешает отправить на распознавание файл с меньшей длительностью записи. Так тоже можно.
Форматы аудио, которые понимает нейросеть Яндекса на момент написания статьи, — LPCM и OggOpus. Мы будем работать со вторым: он занимает меньше места и проще в обработке. MP3 пока не поддерживается.
Распознаётся только русская речь.
Готовим файл
Нам нужен файл в формате OggOpus и расширением .ogg. Если ваш диктофон, телефон или компьютер не умеют сохранять аудио в таком формате, используйте любой аудиоконвертер — онлайн-сервис или в виде программы на компьютере.
Например, это может работать так: находите в интернете любой сервис конвертации аудио, выбираете формат Opus (просто Ogg не пойдёт — не тот кодек) и сохраняете файл в этом формате. Затем меняете расширение на .ogg вместо .opus — и у вас получился файл нужного формата.
Если аудиозаписей пока никаких нет, используйте тестовый файл speech.ogg, потренируйтесь на нём.
Загружаем файл на сервер
Теперь нужно готовый файл отправить в «Яндекс.Облако». Место, где хранятся файлы в облачном сервисе, называется «бакет» («ведро» по-нашему). Чтобы сделать новое ведро, заходим в консоль, переходим в раздел Object Storage и нажимаем «Создать бакет»:
В появившемся окне придумываем имя и нажимаем «Создать бакет»:
Нам нужно загрузить файл в этот бакет. Для этого заходим в него и перетаскиваем туда мышкой наш файл:
Последнее, что осталось, — узнать путь к файлу. Для этого нажимаем на сам файл, выбираем «Получить ссылку» и копируем её. Она нам пригодится на последнем этапе:
Добавляем нужные библиотеки в Python
Мы будем писать программу-обработчик на Python, поэтому перед началом убедитесь, что он есть у вас на компьютере.
Чтобы отправлять запросы на сервер и принимать в ответ готовый текст, нам нужна python-библиотека requests. Установим её из командной строки в PowerShell. Если у вас Мак — то через Терминал:
pip install requests --user
Пишем программу
К этому моменту у нас уже есть аудиофайл в нужном формате, он залит в хранилище, осталось только распознать его. Вот что нам для этого нужно:
- API-ключ → его мы получали в первой части.
- Путь к файлу в бакете → получили, когда заливали файл в хранилище.
Эти данные мы вставим в наш код на Python. Логика программы простая: подготавливаем все данные и отправляем запрос на распознавание. Пока сервер не ответит, что всё готово, ждём. Как только приходит ответ — выводим готовый текст на экран.
Что дальше
Дальше будем создавать аудиокниги и раскрывать весь потенциал движка SpeechKit. Ну и заодно будем программировать на Python :)