Введение

Вы заинтересованы в создании приложений, требующих автоматического распознавания речи и языкового перевода? Не ищите ничего, кроме Whisper от OpenAI! Whisper — это комплексная система автоматического распознавания речи, которая была обучена на разнообразном наборе данных из 680 000 часов многоязычных и многозадачных контролируемых данных, собранных из Интернета, что привело к повышению устойчивости к акцентам, фоновому шуму и техническому языку. Кроме того, Whisper обеспечивает транскрипцию на нескольких языках и перевод с этих языков на английский.

В этой статье мы покажем вам, как настроить OpenAI Whisper всего за несколько строк кода. Мы рассмотрим предварительные условия, процесс установки и использование модели в Python. Кроме того, мы включили блокнот Google Colab в сопутствующий репозиторий GitHub, который вы можете использовать для бесплатного запуска модели, пожалуйста, поставьте ⭐️, если вам понравилось! Итак, приступим!

Предпосылки

Прежде чем мы начнем настройку Open AI Whisper, необходимо выполнить несколько предварительных условий. Прежде всего, вам понадобится компьютер с графическим процессором и достаточным количеством оперативной памяти для запуска моделей. Open AI рекомендует не менее 16 ГБ ОЗУ для большинства моделей, а для более крупных моделей требуется еще больше памяти.

В дополнение к требованиям к оборудованию вам также необходимо установить на свой компьютер Python 3.8–3.10 и PyTorch 1.10.1. Open AI использовал Python 3.9.9 и PyTorch 1.10.1 для обучения и тестирования своих моделей, но ожидается, что кодовая база будет совместима с другими последними версиями PyTorch.

Наконец, вам нужно выбрать подходящую модель для ваших нужд. На выбор предлагается пять размеров моделей: от крошечной модели всего с 39 миллионами параметров до большой модели с 1,55 миллиардами параметров. Каждая модель поставляется либо с англоязычной версией, либо с многоязычной версией с компромиссом между скоростью и точностью. Обязательно выберите модель, которая лучше всего соответствует вашим требованиям и аппаратным возможностям.

Вот приблизительные требования к памяти и относительные скорости для каждой из доступных моделей:

|  Size  | Parameters | English-only model | Multilingual model | Required VRAM | Relative speed |
|:------:|:----------:|:------------------:|:------------------:|:-------------:|:--------------:|
|  tiny  |    39 M    |     `tiny.en`      |       `tiny`       |     ~1 GB     |      ~32x      |
|  base  |    74 M    |     `base.en`      |       `base`       |     ~1 GB     |      ~16x      |
| small  |   244 M    |     `small.en`     |      `small`       |     ~2 GB     |      ~6x       |
| medium |   769 M    |    `medium.en`     |      `medium`      |     ~5 GB     |      ~2x       |
| large  |   1550 M   |        N/A         |      `large`       |    ~10 GB     |       1x       |

В дополнение к требованиям Python и PyTorch, упомянутым ранее, вам также потребуется установить FFmpeg, библиотеку обработки звука, для использования Whisper. Если на вашем компьютере еще не установлен FFmpeg, вы можете установить его с помощью следующих команд:

  • В Linux:
sudo apt update && sudo apt install ffmpeg
  • В MacOS:
brew install ffmpeg
  • В Windows:
choco install ffmpeg

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

Установка и использование

Чтобы установить Whisper, вы можете использовать pip, чтобы установить его непосредственно из репозитория GitHub, используя следующую команду:

pip install git+https://github.com/openai/whisper

После того, как вы установили Whisper, вы можете загрузить предварительно обученную модель, используя функцию load_model и передав имя модели, которую хотите использовать. Например, чтобы загрузить модель medium.en, вы можете использовать следующий код:

import whisper
model = whisper.load_model("medium.en")

Чтобы расшифровать аудиофайл, вы можете использовать функцию transcribe загруженной модели и передать путь к аудиофайлу, который вы хотите расшифровать. Вы также можете указать язык аудиофайла, используя параметр language. Например, чтобы расшифровать французский аудиофайл, вы можете использовать следующий код:

out = model.transcribe("path-to-file", language="french")
print(out['text'])

Это выведет расшифрованный текст из аудиофайла на указанном языке.

Использование Python

В дополнение к использованию метода transcribe() для транскрипции, Whisper обеспечивает доступ нижнего уровня к модели через detect_language() и decode().

Чтобы использовать эти методы, сначала загрузите модель с помощью whisper.load_model(). Затем загрузите аудиофайл и дополните или обрежьте его, чтобы он соответствовал 30-секундному окну. Используйте whisper.log_mel_spectrogram(), чтобы преобразовать звук в спектрограмму log-Mel и переместить его на то же устройство, что и модель.

Чтобы определить разговорный язык, используйте whisper.detect_language(). Этот метод возвращает лучший язык и соответствующие оценки вероятности.

Наконец, чтобы декодировать звук и получить распознанный текст, используйте whisper.decode(). Этот метод принимает загруженную модель, спектрограмму log-Mel и параметры декодирования в качестве входных данных и возвращает объект whisper.Transcription. Вы можете получить доступ к распознанному тексту, используя result.text.

Вот пример фрагмента кода, демонстрирующий использование detect_language() и decode():

import whisper

model = whisper.load_model("base")

# load audio and pad/trim it to fit 30 seconds
audio = whisper.load_audio("audio.mp3")
audio = whisper.pad_or_trim(audio)

# make log-Mel spectrogram and move to the same device as the model
mel = whisper.log_mel_spectrogram(audio).to(model.device)

# detect the spoken language
_, probs = model.detect_language(mel)
print(f"Detected language: {max(probs, key=probs.get)}")

# decode the audio
options = whisper.DecodingOptions()
result = whisper.decode(model, mel, options)

# print the recognized text
print(result.text)

Репозиторий GitHub и как запустить этот код бесплатно!

В дополнение к фрагментам кода, показанным выше, мы также включили блокнот Jupyter в репозиторий GitHub для этой статьи. В блокноте представлена ​​более подробная демонстрация использования системы Whisper ASR, а также дополнительные примеры транскрипции и определения языка.

Кроме того, мы также включили в репозиторий ссылку на блокнот Google Colab, который позволяет вам бесплатно запускать модель Whisper в облачной инфраструктуре Google. Это особенно полезно, если у вас недостаточно мощный компьютер для локального запуска модели или вы хотите быстро опробовать модель без установки каких-либо зависимостей на вашем компьютере.

Заключение

В этой статье мы рассмотрели предварительные условия для использования Whisper, а также процесс установки и пример кода для транскрипции и доступа к модели более низкого уровня. Кроме того, для этой статьи мы предоставили ссылку на блокнот Google Colab в репозитории GitHub, что позволяет пользователям бесплатно запускать модель.

Мы надеемся, что эта статья помогла начать работу с Whisper и изучить его возможности. Как всегда, мы будем рады отзывам и комментариям наших читателей. Если вы нашли эту статью полезной, пожалуйста, поставьте лайк и поделитесь ею с другими. Спасибо за чтение!