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