Etapas adicionais são necessárias para uma instalação otimizada para GPU . Essas etapas são recomendadas para aqueles que exigem melhor desempenho e têm uma GPU NVIDIA compatível.
Nota : Para verificar se a sua GPU da NVIDIA suporta CUDA, visite a lista oficial de GPUs CUDA.
Para usar o RealTimestt com o suporte da GPU via CUDA, siga estas etapas:
Instale o NVIDIA CUDA Toolkit 11.8 :
Instale o NVIDIA CUDNN 8.7.0 para CUDA 11.X :
Instale o ffmpeg :
Você pode baixar um instalador para o seu sistema operacional no site do FFMPEG.
Ou use um gerenciador de pacotes:
No Ubuntu ou Debian :
sudo apt update && sudo apt install ffmpegNo Arch Linux :
sudo pacman -S ffmpegNo macOS usando homebrew (https://brew.sh/):
brew install ffmpegNas janelas usando chocolate (https://chocolatey.org/):
choco install ffmpegNo Windows usando scoop (https://scoop.sh/):
scoop install ffmpegInstale o Pytorch com suporte 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
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
Biblioteca de fala para texto fácil de usar e de baixa latência para aplicativos em tempo real
O RealTimestt ouve o microfone e transcreve a voz no texto.
É ideal para:
with declaração)Dica: como usamos o módulo
multiprocessingagora, certifique -se de incluir oif __name__ == '__main__':Proteção no seu código para evitar comportamentos inesperados, especialmente em plataformas como o Windows. Para uma explicação detalhada sobre por que isso é importante, visite a documentação oficial do Python sobremultiprocessing.
Dica : confira o Realtimetts, a contraparte de saída desta biblioteca, para obter recursos de texto a voz. Juntos, eles formam um poderoso invólucro de áudio em tempo real em torno de grandes modelos de idiomas.
Esta biblioteca usa:
Esses componentes representam o "padrão da indústria" para aplicações de ponta, fornecendo a base mais moderna e eficaz para a construção de soluções de ponta.
pip install RealtimeSTTIsso instalará todas as dependências necessárias, incluindo apenas uma versão de suporte da CPU do Pytorch.
Embora seja possível executar o RealTimestt apenas com uma instalação da CPU (use um modelo pequeno como "Tiny" ou "Base" neste caso), você terá uma experiência muito melhor usando:
Etapas adicionais são necessárias para uma instalação otimizada para GPU . Essas etapas são recomendadas para aqueles que exigem melhor desempenho e têm uma GPU NVIDIA compatível.
Nota : Para verificar se a sua GPU da NVIDIA suporta CUDA, visite a lista oficial de GPUs CUDA.
Para usar o RealTimestt com o suporte da GPU via CUDA, siga estas etapas:
Instale o NVIDIA CUDA Toolkit 11.8 :
Instale o NVIDIA CUDNN 8.7.0 para CUDA 11.X :
Instale o ffmpeg :
Você pode baixar um instalador para o seu sistema operacional no site do FFMPEG.
Ou use um gerenciador de pacotes:
No Ubuntu ou Debian :
sudo apt update && sudo apt install ffmpegNo Arch Linux :
sudo pacman -S ffmpegNo macOS usando homebrew (https://brew.sh/):
brew install ffmpegNas janelas usando chocolate (https://chocolatey.org/):
choco install ffmpegNo Windows usando scoop (https://scoop.sh/):
scoop install ffmpegInstale o Pytorch com suporte CUDA :
pip uninstall torch
pip install torch==2.0.1+cu118 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118Uso básico:
Iniciar e parar a gravação são acionados manualmente.
recorder . start ()
recorder . stop ()
print ( recorder . text ())Gravação com base na detecção de atividades de voz.
with AudioToTextRecorder () as recorder :
print ( recorder . text ())Ao executar o gravador.Text em um loop, é recomendável usar um retorno de chamada, permitindo que a transcrição seja executada de forma assíncrona:
def process_text ( text ):
print ( text )
while True :
recorder . text ( process_text )Ativação da palavra -chave antes de detectar a voz. Escreva a lista separada por vírgula das palavras-chave de ativação desejadas no parâmetro Wake_words. Você pode escolher as palavras de despertar nesta lista: Alexa, Americano, Blueberry, Bumblebee, Computador, Torrais, Grasshopper, Hey Google, Hey Siri, Jarvis, OK Google, Picovoice, Porcupine, Terminator.
recorder = AudioToTextRecorder ( wake_words = "jarvis" )
print ( 'Say "Jarvis" then speak.' )
print ( recorder . text ())Você pode definir funções de retorno de chamada para serem executadas em diferentes eventos (consulte a configuração):
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 )Se você não deseja usar o parâmetro local do Microfone Set_microphone para FALSE e fornecer áudio-pcm bruto em mono de 16 bits (amostrado 16000) com este método:
recorder . feed_audio ( audio_chunk )Você pode desligar o gravador com segurança usando o Protocolo do Gerenciador de Contexto:
with AudioToTextRecorder () as recorder :
[...]Ou você pode chamar o método de desligamento manualmente (se usar "com" não for viável):
recorder . shutdown ()O subdiretório de teste contém um conjunto de scripts para ajudá -lo a avaliar e entender os recursos da biblioteca Realtimetts.
Os scripts de teste, dependendo da biblioteca Realtimetts, podem exigir que você insira sua região de serviço do Azure dentro do script. Ao usar os scripts de demonstração relacionados ao OpenAi-, Azure- ou Elevenlabs, as chaves da API devem ser fornecidas nas variáveis do ambiente OpenI_API_KEY, Azure_Speech_Key e Elevenlabs_API_KEY (consulte Realtimetts)
simples_test.py
realtimestt_test.py
wakeword_test.py
tradutor.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 .O Subdiretório Explet_App contém um aplicativo de interface de usuário polido para a API OpenAI com base no PYQT5.
AudioToTextRecorder Ao inicializar a classe AudioToTextRecorder , você tem várias opções para personalizar seu comportamento.
Modelo (str, padrão = "minúsculo"): tamanho ou caminho do modelo para transcrição.
Idioma (str, padrão = ""): código de idioma para transcrição. Se deixado vazio, o modelo tentará detectar automaticamente o idioma. Os códigos de idiomas suportados estão listados na biblioteca do Whisper Tokenizer.
compute_type (str, default = "padrão"): especifica o tipo de computação a ser usado para transcrição. Veja quantização do sussurro
input_device_index (int, default = 0): Índice de dispositivo de entrada de áudio a ser usado.
gpu_device_index (int, padrão = 0): Índice de dispositivo GPU a ser usado. O modelo também pode ser carregado em várias GPUs passando uma lista de IDs (por exemplo, [0, 1, 2, 3]).
On_Recording_Start : uma função chamada acionada quando a gravação é iniciada.
On_Recording_Stop : uma função chamada acionada quando a gravação termina.
On_Transcription_Start : uma função chamada acionada quando a transcrição é iniciada.
garantir_sentence_starting_uppercase (bool, default = true): garante que todas as frases detectadas pelo algoritmo iniciem com uma letra de maiúsculas.
garantir_sentence_ends_with_period (bool, padrão = true): garante que todas as frases que não terminem com pontuação como "?", "!" termina com um período
use_microphone (bool, padrão = true): uso do microfone local para transcrição. Defina como FALSE se você deseja fornecer a pedaços com o método feed_audio.
Spinner (bool, padrão = true): fornece um texto de animação spinner com informações sobre o estado atual do gravador.
nível (int, padrão = logging.warning): nível de log.
Nota : Ao ativar a descrição em tempo real, uma instalação de GPU é fortemente recomendada. O uso da transcrição em tempo real pode criar altos cargas de GPU.
enable_realtime_transcription (bool, padrão = false): Ativa ou desativa a transcrição em tempo real do áudio. Quando definido como true, o áudio será transcrito continuamente à medida que está sendo gravado.
RealTime_model_type (str, default = "tiny"): especifica o tamanho ou o caminho do modelo de aprendizado de máquina a ser usado para transcrição em tempo real.
RealTime_processing_pause (float, padrão = 0.2): especifica o intervalo de tempo em segundos após um pedaço de áudio ser transcrito. Valores mais baixos resultarão em atualizações de transcrição mais "em tempo real" (frequente), mas podem aumentar a carga computacional.
on_realtime_transcription_update : uma função de retorno de chamada que é acionada sempre que houver uma atualização na transcrição em tempo real. A função é chamada com o texto recém -transcrito como seu argumento.
On_realtime_transcription_stabilized : uma função de retorno de chamada que é acionada sempre que houver uma atualização na transcrição em tempo real e retorna um texto estabilizado de maior qualidade e estabilizado como seu argumento.
SILERO_SENSIVIDADE (FLOAT, PADRÃO = 0,6): Sensibilidade para a detecção de atividade de voz de Silero variando de 0 (menos sensível) a 1 (mais sensível). O padrão é 0,6.
SILERO_SENSIVIDADE (FLOAT, PADRÃO = 0,6): Sensibilidade para a detecção de atividade de voz de Silero variando de 0 (menos sensível) a 1 (mais sensível). O padrão é 0,6.
SILERO_USE_ONNX (BOOL, padrão = false): Permite o uso do modelo pré-treinado do Silero no formato ONNX (Open Neural Network Exchange) em vez do formato Pytorch. O padrão é falso. Recomendado para um desempenho mais rápido.
post_speech_silence_duration (float, padrão = 0.2): duração em segundos de silêncio que devem seguir a fala antes que a gravação seja considerada concluída. Isso garante que qualquer breve pausa durante a fala não termine prematuramente a gravação.
min_gap_between_recordings (float, padrão = 1.0): especifica o intervalo de tempo mínimo em segundos que devem existir entre o final de uma sessão de gravação e o início de outro para evitar gravações consecutivas rápidas.
min_length_of_recording (float, padrão = 1.0): especifica a duração mínima em segundos que uma sessão de gravação deve durar para garantir uma captura significativa de áudio, impedindo gravações excessivamente curtas ou fragmentadas.
pre_recording_buffer_duration (float, padrão = 0.2): o intervalo de tempo, em segundos, durante o qual o áudio é tamponado antes da gravação formal. Isso ajuda a contrabalançar a latência inerente à detecção de atividades da fala, garantindo que nenhum áudio inicial seja perdido.
ON_VAD_DETECT_START : uma função chamada acionada quando o sistema começa a ouvir a atividade de voz.
ON_VAD_DETECT_STOP : uma função chamada acionada quando o sistema para para ouvir a atividade de voz.
Wake_words (str, default = ""): Wake Words para iniciar a gravação. Várias palavras de vigília podem ser fornecidas como uma sequência separada por vírgula. As palavras de vigília suportadas são: Alexa, Americano, Blueberry, BumbleBee, Computador, Torrais, Grasshopper, Hey Google, Hey Siri, Jarvis, OK Google, Picovoice, Porcupine, Terminator
WAKE_WORDS_SENSIVIVIDADE (FLOAT, PADRÃO = 0.6): Nível de sensibilidade para detecção de palavras de Wake (0 para menos sensível, 1 para a mais sensível).
wake_word_activation_delay (float, default = 0): duração em segundos após o início do monitoramento antes que o sistema mude para ativação do Wake Word se nenhuma voz for detectada inicialmente. Se definido como zero, o sistema usa a ativação do Wake Word imediatamente.
Wake_word_timeout (float, padrão = 5): duração em segundos após a reconhecimento de uma palavra de despertar. Se nenhuma atividade de voz subsequente for detectada nessa janela, o sistema transita de volta para um estado inativo, aguardando a próxima palavra de despertar ou ativação de voz.
On_Wakeword_detected : uma função chamada acionada quando uma palavra de despertar é detectada.
On_wakeword_timeout : uma função chamada acionada quando o sistema remonta a um estado inativo após quando nenhum discurso foi detectado após a ativação do Wake Word.
On_wakeword_detection_start : uma função chamada acionada quando o sistema começa a ouvir palavras de vigília
on_wakeword_detection_end : uma função chamada acionada ao parar para ouvir palavras de vigília (por exemplo, por tempo limite ou wake word detectado)
As contribuições são sempre bem -vindas!
Mit
Kolja Beigel
E -mail: [email protected]
Github