Затрудняетесь с ИИ или разработкой полного стека? Наши эксперты готовы помочь вам: индивидуальные консультации, техническая интеграция и многое другое. Обращайтесь по адресу [email protected].

Как установить и развернуть Whisper, лучшую альтернативу Google Speech-To-Text с открытым исходным кодом

OpenAI Whisper - лучшая на сегодняшний день альтернатива Google speech-to-text с открытым исходным кодом. Он работает на 100 языках (определяется автоматически), добавляет пунктуацию и даже может перевести результат, если это необходимо. В этой статье мы покажем вам, как установить Whisper и развернуть его в продакшене.

Автоматическое распознавание речи

Google Speech-To-Text

API автоматического распознавания речи (speech-to-text) от Google очень популярен. Этот API способен расшифровывать аудио- и видеофайлы на 125 языках, а также предлагает специальные модели ИИ для расшифровки телефонных звонков, медицинской транскрипции и многого другого.

Этот API также имеет приятные дополнительные функции, такие как фильтрация контента, автоматическая пунктуация (пока только в бета-версии) и дикторская диаризация (тоже в бета-версии).

И наконец, их API можно установить в помещении. Но важно отметить, что модель ИИ, установленная в помещении, будет продолжать отправлять данные в Google, чтобы сообщать об использовании API, что может вызывать беспокойство с точки зрения конфиденциальности.

Цены Google в основном составляют $0,006 / 15 секунд для базового преобразования речи в текст и $0,009 / 15 секунд для конкретных случаев использования, таких как транскрипция видео или телефонная транскрипция.

Допустим, вы хотите автоматически анализировать телефонные звонки, поступающие в вашу службу поддержки (чтобы впоследствии проводить анализ настроений или, например, извлекать из них сущности). Если у вас есть 5 агентов поддержки, проводящих по 4 часа в день в телефонных разговорах с клиентами, то API Google speech-to-text обойдется вам в 1400 долларов в месяц.

Если вас беспокоит стоимость или конфиденциальность, лучше перейти на альтернативу с открытым исходным кодом: OpenAI Whisper.

Шепот: Лучшая альтернатива Google Speech-To-Text

Whisper - это модель ИИ с открытым исходным кодом, которая только что была выпущена OpenAI.

У OpenAI есть история открытых проектов по созданию искусственного интеллекта. Например, GPT-2 был разработан OpenAI несколько лет назад. На тот момент это была лучшая модель генеративной обработки естественного языка из когда-либо созданных, и она проложила путь для гораздо более продвинутых моделей, таких как GPT-3, GPT-J, OPT, Bloom... Недавно они также выпустили хорошую среду программирования CUDA под названием Triton.

Однако не все модели OpenAI являются открытыми. Две их самые интересные модели: GPT-3 и DALL-E, все еще являются закрытыми моделями, которые можно использовать только через их платный API.

Whisper захватывает экосистему преобразования речи в текст: он может автоматически определять язык ввода, затем транскрибировать текст примерно на 100 языках, автоматически расставлять знаки препинания и даже переводить результат при необходимости. Точность очень высока, и вы можете применять эту модель для любого типа ввода (аудио, видео, телефонные звонки, медицинские беседы и т.д.).

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

Whisper, конечно, бесплатен, но если вы хотите установить его самостоятельно, вам придется потратить на это некоторое количество человеческого времени, а также заплатить за базовые серверы и графические процессоры. Если вы предпочитаете воспользоваться управляемой версией, вы можете использовать API, например NLP Cloud: попробуйте Шепот бесплатно на NLP Cloud прямо сейчас!.

Установка и развертывание OpenAI Whisper

У вас есть 2 варианта, если вы хотите установить и развернуть Whisper на данный момент. Первый - использовать Python-библиотеку Whisper от OpenAI, а второй - использовать реализацию Whisper в Hugging Face Transformers. Давайте рассмотрим оба решения.

Использование библиотеки whisper Python

Это решение является самым простым. В основном вам нужно следовать инструкциям OpenAI на репозитории Github проекта Whisper.

First install the whisper Python lib:

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

Then install ffmpeg on your system if it is not the case yet:

# on Ubuntu or Debian
sudo apt update && sudo apt install ffmpeg

# on Arch Linux
sudo pacman -S ffmpeg

# on MacOS using Homebrew (https://brew.sh/)
brew install ffmpeg

# on Windows using Chocolatey (https://chocolatey.org/)
choco install ffmpeg

# on Windows using Scoop (https://scoop.sh/)
scoop install ffmpeg

Several flavors of Whisper are available: tiny, base, small, medium, and large. Of course the bigger the better, so if you are looking for state of the art results we recommend the large version. Here is a very simply Python script that opens an mp3 audio file stored on your disk, automatically detects the input language, and transcribes it:

import whisper

model = whisper.load_model("large")
result = model.transcribe("audio.mp3")
print(result["text"])

Simple isn't it?

Использование реализации "Обнимающееся лицо

In order to use Hugging Face's implementation of Whisper you will first need to install HF Transfomers, librosa, and Pytorch:

pip install transformers
pip install librosa
pip install torch

You also need to install ffmpeg (see above).

Now, here is a Python script that does transcription in English:

from transformers import WhisperProcessor, WhisperForConditionalGeneration
import librosa

speech, _ = librosa.load("audio.mp3")

processor = WhisperProcessor.from_pretrained("openai/whisper-large")
model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-large")

model.config.forced_decoder_ids = processor.get_decoder_prompt_ids(language = "en", task = "transcribe")
input_features = processor(speech, return_tensors="pt").input_features 
predicted_ids = model.generate(input_features)
transcription = processor.batch_decode(predicted_ids)

print(processor.batch_decode(predicted_ids, skip_special_tokens = True))

There are 2 limitations with this Hugging Face implementation. First you need to manually set the source language (no automatic input language detection is implemented yet). And secondly no automatic chunking is applied, which means that you cannot transcribe content that is larger than 30 seconds...

Maybe these limitations will be solved in future releases?

A nice thing though is that there is a Tensorflow implementation available too, which means that you can use XLA compilation and get much faster response times.

Требования к оборудованию

Как мы видели выше, Whisper довольно прост в установке. Однако она требует продвинутого оборудования. Если вы хотите использовать большую версию модели, рекомендуется использовать графический процессор.

Если вы используете либу Whisper Python (см. выше), вам потребуется около 10 ГБ оперативной памяти и 11 ГБ VRAM. Это означает, что на практике вам понадобится 16 ГБ GPU как минимум. Это может быть, например, NVIDIA Tesla T4 или NVIDIA A10.

На Tesla T4 вы расшифруете 30 секунд аудио примерно за 6 секунд.

Соображения по производительности

Если вы хотите повысить производительность по умолчанию, о которой говорилось выше, вот несколько стратегий, которые вы можете изучить:

Заключение

OpenAI Whisper - это революция в мире speech-to-text. Впервые любой желающий может получить доступ к современному автоматическому распознаванию речи благодаря модели с открытым исходным кодом, что делает Whisper хорошей альтернативой Google speech-to-text API.

Установка и развертывание такой модели ИИ все еще остается сложной задачей из-за аппаратного обеспечения, которое требуется под капотом. Большая версия Whisper не может работать на потребительском оборудовании.

Если вы хотите просто попробовать Whisper, не утруждая себя вопросами инфраструктуры, пожалуйста, попробуйте его на NLP Cloud API: попробуйте Шепот бесплатно на NLP Cloud прямо сейчас!.

Julien Salinas
технический директор NLP Cloud