Этот проект представляет собой приложение транскрипции в реальном времени, которое использует модель Whisper Openai для преобразования ввода речи в выход текста. Он может быть использован для транскрибирования как живого аудио входа из микрофона, так и предварительно записанных аудиофайлов.
bash scripts/setup.sh pip install whisper-live Сервер поддерживает две бэкэнды faster_whisper и tensorrt . Если запуск бэкэнда tensorrt Follow Tensorrt_whisper readme
python3 run_server.py --port 9090
--backend faster_whisper
# running with custom model
python3 run_server.py --port 9090
--backend faster_whisper
-fw " /path/to/custom/faster/whisper/model " # Run English only model
python3 run_server.py -p 9090
-b tensorrt
-trt /home/TensorRT-LLM/examples/whisper/whisper_small_en
# Run Multilingual model
python3 run_server.py -p 9090
-b tensorrt
-trt /home/TensorRT-LLM/examples/whisper/whisper_small
-m Чтобы контролировать количество потоков, используемых OpenMP, вы можете установить переменную среды OMP_NUM_THREADS . Это полезно для управления ресурсами процессора и обеспечения последовательной производительности. Если не указано, OMP_NUM_THREADS установлен на 1 по умолчанию. Вы можете изменить это, используя аргумент --omp_num_threads :
python3 run_server.py --port 9090
--backend faster_whisper
--omp_num_threads 4По умолчанию при запуске сервера без указания модели сервер создаст новую модель Whisper для каждого клиентского соединения. Это имеет преимущество в том, что сервер может использовать разные размеры модели, основываясь на запрошенном клиентском размере модели. С другой стороны, это также означает, что вы должны ждать загрузки модели на клиентское соединение, и вы увеличите (v) использование оперативной памяти.
При обслуживании пользовательской модели Tensorrt с использованием модели -trt или пользовательской модели FASEST_WHISPER с помощью параметра -fw сервер вместо этого будет создавать только пользовательскую модель один раз, а затем повторно используйте ее для всех клиентских соединений.
Если вы этого не хотите, установите --no_single_model .
lang : Язык входного аудио, применимо только при использовании многоязычной модели.translate : если установить в True то переведите с любого языка на en .model : Whisper Model Size.use_vad : использовать ли Voice Activity Detection на сервере.save_output_recording : Установите TRUE, чтобы сохранить ввод микрофона в качестве файла .wav во время транскрипции в прямом эфире. Этот вариант полезен для сеансов записи для последующего воспроизведения или анализа. По умолчанию False .output_recording_filename : указывает путь файла .wav , где будет сохранен ввод микрофона, если save_output_recording будет установлен на True .max_clients : указывает максимальное количество клиентов, которые должен разрешить сервер. По умолчанию до 4.max_connection_time : максимальное время подключения для каждого клиента за несколько секунд. По умолчанию до 600. from whisper_live . client import TranscriptionClient
client = TranscriptionClient (
"localhost" ,
9090 ,
lang = "en" ,
translate = False ,
model = "small" , # also support hf_model => `Systran/faster-whisper-small`
use_vad = False ,
save_output_recording = True , # Only used for microphone input, False by Default
output_recording_filename = "./output_recording.wav" , # Only used for microphone input
max_clients = 4 ,
max_connection_time = 600
) Он подключается к серверу, работающему на LocalHost на порте 9090. Используя многоязычную модель, язык для транскрипции будет автоматически обнаружен. Вы также можете использовать вариант языка, чтобы указать целевой язык для транскрипции, в данном случае, английский («en»). Опция «Перевод» должна быть установлена на True , если мы хотим перевести с исходного языка на английский и False , если мы хотим транскрибировать на исходном языке.
client ( "tests/jfk.wav" ) client () client ( rtsp_url = "rtsp://admin:[email protected]/rtsp" ) client ( hls_url = "http://as-hls-ww-live.akamaized.net/pool_904/live/ww/bbc_1xtra/bbc_1xtra.isml/bbc_1xtra-audio%3d96000.norewind.m3u8" )Графический процессор
docker run -it --gpus all -p 9090:9090 ghcr.io/collabora/whisperlive-gpu:latestdocker run -p 9090:9090 --runtime=nvidia --gpus all --entrypoint /bin/bash -it ghcr.io/collabora/whisperlive-tensorrt
# Build small.en engine
bash build_whisper_tensorrt.sh /app/TensorRT-LLM-examples small.en
# Run server with small.en
python3 run_server.py --port 9090
--backend tensorrt
--trt_model_path " /app/TensorRT-LLM-examples/whisper/whisper_small_en "Процессор
docker run -it -p 9090:9090 ghcr.io/collabora/whisperlive-cpu:latestПримечание . По умолчанию мы используем «маленький» размер модели. Чтобы создать изображение Docker для другого размера модели, измените размер на Server.py, а затем создайте изображение Docker.
Мы готовы помочь вам с открытым исходным кодом и проприетарными проектами искусственного интеллекта. Вы можете связаться с нами через сайт Collabora или [email protected] и [email protected].
@article { Whisper
title = { Robust Speech Recognition via Large-Scale Weak Supervision } ,
url = { https://arxiv.org/abs/2212.04356 } ,
author = { Radford, Alec and Kim, Jong Wook and Xu, Tao and Brockman, Greg and McLeavey, Christine and Sutskever, Ilya } ,
publisher = { arXiv } ,
year = { 2022 } ,
} @misc { Silero VAD,
author = { Silero Team } ,
title = { Silero VAD: pre-trained enterprise-grade Voice Activity Detector (VAD), Number Detector and Language Classifier } ,
year = { 2021 } ,
publisher = { GitHub } ,
journal = { GitHub repository } ,
howpublished = { url{https://github.com/snakers4/silero-vad} } ,
email = { hello @ silero.ai }
}