Имате проблеми с ИИ или разработката на пълен пакет? Нашите експерти са тук, за да ви напътстват: индивидуални съвети, техническа интеграция и др. Свържете се с [email protected].

Как да инсталирате и внедрите Whisper, най-добрата алтернатива с отворен код на Google Speech-To-Text

OpenAI Whisper е най-добрата алтернатива с отворен код на Google за преобразуване на реч в текст към днешна дата. Той работи на 100 езика (автоматично открити), добавя препинателни знаци и дори може да преведе резултата, ако е необходимо. В тази статия ще ви покажем как да инсталирате Whisper и да го внедрите в продукцията.

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

Говор към текст в Google

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

Този API разполага и с приятни допълнителни функции като филтриране на съдържанието, автоматична пунктуация (засега само в бета версия) и записване на дикторите (също в бета версия).

На последно място, техният API може да бъде инсталиран на място. Но е важно да се отбележи, че моделът с изкуствен интелект на място ще продължи да изпраща данни на Google, за да докладва за използването на API, което може да е проблем от гледна точка на поверителността.

Цените на Google са основно 0,006 долара за 15 секунди за основен превод на реч към текст и 0,009 долара за 15 секунди за специфични случаи на използване, като например транскрипция на видео или транскрипция на телефонни разговори.

Да речем, че искате автоматично да анализирате телефонните обаждания, направени към екипа за поддръжка (за да извършите по-късно анализ на настроенията или извличане на същности върху тях, например). Ако разполагате с 5 агенти по поддръжката, които прекарват по 4 часа на ден на телефона с клиенти, API за преобразуване на реч в текст на Google ще ви струва 1400 USD на месец.

Ако се притеснявате за разходите или поверителността, може да искате да преминете към алтернатива с отворен код: 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

Имате две възможности, ако искате да инсталирате и разгърнете Whisper за момента. Първата е да използвате библиотеката на OpenAI Whisper Python, а втората е да използвате имплементацията на 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 GB RAM и 11 GB VRAM. Това означава, че на практика ще ви е необходим поне 16GB графичен процесор. Той може да бъде например 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
Технически директор в NLP Cloud