GPU優化安裝需要其他步驟。建議那些需要更好性能並具有兼容的NVIDIA GPU的人。
注意:要檢查您的NVIDIA GPU是否支持CUDA,請訪問官方的CUDA GPU列表。
要通過CUDA使用GPU支持的Realtimestt,請按照以下步驟:
安裝NVIDIA CUDA工具包11.8 :
為CUDA 11.x安裝NVIDIA CUDNN 8.7.0 :
安裝FFMPEG :
您可以從FFMPEG網站下載OS的安裝程序。
或使用軟件包管理器:
在Ubuntu或Debian上:
sudo apt update && sudo apt install ffmpeg在Arch Linux上:
sudo pacman -S ffmpeg在MacOS上使用Homebrew (https://brew.sh/):
brew install ffmpeg在窗戶上使用巧克力(https://chocalyy.org/):
choco install ffmpeg在Windows上使用SCOOP (https://scoop.sh/):
scoop install ffmpeg安裝帶有CUDA支持的Pytorch :
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
贏了webrtcvad,提示了vs vs c ++相關的報錯,https://visalstudio.microsoft.com/zh-hans/visual-cpp-build-tools/,安裝c ++開發相關工具
啟動後端python RealtimeSTT_server2.py
雙擊index.html ,瀏覽器運行
等待後端模型加載完畢後,就可以正常對話了。 ,就可以正常對話了。
2024-07-01
2024-06-03
2024-06-02
2024-05-28
實時應用程序易於使用的低延遲語音到文本庫
Realtimestt聆聽麥克風,並將語音轉錄為文本。
這是理想的選擇:
with中使用錄音機)提示:由於我們現在使用
multiprocessing模塊,因此請確保包括if __name__ == '__main__':在您的代碼中進行保護以防止意外行為,尤其是在Windows之類的平台上。有關為什麼這很重要的詳細說明,請訪問multiprocessing的官方Python文檔。
提示:查看本庫的輸出對應物的Realtimetts,以獲取文本到聲音功能。它們一起在大型語言模型上形成了強大的實時音頻包裝器。
該庫使用:
這些組件代表了最先進應用程序的“行業標準”,為建築高端解決方案提供了最現代有效的基礎。
pip install RealtimeSTT這將安裝所有必要的依賴項,包括僅CPU支持版本的Pytorch版本。
儘管只能使用CPU安裝運行RealTimestt(在這種情況下使用“ Tiny”或“ Base”)的小型型號(在這種情況下使用),您將使用以下方式獲得更好的體驗:
GPU優化安裝需要其他步驟。建議那些需要更好性能並具有兼容的NVIDIA GPU的人。
注意:要檢查您的NVIDIA GPU是否支持CUDA,請訪問官方的CUDA GPU列表。
要通過CUDA使用GPU支持的Realtimestt,請按照以下步驟:
安裝NVIDIA CUDA工具包11.8 :
為CUDA 11.x安裝NVIDIA CUDNN 8.7.0 :
安裝FFMPEG :
您可以從FFMPEG網站下載OS的安裝程序。
或使用軟件包管理器:
在Ubuntu或Debian上:
sudo apt update && sudo apt install ffmpeg在Arch Linux上:
sudo pacman -S ffmpeg在MacOS上使用Homebrew (https://brew.sh/):
brew install ffmpeg在窗戶上使用巧克力(https://chocalyy.org/):
choco install ffmpeg在Windows上使用SCOOP (https://scoop.sh/):
scoop install ffmpeg安裝帶有CUDA支持的Pytorch :
pip uninstall torch
pip install torch==2.0.1+cu118 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118基本用法:
錄製的開始和停止是手動觸發的。
recorder . start ()
recorder . stop ()
print ( recorder . text ())根據語音活動檢測進行錄製。
with AudioToTextRecorder () as recorder :
print ( recorder . text ())在循環中運行recorder.text時,建議使用回調,允許轉錄不同步:
def process_text ( text ):
print ( text )
while True :
recorder . text ( process_text )在檢測語音之前,關鍵字激活。將所需激活關鍵字的逗號分隔列表寫入Wake_words參數。您可以從這些列表中選擇喚醒單詞:Alexa,Americano,Blueberry,Bumblebee,Computer,Grapefruits,Grasshopper,Hey Google,Hey Siri,Jarvis,Ok Google,Picovoice,Picovoice,Picovoice,Porcupine,terminator,terminator。
recorder = AudioToTextRecorder ( wake_words = "jarvis" )
print ( 'Say "Jarvis" then speak.' )
print ( recorder . text ())您可以將回調函數設置為在不同事件上執行(請參閱配置):
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 )如果您不想將本地麥克風集使用use_microphone參數用於false,並使用此方法提供16位單聲道(採樣16000)的RAW PCM AudioChunks:
recorder . feed_audio ( audio_chunk )您可以使用上下文管理協議安全地關閉錄音機:
with AudioToTextRecorder () as recorder :
[...]或者,您可以手動調用關閉方法(如果使用“與”不可行):
recorder . shutdown ()測試子目錄包含一組腳本,以幫助您評估和了解Realtimetts庫的功能。
測試腳本取決於Realtimetts庫,可能需要您在腳本中輸入Azure服務區域。使用OpenAi-,Azure-或ElevenLabs與演示腳本時,應在環境變量OpenAi_Api_Key,Azure_speech_key和Eleevenlabs_api_key中提供API鍵(請參閱realtimetts)
simple_test.py
realtimestt_test.py
wakeword_test.py
translator.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 。example_app子目錄包含基於pyqt5的OpenAI API的拋光用戶界面應用程序。
AudioToTextRecorder的初始化參數當您初始化AudioToTextRecorder類時,您有多種選擇來自定義其行為。
模型(str,默認值=“ tiny”):轉錄的模型大小或路徑。
語言(str,default =“”):轉錄語言代碼。如果剩下空白,則該模型將嘗試自動檢測該語言。受支持的語言代碼在Whisper令牌庫中列出。
compute_type (str,default =“ default”):指定用於轉錄的計算類型。請參閱耳語量化
input_device_index (int,default = 0):要使用的音頻輸入設備索引。
gpu_device_index (int,默認值= 0):使用GPU設備索引。該模型也可以通過傳遞ID列表(例如[0,1,2,3])來加載多個GPU。
on_recording_start :錄製啟動時觸發的可可函數。
on_recording_stop :記錄結束時觸發的可呼叫功能。
on_transcription_start :轉錄開始時觸發的可可函數。
suse_sentence_starting_uppercase (bool,default = true):確保算法檢測到的每個句子以大寫字母開頭。
suse_sentence_ends_with_period (bool,default = true):確保每個句子不會以標點符號結尾,例如“?”,“!”以一段時間結尾
use_microphone (bool,默認值= true):用於轉錄的局部麥克風。如果要使用feed_audio方法提供塊,則設置為false。
Spinner (bool,default = true):提供一個Spinner動畫文本,其中包含有關當前錄音機狀態的信息。
級別(int,default = logging.warning):記錄級別。
注意:強烈建議使用實時說明GPU安裝。使用實時轉錄可能會產生高GPU負載。
enable_realtime_transcription (bool,default = false):啟用或禁用音頻的實時轉錄。當設置為true時,音頻將在記錄下連續轉錄。
REALTIME_MODEL_TYPE (str,default =“ tiny”):指定用於實時轉錄的機器學習模型的大小或路徑。
REALTIME_PROCESSING_PAUSE (FLOAT,默認值= 0.2):指定在轉錄一大片音頻後以秒為單位的時間間隔。較低的值將導致更多的“實時”(頻繁)轉錄更新,但可能會增加計算負載。
on_realtime_transcription_update :每當實時轉錄中有更新時會觸發的回調函數。該函數以新抄錄的文本為其參數調用。
on_realtime_transcription_stabilized :每當實時轉錄中有更新並返回更高質量,穩定的文本作為其參數時,它會觸發的回調函數。
silero_sensitivity (float,默認值= 0.6):Silero語音活動檢測的靈敏度從0(最不靈敏)到1(最敏感)。默認值為0.6。
silero_sensitivity (float,默認值= 0.6):Silero語音活動檢測的靈敏度從0(最不靈敏)到1(最敏感)。默認值為0.6。
SILERO_USE_ONNX (bool,default = false):啟用silero中的預訓練模型以ONNX(開放神經網絡交換)格式而不是pytorch格式使用。默認值為false。建議更快的性能。
POST_SPEECH_SILENCE_DURATION (float,默認值= 0.2):持續時間以秒數為單位,必須在錄製之前遵循語音。這樣可以確保演講期間的任何簡短暫停都不會過早結束錄音。
min_gap_between_recordings (float,default = 1.0):指定在一個錄製會話結束和另一個錄製會話結束之間應存在的最小時間間隔,以防止快速連續記錄。
min_length_of_recording (float,默認值= 1.0):指定錄製會話應持續的秒鐘內的最小持續時間,以確保有意義的音頻捕獲,以防止過度短或碎片的記錄。
pre_recording_buffer_duration (float,默認值= 0.2):在秒內的時間跨度,在此之前,音頻在正式記錄之前進行緩衝。這有助於平衡語音活動檢測中固有的延遲,確保不會錯過初始音頻。
ON_VAD_DETECT_START :系統開始收聽語音活動時觸發的可呼叫函數。
ON_VAD_DETECT_STOP :當系統停止偵聽語音活動時,觸發了可可的功能。
wake_words (str,default =“”):用於啟動記錄的喚醒單詞。可以作為逗號分隔字符串提供多個喚醒單詞。受支持的喚醒單詞是:Alexa,Americano,Blueberry,Bumblebee,Computer,Grapefruits,Grasshopper,Hey Google,Hey Siri,Jarvis,OK Google,Picovoice,Picovoice,Picovoice,Porcupine,Porcupine,terminator,Terminator
wake_words_sensitivity (float,默認值= 0.6):喚醒單詞檢測的靈敏度級別(至少敏感為0,對大多數敏感)。
wake_word_activation_delay (float,默認值= 0):如果最初檢測到沒有聲音,則在系統切換到Wake Word激活之前,在監視開始後的持續時間。如果設置為零,則係統立即使用喚醒單詞激活。
wake_word_timeout (float,默認值= 5):識別喚醒單詞後的持續時間。如果在此窗口中未檢測到隨後的語音活動,則係統將過渡到不活動狀態,等待下一個喚醒單詞或語音激活。
on_wakeword_detected :檢測到喚醒單詞時觸發的可可函數。
on_wakeword_timeout :當系統返回到喚醒單詞激活後未檢測到的語音後,系統返回到不活動狀態時,觸發了一個可可函數。
on_wakeword_detection_start :系統開始聆聽喚醒單詞時觸發的可可函數
on_wakeword_detection_end :停止聆聽喚醒單詞時觸發的可呼叫函數(例如,檢測到超時或喚醒單詞)
總是歡迎捐款!
麻省理工學院
加爾會·貝格爾(Kolja Beigel)
電子郵件:[email protected]
github