Введение
Вы заинтересованы в создании приложений, требующих автоматического распознавания речи и языкового перевода? Не ищите ничего, кроме 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 и изучить его возможности. Как всегда, мы будем рады отзывам и комментариям наших читателей. Если вы нашли эту статью полезной, пожалуйста, поставьте лайк и поделитесь ею с другими. Спасибо за чтение!