Компания Open AI недавно открыла исходный код своей новейшей модели Whisper. Языковая модель на основе преобразователя, которая принимает запись голоса и способна предсказывать язык, расшифровывать запись и даже переводить ее!

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

Во-первых, давайте избавимся от импорта. Мы будем использовать tkinter для создания приложения. soundfile и sounddevice используются для записи голоса и сохранения аудиофайла.
Наконец, мы можем просто импортировать шепотпосле установки это через pip install непосредственно из репозитория openAI Github.
При первой загрузке модели может потребоваться некоторое время, чтобы загрузить веса!

Давайте быстро создадим простой графический интерфейс с помощью tkinter и добавим основную метку, которая будет содержать расшифрованный или переведенный текст.

Теперь мы можем начать добавлять функции. Первой функцией будет запись наших голосов. Для этого мы добавим кнопку, которая затем выполняет функцию voice_rec(). Эта функция для простоты запишет звук в течение 5 секунд и сохранит его, но определенно не стесняйтесь играть с продолжительностью или более динамичными решениями.

Большой! Теперь мы можем записывать себя и передавать в модель собственный звук. Давайте реализуем функции transcribe()иtranslate(). Они будут очень похожи, единственная ключевая разница будет заключаться в определении задачи для модели соответственно.

Как видите, вы также можете предоставить модели язык записи голоса! Это очень поможет в процессе транскрипции и перевода на более «экзотические» языки. Или, с технической точки зрения, с языками, которые были недостаточно представлены в наборе обучающих данных.

Теперь давайте, наконец, завершим приложение, добавив кнопку для запуска транскрипции и перевода соответственно.
Да, и, конечно же, добавим строку кода, которая фактически запускает приложение!

И это было, ребята! Теперь вы можете запустить приложение и поэкспериментировать с разными языками, посмотреть, насколько хорошо каждый размер модели может работать с вашим соответствующим языком, и повысит ли точность предоставление языка в качестве опции модели.
Очевидно, вы также можете расширить интерфейс приложения, например, предоставив текстовое поле ввода для языка, чтобы вам не приходилось жестко кодировать его в исходном коде!

У меня также есть видео на YouTube, где я программирую приложение вживую, рассказываю немного больше о модели и сам играю с разными языками!

Вы также можете проверить мой код на моей странице GitHub.

Спасибо за чтение и оставайтесь любопытными!