Für eine GPU-optimierte Installation sind zusätzliche Schritte erforderlich. Diese Schritte werden für diejenigen empfohlen, die eine bessere Leistung benötigen und eine kompatible NVIDIA -GPU haben.
Hinweis : Um zu überprüfen, ob Ihre NVIDIA -GPU CUDA unterstützt, besuchen Sie die offizielle CUDA -GPUS -Liste.
Um Realtimestt mit GPU -Unterstützung über CUDA zu verwenden, befolgen Sie die folgenden Schritte:
Installieren Sie Nvidia Cuda Toolkit 11.8 :
Installieren Sie Nvidia Cudnn 8.7.0 für CUDA 11.x :
Installieren Sie FFMPEG :
Sie können ein Installateur für Ihr Betriebssystem von der FFMPEG -Website herunterladen.
Oder verwenden Sie einen Paketmanager:
Auf Ubuntu oder Debian :
sudo apt update && sudo apt install ffmpegAuf Arch Linux :
sudo pacman -S ffmpegAuf macOS mit Homebrew (https://brew.sh/):
brew install ffmpegUnter Fenstern mit Schokoladen (https://chocolatey.org/):
choco install ffmpegUnter Windows mit Scoop (https://scoop.sh/):
scoop install ffmpegInstallieren Sie Pytorch mit CUDA -Unterstützung :
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
Win 如果装不上 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
Einfach zu verwendende Sprachbibliothek mit geringer Latenz für Echtzeitanwendungen
Realtimestt hört auf das Mikrofon und transkreibt Voice in Text.
Es ist ideal für:
with Anweisung verwendet werden)Hinweis: Da wir jetzt das
multiprocessing-Modul verwenden, stellen Sie sicher, dass Sie dasif __name__ == '__main__':Schutz in Ihrem Code, um unerwartetes Verhalten zu verhindern, insbesondere auf Plattformen wie Windows. Eine ausführliche Erklärung dazu, warum dies wichtig ist, besuchen Sie die offizielle Python -Dokumentation zurmultiprocessing.
Hinweis : Schauen Sie sich Realtimetts, das Ausgangsgeschäft dieser Bibliothek, für Text-to-Voice-Funktionen an. Zusammen bilden sie einen leistungsstarken Echtzeit -Audio -Wrapper um große Sprachmodelle.
Diese Bibliothek verwendet:
Diese Komponenten stellen den "Branchenstandard" für hochmoderne Anwendungen dar und bieten die modernste und effektivste Grundlage für den Aufbau von High-End-Lösungen.
pip install RealtimeSTTDadurch werden alle erforderlichen Abhängigkeiten installiert, einschließlich einer CPU -Unterstützung nur von Pytorch.
Obwohl es möglich ist, Realtimestt nur mit einer CPU -Installation auszuführen (in diesem Fall ein kleines Modell wie "Tiny" oder "Basis" verwenden), erhalten Sie mit:
Für eine GPU-optimierte Installation sind zusätzliche Schritte erforderlich. Diese Schritte werden für diejenigen empfohlen, die eine bessere Leistung benötigen und eine kompatible NVIDIA -GPU haben.
Hinweis : Um zu überprüfen, ob Ihre NVIDIA -GPU CUDA unterstützt, besuchen Sie die offizielle CUDA -GPUS -Liste.
Um Realtimestt mit GPU -Unterstützung über CUDA zu verwenden, befolgen Sie die folgenden Schritte:
Installieren Sie Nvidia Cuda Toolkit 11.8 :
Installieren Sie Nvidia Cudnn 8.7.0 für CUDA 11.x :
Installieren Sie FFMPEG :
Sie können ein Installateur für Ihr Betriebssystem von der FFMPEG -Website herunterladen.
Oder verwenden Sie einen Paketmanager:
Auf Ubuntu oder Debian :
sudo apt update && sudo apt install ffmpegAuf Arch Linux :
sudo pacman -S ffmpegAuf macOS mit Homebrew (https://brew.sh/):
brew install ffmpegUnter Fenstern mit Schokoladen (https://chocolatey.org/):
choco install ffmpegUnter Windows mit Scoop (https://scoop.sh/):
scoop install ffmpegInstallieren Sie Pytorch mit CUDA -Unterstützung :
pip uninstall torch
pip install torch==2.0.1+cu118 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118Grundnutzung:
Start und Stopp der Aufnahme werden manuell ausgelöst.
recorder . start ()
recorder . stop ()
print ( recorder . text ())Aufzeichnung basierend auf der Erkennung von Sprachaktivitäten.
with AudioToTextRecorder () as recorder :
print ( recorder . text ())Beim Ausführen von Recorder.text in einer Schleife wird empfohlen, einen Rückruf zu verwenden, sodass die Transkription asynchron ausgeführt wird:
def process_text ( text ):
print ( text )
while True :
recorder . text ( process_text )Keyword -Aktivierung vor dem Erkennen der Stimme. Schreiben Sie die von den Kommas getrennte Liste Ihrer gewünschten Aktivierungsschlüsselwörter in den Parameter wake_words. Sie können Wake -Wörter aus dieser Liste auswählen: Alexa, Americano, Blueberry, Humblebee, Computer, Grapefruits, Heuschrecke, Hey Google, Hey Siri, Jarvis, OK Google, Picovoice, Stachelschwirke, Terminator.
recorder = AudioToTextRecorder ( wake_words = "jarvis" )
print ( 'Say "Jarvis" then speak.' )
print ( recorder . text ())Sie können Callback -Funktionen festlegen, die auf verschiedenen Ereignissen ausgeführt werden (siehe Konfiguration):
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 )Wenn Sie nicht den lokalen Mikrofon-Set-Use_Microphon-Parameter für False verwenden möchten, und mit dieser Methode RAW-PCM-Audiochwere in 16-Bit-Mono (Sampled 16000) bereitstellen:
recorder . feed_audio ( audio_chunk )Sie können den Rekorder mit dem Kontext -Manager -Protokoll sicher herunterladen:
with AudioToTextRecorder () as recorder :
[...]Oder Sie können die Shutdown -Methode manuell aufrufen (falls "mit" mit "mit" nicht möglich ist):
recorder . shutdown ()Das Test -Unterverzeichnis enthält eine Reihe von Skripten, mit denen Sie die Funktionen der Realtimetts -Bibliothek bewerten und verstehen können.
Testen Sie Skripte abhängig von der Realtimetts -Bibliothek. Möglicherweise müssen Sie Ihre Azure -Dienstregion innerhalb des Skripts eingeben. Bei Verwendung von OpenAi-, Azure- oder Elevenlabs-bezogenen Demo-Skripten sollten die API-Schlüssel in den Umgebungsvariablen OpenAI_API_KEY, Azure_Speech_Key und Elevenlabs_API_Key (siehe Realtimetts) bereitgestellt werden (siehe Realtimetts)
Simple_test.py
realtimestt_test.py
Wakeword_test.py
Übersetzer.py
pip install openai realtimetts .openai_voice_interface.py
pip install openai realtimetts .Advanced_talk.py
pip install openai keyboard realtimetts .minimalistic_talkbot.py
pip install openai realtimetts .Das Subdad -Verzeichnis example_app enthält eine polierte Benutzeroberfläche für die OpenAI -API, die auf PYQT5 basiert.
AudioToTextRecorder Wenn Sie die AudioToTextRecorder -Klasse initialisieren, haben Sie verschiedene Optionen, um das Verhalten anzupassen.
Modell (str, default = "winzig"): Modellgröße oder Pfad für die Transkription.
Sprache (STR, default = ""): Sprachcode für die Transkription. Wenn das Modell leer bleibt, wird versucht, die Sprache automatisch zu erkennen. Unterstützte Sprachcodes sind in der Whisper Tokenizer Library aufgeführt.
compute_type (str, default = "Standard"): Gibt den für die Transkription verwendeten Berechnungstyp an. Siehe Whisper Quantisierung
input_device_index (int, default = 0): Audio -Eingabegeräte -Index zu verwenden.
gpu_device_index (int, default = 0): GPU -Geräteindex zu verwenden. Das Modell kann auch auf mehreren GPUs geladen werden, indem eine Liste von IDs bestanden wird (z. B. [0, 1, 2, 3]).
On_Recording_start : Eine aufrufbare Funktion, die beim Starten der Aufzeichnung ausgelöst wird.
On_Recording_Stop : Eine aufrufbare Funktion, die beim Aufnehmen ausgelöst wird.
on_transcription_start : Eine aufrufbare Funktion, die beim Starten der Transkription ausgelöst wird.
sorgene_sentce_starting_uppercase (bool, default = true): Stellen Sie sicher, dass jeder vom Algorithmus erkannte Satz mit einem Großbuchstaben beginnt.
sorgene_sentce_ends_with_period (bool, default = true): stellt sicher, dass jeder Satz, der nicht mit Interpunktion endet, wie "?", "! endet mit einer Periode
Use_Microphon (bool, default = true): Verwendung von lokalem Mikrofon zur Transkription. Legen Sie auf False fest, wenn Sie Brocken mit der Feed_audio -Methode zur Verfügung stellen möchten.
Spinner (bool, default = true): Bietet einen Spinner -Animationstext mit Informationen über den aktuellen Recorder -Status.
Level (int, default = logging.warning): Protokollierungsstufe.
HINWEIS : Beim Aktivieren der Echtzeitbeschreibung wird eine GPU -Installation stark empfohlen. Die Verwendung von Echtzeit -Transkription kann hohe GPU -Lasten erzeugen.
enable_realtime_transcription (bool, default = false): Aktiviert oder deaktiviert die Echtzeit-Transkription von Audio. Wenn das Audio auftret, wird er kontinuierlich transkribiert, wenn es aufgezeichnet wird.
realtime_model_type (str, default = "winy"): Gibt die Größe oder den Pfad des maschinellen Lernmodells an, das für die Echtzeit-Transkription verwendet werden soll.
realtime_processing_pause (float, default = 0,2): Gibt das Zeitintervall in Sekunden nach dem Transkribieren eines Audio -Stücks an. Niedrigere Werte führen zu mehr "Echtzeit" (häufig) Transkriptionsaktualisierungen, können jedoch die Rechenlast erhöhen.
On_Realtime_Transcription_Update : Eine Rückruffunktion, die ausgelöst wird, wenn in der Echtzeit-Transkription ein Update vorliegt. Die Funktion wird mit dem neu transkribierten Text als Argument aufgerufen.
On_Realtime_Transcription_Stabilized : Eine Rückruffunktion, die ausgelöst wird, wenn es in der Echtzeit-Transkription ein Update gibt und eine höhere Qualität zurückgibt, stabilisierte Text als Argument.
Silero_sensitivität (float, Standard = 0,6): Empfindlichkeit für die Erkennung der Sprachaktivität von Silero von 0 (am wenigsten empfindlich) bis 1 (am empfindlichsten). Die Standardeinstellung ist 0,6.
Silero_sensitivität (float, Standard = 0,6): Empfindlichkeit für die Erkennung der Sprachaktivität von Silero von 0 (am wenigsten empfindlich) bis 1 (am empfindlichsten). Die Standardeinstellung ist 0,6.
silero_use_onnx (bool, default = false): Aktiviert die Verwendung des vorgebildeten Modells von Silero im ONNX-Format (Open Neural Network Exchange) anstelle des Pytorch-Formats. Standard ist falsch. Empfohlen für eine schnellere Leistung.
post_speech_silence_duration (float, default = 0,2): Dauer in Sekunden der Stille, die der Sprache folgen muss, bevor die Aufzeichnung abgeschlossen ist. Dies stellt sicher, dass kurze Pausen während der Sprache die Aufzeichnung nicht vorzeitig beenden.
min_gap_between_recordings (float, default = 1.0): Gibt das Mindestzeitintervall in Sekunden an, das zwischen dem Ende einer Aufzeichnungssitzung und dem Beginn eines anderen bestehen sollte, um schnelle aufeinanderfolgende Aufnahmen zu verhindern.
min_length_of_recording (float, default = 1.0): Gibt die minimale Dauer in Sekunden an, die eine Aufzeichnungssitzung dauern sollte, um eine aussagekräftige Audioaufnahme zu gewährleisten und übermäßig kurze oder fragmentierte Aufnahmen zu verhindern.
PRE_RECORDING_BUFFER_DURY (Float, Standard = 0,2): Die Zeitspanne in Sekunden, in denen Audio vor der formalen Aufzeichnung gepuffert wird. Dies trägt dazu bei, die Latenz auszubalken, die der Erkennung der Sprachaktivität inhärent ist und sicherstellt, dass kein anfängliches Audio übersehen wird.
ON_VAD_DETECT_START : Eine aufrufbare Funktion, die ausgelöst wird, wenn das System auf Sprachaktivität anhört.
ON_VAD_DETECT_STOP : Eine aufrufbare Funktion, die ausgelöst wird, wenn das System anhält, um auf Sprachaktivität zu hören.
WAKE_WORDS (STR, default = ""): Wake -Wörter zum Initiieren der Aufzeichnung. Mehrere Wake-Wörter können als von Kommas getrennte Zeichenfolge bereitgestellt werden. Unterstützte Wake -Worte sind: Alexa, Americano, Blaubeer, Hummel, Computer, Grapefruits, Heuschrecke, Hey Google, Hey Siri, Jarvis, OK Google, Picovoice, Stachelschwein, Terminator
WAKE_WORDS_SENsitivität (float, default = 0,6): Empfindlichkeitsniveau für die Wake -Word -Erkennung (0 für die am wenigsten empfindliche, 1 für die meisten empfindlich).
WAKE_WORD_ACTIVATION_DELAY (float, default = 0): Dauer in Sekunden nach Beginn der Überwachung, bevor das System umschaltet, um die Wortaktivierung zu wecken, wenn zunächst keine Stimme erkannt wird. Wenn das System auf Null gesetzt ist, verwendet das System die Wake -Word -Aktivierung sofort.
WAKE_WORD_TIMEOUT (float, default = 5): Dauer in Sekunden, nachdem ein Wake -Wort erkannt wurde. Wenn in diesem Fenster keine nachfolgende Sprachaktivität erkannt wird, übergeht das System zurück in einen inaktiven Zustand und wartet auf das nächste Wake -Wort oder die Sprachaktivierung.
on_wakeword_detected : Eine aufrufbare Funktion ausgelöst, wenn ein Wake -Wort erkannt wird.
on_wakeword_timeout : Eine aufrufbare Funktion, die ausgelöst wird, wenn das System nach der Aktivierung von Wake Word in einen inaktiven Zustand zurückgeht, wenn keine Sprache erkannt wurde.
on_wakeword_detction_start : Eine aufrufbare Funktion, die ausgelöst wird, wenn das System nach Weckwörtern anhört
on_wakeword_detction_end : Eine aufrufbare Funktion, die beim Anhalten von Wake -Wörtern ausgelöst wird (z.
Beiträge sind immer willkommen!
MIT
Kolja Beigel
E -Mail: [email protected]
Github