Langkah-langkah tambahan diperlukan untuk instalasi yang dioptimalkan GPU . Langkah -langkah ini direkomendasikan untuk mereka yang membutuhkan kinerja yang lebih baik dan memiliki GPU NVIDIA yang kompatibel.
Catatan : Untuk memeriksa apakah GPU NVIDIA Anda mendukung CUDA, kunjungi daftar GPU CUDA resmi.
Untuk menggunakan RealTimestt dengan dukungan GPU melalui CUDA, ikuti langkah -langkah ini:
Instal Nvidia Cuda Toolkit 11.8 :
Instal NVIDIA CUDNN 8.7.0 untuk CUDA 11.x :
Instal FFMPEG :
Anda dapat mengunduh penginstal untuk OS Anda dari situs web FFMPEG.
Atau gunakan manajer paket:
Di Ubuntu atau Debian :
sudo apt update && sudo apt install ffmpegDi Arch Linux :
sudo pacman -S ffmpegPada macOS menggunakan homebrew (https://brew.sh/):
brew install ffmpegPada windows menggunakan cokelat (https://chocolatey.org/):
choco install ffmpegPada windows menggunakan scoop (https://scoop.sh/):
scoop install ffmpegInstal Pytorch dengan dukungan CUDA :
pip uninstall torch
pip install torch==2.0.1+cu118 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt
Menangkan 如果装不上 WebRTCVAD , 提示了 vs C ++ 相关的报错 , 请下载 https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/ , C ++ 开发相关工具 , , ,
启动后端python RealtimeSTT_server2.py
双击index.html , 浏览器运行 , 填入服务器 ip 地址 , 注意 , 关闭服务器的防火墙 , 或者针对性放行 9001/9002 这两个用于 Websocket 连接的端口!
等待后端模型加载完毕后 , 就可以正常对话了。
2024-07-01
2024-06-03
2024-06-02
2024-05-28
Perpustakaan pidato-ke-teks yang mudah digunakan untuk aplikasi untuk aplikasi realtime
RealTimestt mendengarkan mikrofon dan menyalin suara ke dalam teks.
Itu ideal untuk:
with )Petunjuk: Karena kami menggunakan modul
multiprocessingsekarang, pastikan untuk memasukkanif __name__ == '__main__':Perlindungan dalam kode Anda untuk mencegah perilaku yang tidak terduga, terutama pada platform seperti Windows. Untuk penjelasan terperinci tentang mengapa ini penting, kunjungi dokumentasi Python resmi tentangmultiprocessing.
Petunjuk : Lihat Realtimetts, rekan output dari perpustakaan ini, untuk kemampuan teks-ke-suara. Bersama -sama, mereka membentuk pembungkus audio realtime yang kuat di sekitar model bahasa besar.
Perpustakaan ini menggunakan:
Komponen-komponen ini mewakili "standar industri" untuk aplikasi mutakhir, memberikan fondasi paling modern dan efektif untuk membangun solusi kelas atas.
pip install RealtimeSTTIni akan menginstal semua dependensi yang diperlukan, termasuk versi Pytorch yang hanya mendukung CPU .
Meskipun dimungkinkan untuk menjalankan realtimestt dengan instalasi CPU saja (gunakan model kecil seperti "Tiny" atau "base" dalam kasus ini) Anda akan mendapatkan pengalaman yang lebih baik menggunakan:
Langkah-langkah tambahan diperlukan untuk instalasi yang dioptimalkan GPU . Langkah -langkah ini direkomendasikan untuk mereka yang membutuhkan kinerja yang lebih baik dan memiliki GPU NVIDIA yang kompatibel.
Catatan : Untuk memeriksa apakah GPU NVIDIA Anda mendukung CUDA, kunjungi daftar GPU CUDA resmi.
Untuk menggunakan RealTimestt dengan dukungan GPU melalui CUDA, ikuti langkah -langkah ini:
Instal Nvidia Cuda Toolkit 11.8 :
Instal NVIDIA CUDNN 8.7.0 untuk CUDA 11.x :
Instal FFMPEG :
Anda dapat mengunduh penginstal untuk OS Anda dari situs web FFMPEG.
Atau gunakan manajer paket:
Di Ubuntu atau Debian :
sudo apt update && sudo apt install ffmpegDi Arch Linux :
sudo pacman -S ffmpegPada macOS menggunakan homebrew (https://brew.sh/):
brew install ffmpegPada windows menggunakan cokelat (https://chocolatey.org/):
choco install ffmpegPada windows menggunakan scoop (https://scoop.sh/):
scoop install ffmpegInstal Pytorch dengan dukungan CUDA :
pip uninstall torch
pip install torch==2.0.1+cu118 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118Penggunaan Dasar:
Mulai dan berhenti merekam dipicu secara manual.
recorder . start ()
recorder . stop ()
print ( recorder . text ())Rekaman berdasarkan deteksi aktivitas suara.
with AudioToTextRecorder () as recorder :
print ( recorder . text ())Saat menjalankan perekam.
def process_text ( text ):
print ( text )
while True :
recorder . text ( process_text )Aktivasi kata kunci sebelum mendeteksi suara. Tulis daftar kata kunci aktivasi yang Anda inginkan secara koma yang diinginkan ke dalam parameter Wake_Words. Anda dapat memilih kata Wake dari daftar ini: Alexa, Americano, Blueberry, Bumblebee, komputer, grapefruits, belalang, hei google, hey siri, jarvis, ok google, picovoice, landak, terminator.
recorder = AudioToTextRecorder ( wake_words = "jarvis" )
print ( 'Say "Jarvis" then speak.' )
print ( recorder . text ())Anda dapat menetapkan fungsi callback untuk dieksekusi pada berbagai acara (lihat konfigurasi):
def my_start_callback ():
print ( "Recording started!" )
def my_stop_callback ():
print ( "Recording stopped!" )
recorder = AudioToTextRecorder ( on_recording_start = my_start_callback ,
on_recording_stop = my_stop_callback )Jika Anda tidak ingin menggunakan parameter Mikrofon Lokal Use_microphone untuk salah dan menyediakan audiokunk PCM mentah dalam mono 16-bit (samplerate 16000) dengan metode ini:
recorder . feed_audio ( audio_chunk )Anda dapat mematikan perekam dengan aman dengan menggunakan protokol Context Manager:
with AudioToTextRecorder () as recorder :
[...]Atau Anda dapat memanggil metode shutdown secara manual (jika menggunakan "dengan" tidak layak):
recorder . shutdown ()Subdirektori uji berisi satu set skrip untuk membantu Anda mengevaluasi dan memahami kemampuan perpustakaan Realtimetts.
Uji skrip tergantung pada perpustakaan Realtimetts mungkin mengharuskan Anda untuk memasuki wilayah layanan Azure Anda di dalam skrip. Saat menggunakan skrip openai-, Azure- atau Elevenlabs terkait Demo, tombol API harus disediakan dalam variabel lingkungan OpenAI_API_KEY, AZURE_SPEECH_KEY dan Elevenlabs_api_key (lihat Realtimetts)
Simple_test.py
realtimestt_test.py
Wakword_test.py
translator.py
pip install openai realtimetts .openai_voice_interface.py
pip install openai realtimetts .Advanced_talk.py
pip install openai keyboard realtimetts .minimalistik_talkbot.py
pip install openai realtimetts .Subdirektori example_app berisi aplikasi antarmuka pengguna yang dipoles untuk API OpenAI berdasarkan PYQT5.
AudioToTextRecorder Saat Anda menginisialisasi kelas AudioToTextRecorder , Anda memiliki berbagai opsi untuk menyesuaikan perilakunya.
Model (str, default = "Tiny"): Ukuran atau jalur model untuk transkripsi.
Bahasa (str, default = ""): Kode bahasa untuk transkripsi. Jika dibiarkan kosong, model akan mencoba mendeteksi bahasa secara otomatis. Kode bahasa yang didukung tercantum di Whisper Tokenizer Library.
compute_type (str, default = "default"): Menentukan jenis perhitungan yang akan digunakan untuk transkripsi. Lihat kuantisasi Whisper
input_device_index (int, default = 0): Indeks perangkat input audio untuk digunakan.
GPU_DEVICE_INDEX (int, default = 0): Indeks perangkat GPU untuk digunakan. Model ini juga dapat dimuat pada beberapa GPU dengan melewati daftar ID (misalnya [0, 1, 2, 3]).
ON_RECORDING_START : Fungsi yang dapat dipanggil dipicu saat perekaman dimulai.
ON_RECORDING_STOP : Fungsi yang dapat dipanggil dipicu saat perekaman berakhir.
On_transcription_Start : Fungsi yang dapat dipanggil dipicu saat transkripsi dimulai.
Paste_sentence_startting_uppercase (bool, default = true): memastikan bahwa setiap kalimat yang terdeteksi oleh algoritma dimulai dengan huruf besar.
Paste_sentence_ends_with_period (bool, default = true): memastikan bahwa setiap kalimat yang tidak berakhir dengan tanda baca seperti "?", "!" diakhiri dengan periode
use_microphone (bool, default = true): Penggunaan mikrofon lokal untuk transkripsi. Setel ke false jika Anda ingin memberikan potongan metode feed_audio.
Spinner (bool, default = true): Menyediakan teks animasi spinner dengan informasi tentang status perekam saat ini.
Level (int, default = logging.warning): Level logging.
Catatan : Saat mengaktifkan Deskripsi Realtime Instalasi GPU sangat disarankan. Menggunakan transkripsi realtime dapat membuat beban GPU yang tinggi.
enable_realtime_transcription (bool, default = false): Mengaktifkan atau menonaktifkan transkripsi audio waktu nyata. Ketika diatur ke True, audio akan ditranskripsi terus menerus saat sedang direkam.
realtime_model_type (str, default = "Tiny"): Menentukan ukuran atau jalur model pembelajaran mesin yang akan digunakan untuk transkripsi real-time.
RealTime_Processing_Pause (float, default = 0.2): Menentukan interval waktu dalam detik setelah sepotong audio ditranskripsikan. Nilai yang lebih rendah akan menghasilkan lebih banyak pembaruan transkripsi "real-time" (sering) tetapi dapat meningkatkan beban komputasi.
on_realtime_transcription_update : fungsi panggilan balik yang dipicu setiap kali ada pembaruan dalam transkripsi waktu-nyata. Fungsi ini disebut dengan teks yang baru ditranskripsi sebagai argumennya.
on_realtime_transcription_stabilisasi : fungsi panggilan balik yang dipicu setiap kali ada pembaruan dalam transkripsi waktu-nyata dan mengembalikan teks yang lebih tinggi dan stabil sebagai argumennya.
Silero_sensitivity (float, default = 0,6): Sensitivitas untuk deteksi aktivitas suara Silero mulai dari 0 (paling tidak sensitif) hingga 1 (paling sensitif). Default adalah 0,6.
Silero_sensitivity (float, default = 0,6): Sensitivitas untuk deteksi aktivitas suara Silero mulai dari 0 (paling tidak sensitif) hingga 1 (paling sensitif). Default adalah 0,6.
silero_use_onnx (bool, default = false): Mengaktifkan penggunaan model pra-terlatih dari Silero dalam format Onnx (Open Neural Network Exchange) alih-alih format pytorch. Default salah. Direkomendasikan untuk kinerja yang lebih cepat.
POST_SPEECH_SILENCE_DURASI (float, default = 0.2): Durasi dalam detik keheningan yang harus mengikuti pidato sebelum rekaman dianggap selesai. Ini memastikan bahwa setiap jeda singkat selama pidato tidak secara prematur mengakhiri rekaman.
min_gap_between_recordings (float, default = 1.0): Menentukan interval waktu minimum dalam detik yang seharusnya ada antara akhir satu sesi perekaman dan awal yang lain untuk mencegah rekaman berturut -turut yang cepat.
min_length_of_recording (float, default = 1.0): Menentukan durasi minimum dalam detik bahwa sesi perekaman harus bertahan untuk memastikan penangkapan audio yang bermakna, mencegah rekaman yang terlalu pendek atau terfragmentasi.
pre_recording_buffer_duration (float, default = 0.2): Rentang waktu, dalam detik, di mana audio buffered sebelum perekaman formal. Ini membantu mengimbangi latensi yang melekat dalam deteksi aktivitas bicara, memastikan tidak ada audio awal yang terlewatkan.
ON_VAD_DETECT_START : Fungsi yang dapat dipanggil dipicu ketika sistem mulai mendengarkan aktivitas suara.
ON_VAD_DETECT_STOP : Fungsi yang dapat dipanggil dipicu ketika sistem berhenti untuk mendengarkan aktivitas suara.
Wake_words (str, default = ""): Bangun kata -kata untuk memulai perekaman. Beberapa kata bangun dapat disediakan sebagai string yang dipisahkan koma. Kata -kata bangun yang didukung adalah: Alexa, Americano, Blueberry, Bumblebee, Komputer, Grapefruits, Grasshopper, Hei Google, Hei Siri, Jarvis, Ok Google, Picovoice, Porcupine, Terminator
Wake_words_sensitivity (float, default = 0.6): Level sensitivitas untuk deteksi Wake Word (0 untuk paling tidak sensitif, 1 untuk paling sensitif).
Wake_word_activation_delay (float, default = 0): Durasi dalam detik setelah dimulainya pemantauan sebelum sistem beralih untuk membangunkan aktivasi kata jika tidak ada suara yang awalnya terdeteksi. Jika diatur ke nol, sistem menggunakan aktivasi Wake Word segera.
Wake_word_timeout (float, default = 5): Durasi dalam detik setelah kata Wake dikenali. Jika tidak ada aktivitas suara selanjutnya yang terdeteksi dalam jendela ini, sistem transisi kembali ke keadaan tidak aktif, menunggu kata bangun berikutnya atau aktivasi suara.
ON_WAKEWORD_DETECTED : Fungsi yang dapat dipanggil dipicu saat kata bangun terdeteksi.
ON_WAKEWORD_TIMEOUT : Fungsi yang dapat dipanggil dipicu ketika sistem kembali ke keadaan tidak aktif setelah ketika tidak ada pidato yang terdeteksi setelah aktivasi Wake Word.
on_wakeword_detection_start : fungsi yang dapat dipanggil dipicu saat sistem mulai mendengarkan kata bangun
on_wakeword_detection_end : Fungsi yang dapat dipanggil dipicu saat berhenti untuk mendengarkan kata bangun (misalnya karena batas waktu atau bangun kata terdeteksi)
Kontribusi selalu diterima!
Mit
Kolja Beigel
Email: [email protected]
GitHub