Боретеся зі штучним інтелектом або повним циклом розробки? Наші експерти допоможуть вам: індивідуальні консультації, технічна інтеграція та багато іншого. Звертайтеся за адресою [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 може бути встановлений у приміщеннях. Але важливо зазначити, що модель on-prem AI буде продовжувати надсилати дані в Google, щоб повідомити про використання API, що може викликати занепокоєння з точки зору конфіденційності.

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

Припустимо, ви хочете автоматично аналізувати телефонні дзвінки, що надходять до вашої служби підтримки (наприклад, для того, щоб згодом провести аналіз настроїв або вилучення сутностей). Якщо у вас є 5 агентів підтримки, які проводять по 4 години на день на телефоні з клієнтами, API перетворення мови в текст від Google обійдеться вам в 1400 доларів на місяць.

Якщо вас турбують витрати або конфіденційність, ви можете перейти на альтернативу з відкритим вихідним кодом: OpenAI Whisper.

Шепіт: Краща альтернатива Google Speech-To-Text

Whisper - це модель штучного інтелекту з відкритим вихідним кодом, яку нещодавно випустила компанія OpenAI.

OpenAI має історію створення великих проектів з відкритим вихідним кодом у сфері ШІ. Наприклад, GPT-2 був розроблений OpenAI кілька років тому. На той час це була найкраща генеративна модель обробки природної мови, коли-небудь створена, і вона проклала шлях для набагато більш просунутих моделей, таких як GPT-3, GPT-J, OPT, Bloom... Нещодавно вони також випустили гарний фреймворк для програмування на CUDA під назвою Triton.

Однак не всі моделі OpenAI були з відкритим вихідним кодом. Їх 2 найцікавіші моделі: GPT-3 і DALL-E, все ще залишаються приватними моделями, які можна використовувати тільки через їх платний API.

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

І звичайно, ще однією великою перевагою Whisper є те, що ви можете розгорнути його самостійно на власних серверах, що дуже добре з точки зору конфіденційності.

Звичайно, Whisper безкоштовний, але якщо ви хочете встановити його самостійно, вам доведеться витратити на це трохи людського часу, а також заплатити за базові сервери та графічні процесори. Якщо ви віддаєте перевагу керованій версії, ви можете використовувати API, наприклад, NLP Cloud: спробуйте Whisper безкоштовно в NLP Cloud прямо зараз!.

Встановлення та розгортання OpenAI Whisper

На даний момент у вас є 2 варіанти, якщо ви хочете встановити і розгорнути Whisper. Перший - використовувати бібліотеку OpenAI whisper Python, а другий - використовувати реалізацію Whisper від Hugging Face Transformers. Розглянемо обидва варіанти.

Використання бібліотеки whisper Python

Це рішення є найпростішим. В основному вам потрібно слідувати інструкціям OpenAI на Github-репозиторії проекту "Шепіт.

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?

Використання реалізації Hugging Face

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 ГБ графічного процесора. Це може бути NVIDIA Tesla T4, наприклад, або NVIDIA A10.

На Tesla T4 ви запишете 30 секунд аудіо приблизно за 6 секунд.

Міркування щодо ефективності

Якщо ви хочете покращити згадану вище продуктивність за замовчуванням, ось кілька стратегій, які ви можете дослідити:

Висновок

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

Встановлення і розгортання такої моделі ШІ все ще залишається складним завданням через апаратне забезпечення, необхідне під капотом. Велика версія Whisper не може працювати на побутовому обладнанні.

Якщо ви хочете спробувати Whisper, не переймаючись питаннями інфраструктури, будь ласка, спробуйте його на NLP Cloud API: спробуйте Whisper безкоштовно в NLP Cloud прямо зараз!.

Julien Salinas
CTO в NLP Cloud