Proyek ini adalah aplikasi transkripsi real-time yang menggunakan model Whisper OpenAI untuk mengubah input ucapan menjadi output teks. Ini dapat digunakan untuk menyalin input audio langsung dari mikrofon dan file audio yang direkam sebelumnya.
bash scripts/setup.sh
pip install whisper-live
Server mendukung dua backend faster_whisper
dan tensorrt
. Jika menjalankan backend tensorrt
ikuti 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
Untuk mengontrol jumlah utas yang digunakan oleh OpenMP, Anda dapat mengatur variabel lingkungan OMP_NUM_THREADS
. Ini berguna untuk mengelola sumber daya CPU dan memastikan kinerja yang konsisten. Jika tidak ditentukan, OMP_NUM_THREADS
diatur ke 1
secara default. Anda dapat mengubah ini dengan menggunakan argumen --omp_num_threads
:
python3 run_server.py --port 9090
--backend faster_whisper
--omp_num_threads 4
Secara default, saat menjalankan server tanpa menentukan model, server akan membuat model bisikan baru untuk setiap koneksi klien. Ini memiliki keuntungan, bahwa server dapat menggunakan ukuran model yang berbeda, berdasarkan ukuran model yang diminta klien. Di sisi lain, itu juga berarti Anda harus menunggu model dimuat pada koneksi klien dan Anda akan meningkatkan (V) penggunaan RAM.
Saat menyajikan model Tensorrt khusus menggunakan -trt
atau model Faster_Whisper khusus menggunakan opsi -fw
, server hanya akan membuat model kustom sekali dan kemudian menggunakannya kembali untuk semua koneksi klien.
Jika Anda tidak menginginkan ini, atur --no_single_model
.
lang
: Bahasa audio input, hanya berlaku jika menggunakan model multibahasa.translate
: Jika diatur ke True
maka terjemahkan dari bahasa apa pun ke en
.model
: ukuran model Whisper.use_vad
: Apakah akan menggunakan Voice Activity Detection
di server.save_output_recording
: Setel ke true untuk menyimpan input mikrofon sebagai file .wav
selama transkripsi langsung. Opsi ini bermanfaat untuk sesi perekaman untuk pemutaran atau analisis selanjutnya. Default ke False
.output_recording_filename
: Menentukan jalur file .wav
di mana input mikrofon akan disimpan jika save_output_recording
diatur ke True
.max_clients
: Menentukan jumlah maksimum klien yang harus diizinkan oleh server. Default ke 4.max_connection_time
: Waktu koneksi maksimum untuk setiap klien dalam hitungan detik. Default ke 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
)
Ini terhubung ke server yang berjalan di LocalHost di port 9090. Menggunakan model multibahasa, bahasa untuk transkripsi akan terdeteksi secara otomatis. Anda juga dapat menggunakan opsi bahasa untuk menentukan bahasa target untuk transkripsi, dalam hal ini, bahasa Inggris ("en"). Opsi terjemahan harus diatur ke True
jika kita ingin menerjemahkan dari bahasa sumber ke bahasa Inggris dan False
jika kita ingin ditranskripsi dalam bahasa sumber.
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" )
GPU
docker run -it --gpus all -p 9090:9090 ghcr.io/collabora/whisperlive-gpu:latest
docker 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 "
CPU
docker run -it -p 9090:9090 ghcr.io/collabora/whisperlive-cpu:latest
Catatan : Secara default kami menggunakan ukuran model "kecil". Untuk membangun gambar Docker untuk ukuran model yang berbeda, ubah ukuran di server.py dan kemudian bangun gambar Docker.
Kami tersedia untuk membantu Anda dengan proyek AI open source dan eksklusif. Anda dapat menghubungi kami melalui situs web Collabora atau [email protected] dan [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 }
}