Хостинг
VDS
Аренда серверов
Домены
Почта
SSL
Хранилище
Сайты
Обзоры
Регламенты
AI Studio
Kubernetes
Архив
Используем whisper для преобразования речи в текст

Преобразование аудио в текст с помощью Whisper v3 Russian

В этой статье мы рассмотрим решение задачи automatic speech recognition или преобразования записанного на аудио голоса в текст, используя напрямую модели с huggingface. Разумеется, на сегодня есть масса оптимизированных вариантов запуска моделей на базе whisper, которые работают быстрее оригинала и требуют значительно меньше памяти (faster-whisper, ctranslate2 и тп), но у нас это учебный пример, который, в том числе, показывает как установить и настроить библиотеки pytorch и transformers на VDS с GPU.

Создание VDS с GPU

Хотя модели whisper работают и на CPU, для приемлемой скорости распознавания, на наш взгляд, имеет смысл все же использовать графические процессоры (GPU). Наша компания предлагает линейку VDS Ultra с видеокартами от Nvidia.

Чтобы запустить такой VDS, достаточно в вашем личном кабинете перейти в раздел VDS, нажать на кнопку создания виртуальной машины (ВМ) и выбрать требуемую вам конфигурацию сервера, а также модель и количество видеокарт, которые вам необходимы. В качестве образа для развертывания мы рекомендуем использовать предлагаемый нами образ на базе Ubuntu c предустановленными драйверами для видеоркарт Nvidia.

В случае whisper достаточно выбрать одну самую простую видеокарту среди предлагаемых. И даже в такой конфигурации вы без труда сможете запустить несколько инстансов whisper и получить в свое распоряжение высокопроизводительную машину для распознавания голоса.

Предположим что VDS вы уже создали и получили доступ к ней по ssh. Здесь и далее мы предполагаем что вы зашли на сервер от имени пользователя ubuntu, создаваемого по умолчанию.

Установка дополнительных библиотек

Для работы с аудио нам потребуется утилита sox. Все дело в том, что whisper ожидает на вход аудио в формате wav с частотой дискретизации 16 kHz, поэтому скорее всего любое аудио, которое вы захотите прогнать через whisper, потребует предобработки. Установим sox:

$ sudo apt-get install sox

Виртуальное окружение

В мире python хорошим тоном является создание виртуальных окружений и разворачивание требуемых пакетов в виртуальных окружениях, а не установка их напрямую в систему. Сделать это очень просто:

$ python3 -m venv ~/.venv
$ source ~/.venv/bin/activate

Pytorch и transformers

Теперь установим требуемые библиотеки. Если вы пользуетесь подготовленным нами образом для работы с gpu на базе ubuntu, в нем установлены библиотеки CUDA версии 12.4, поэтому нам потребуется pytorch, собранный под эту версию CUDA:

$ pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
$ pip3 install ipython transformers PySoundFile

Препроцессинг аудио

В качестве примера для распознавания с помощью whisper мы возьмем аудио файл с объявлениями из Екатеринбургского метро, размещенный на сайте wikimedia:

$ curl --output metro.ogg https://upload.wikimedia.org/wikipedia/commons/2/26/Ekb_Metro_voice_messages_sample_05-2019.ogg

Преобразуем этот файл к нужному формату wav, 16 kHz:

$ sox metro.ogg -r 16000 metro.wav

Безусловно такое же преобразование можно сделать и с помощью torchaudio.sox_effects, но по сути в этом случае будет вызвана та же утилита sox, так что особой разницы нет.

Распознавание речи

Запустим ipython и выполним следующие действия:

In [1]: import torchaudio

In [2]: with open('metro.wav', 'rb') as f:
   ...:     y, sr = torchaudio.load(f)
   ...:

In [3]: from transformers import pipeline

In [4]: asr = pipeline('automatic-speech-recognition', model='antony66/whisper-large-v3-russian', device='cuda', generate_kwargs={"language": "russian", "max_new_tokens": 128}, return_timestamps=False)

In [5]: asr(y[0].numpy())
Out[5]: {'text': 'Осторожно, двери закрываются. Следующая станция — проспект Космонавтов.На следующей станции Космонавтный агрегат.При выходе из вагонов не забывайте свои вещи.'}

Обратите внимание, что вместо оригинальной модели openai/whisper-large-v3 мы используем тюнингнованную модель antony66/whisper-large-v3-russian. Просто замените в коде из примера выше эту модель на оригинальный whisper и вы без труда увидите разницу в качестве не в пользу оригинала.

Облачные VDS
Облачные VDS
Облачные VDS
Масштабируются под любые задачи: от размещения сайта до IT-инфраструктуры
Заказать

Нам доверяют тысячи компаний и разработчиков

22 года
Предоставляем услуги профессионального хостинга
35 000+
Клиентов доверяют нам размещение своих сайтов
99.99%
Подтвержденный uptime наших серверов хостинга
Callibri
Крылья
Tele-Club
Linline
Премьер зал
УГМК-Здоровье
Магнум
Алатырь
Туристер
Callibri
Крылья
Tele-Club
Linline
Премьер зал
УГМК-Здоровье
Магнум
Алатырь
Туристер
ВК49865