Дополнительные шаги необходимы для оптимизированной графической инстанции. Эти шаги рекомендуются для тех, кто требует лучшей производительности и имеет совместимый графический процессор NVIDIA.
Примечание . Чтобы проверить, поддерживает ли ваш графический процессор NVIDIA CUDA, посетите официальный список графических процессоров CUDA.
Чтобы использовать Realtimestt с поддержкой GPU через CUDA, следуйте этим шагам:
Установите NVIDIA CUDA Toolkit 11.8 :
Установите nvidia cudnn 8.7.0 для Cuda 11.x :
Установите ffmpeg :
Вы можете скачать установщик для вашей ОС с сайта FFMPEG.
Или используйте диспетчер пакетов:
На Ubuntu или Debian :
sudo apt update && sudo apt install ffmpegНа Arch Linux :
sudo pacman -S ffmpegНа macOS с помощью Homebrew (https://brew.sh/):
brew install ffmpegВ окнах с использованием шоколадного (https://chocolatey.org/):
choco install ffmpegВ Windows с помощью Scoop (https://scoop.sh/):
scoop install ffmpegУстановите Pytorch с поддержкой 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 , 提示了 против 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
Простая в использовании, библиотека речи к тексту с низкой задержкой для приложений в реальном времени
Realtimestt слушает микрофон и транскрибирует голос в текст.
Это идеально подходит для:
with )Подсказка: поскольку мы сейчас используем
multiprocessingмодуль, обеспечите включитьif __name__ == '__main__':защита в ваш код, чтобы предотвратить неожиданное поведение, особенно на таких платформах, как Windows. Для получения подробного объяснения того, почему это важно, посетите официальную документацию Python поmultiprocessing.
Подсказка : Проверьте Realtimetts, выходной аналог этой библиотеки, для возможностей текста к Voice. Вместе они образуют мощную аудио -обертку в реальном времени вокруг больших языковых моделей.
Эта библиотека использует:
Эти компоненты представляют собой «отраслевой стандарт» для передовых приложений, обеспечивая самую современную и эффективную основу для строительства высококлассных решений.
pip install RealtimeSTTЭто установит все необходимые зависимости, в том числе версия Pytorch только для поддержки процессора .
Хотя можно запустить Realtimestt только с установкой процессора (используйте небольшую модель, такую как «крошечную» или «базу» в этом случае), вы получите гораздо лучший опыт, используя:
Дополнительные шаги необходимы для оптимизированной графической инстанции. Эти шаги рекомендуются для тех, кто требует лучшей производительности и имеет совместимый графический процессор NVIDIA.
Примечание . Чтобы проверить, поддерживает ли ваш графический процессор NVIDIA CUDA, посетите официальный список графических процессоров CUDA.
Чтобы использовать Realtimestt с поддержкой GPU через CUDA, следуйте этим шагам:
Установите NVIDIA CUDA Toolkit 11.8 :
Установите nvidia cudnn 8.7.0 для Cuda 11.x :
Установите ffmpeg :
Вы можете скачать установщик для вашей ОС с сайта FFMPEG.
Или используйте диспетчер пакетов:
На Ubuntu или Debian :
sudo apt update && sudo apt install ffmpegНа Arch Linux :
sudo pacman -S ffmpegНа macOS с помощью Homebrew (https://brew.sh/):
brew install ffmpegВ окнах с использованием шоколадного (https://chocolatey.org/):
choco install ffmpegВ Windows с помощью Scoop (https://scoop.sh/):
scoop install ffmpegУстановите Pytorch с поддержкой CUDA :
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 )Активация ключевого слова перед обнаружением голоса. Запишите, разделенный запятой список ваших желаемых ключевых слов активации в параметр wabe_words. Вы можете выбрать Wake Words из этого списка: Alexa, Americano, Blueberry, Bumblebee, Computer, Grapefruits, Grasshopper, Hey Google, Hey Siri, Jarvis, OK Google, Picovoice, Porcupine, 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 и предоставить необработанные аудиочузыки PCM в 16-битном моно (Spamperer 16000) с этим методом:
recorder . feed_audio ( audio_chunk )Вы можете безопасно выключить регистратор, используя протокол диспетчера контекста:
with AudioToTextRecorder () as recorder :
[...]Или вы можете вызвать метод выключения вручную (если использование «с» невозможно):
recorder . shutdown ()Испытательный подкаталог содержит набор сценариев, которые помогут вам оценить и понять возможности библиотеки Realtimetts.
Тестовые сценарии в зависимости от библиотеки RealTimetts могут потребовать, чтобы вы ввели свой регион обслуживания Azure в сценарии. При использовании демо-сценарии, связанных с openai-, azure- или elevenlabs, клавиши API должны быть предусмотрены в переменных среды OpenAI_API_KEY, Azure_speech_key и Elevenlabs_api_key (см. Realtimetts)
simple_test.py
realtimestt_test.py
WakeWord_test.py
переводчик.py
pip install openai realtimetts .openai_voice_interface.py
pip install openai realtimetts .advanced_talk.py
pip install openai keyboard realtimetts .минималистичный_talkbot.py
pip install openai realtimetts .Подкатария example_App содержит приложение Пользовательского пользовательского интерфейса для API OpenAI на основе PYQT5.
AudioToTextRecorder Когда вы инициализируете класс AudioToTextRecorder , у вас есть различные варианты для настройки его поведения.
модель (str, default = "tiny"): размер модели или путь для транскрипции.
Язык (str, default = ""): языковой код для транскрипции. Если оставить пустой, модель попытается автоматически определить язык. Поддерживаемые языковые коды перечислены в библиотеке токенизатора Whisper.
compute_type (str, default = "default"): указывает тип вычислений, который будет использоваться для транскрипции. Смотрите квантование шепота
input_device_index (int, default = 0): индекс устройства аудио ввода для использования.
gpu_device_index (int, default = 0): индекс устройства GPU для использования. Модель также может быть загружена на несколько графических процессоров путем прохождения списка идентификаторов (например, [0, 1, 2, 3]).
ON_RECORDING_START : функция CALLABLE, запускаемая при запуске записи.
ON_RECORDING_STOP : функция CALLEABLE, запускаемая при записи заканчивается.
on_transcription_start : функция Callible, запускаемая при запуске транскрипции.
Убедитесь, что_SENTENCE_STARTING_UPPERCASE (bool, default = true): гарантирует, что каждое предложение, обнаруженное алгоритмом
Убедитесь, что_SENTENTION_ENDS_WITH_PERIOD (bool, default = true): гарантирует, что каждое предложение, которое не заканчивается, такими знаки препинания, как "?", "!" заканчивается периодом
use_microphone (bool, default = true): использование локального микрофона для транскрипции. Установите на FALSE, если вы хотите предоставить куски с помощью метода FEED_AUDIO.
Spinner (bool, default = true): предоставляет текст анимации Spinner с информацией о текущем состоянии регистрации.
Уровень (int, default = logging.warning): уровень ведения журнала.
ПРИМЕЧАНИЕ . При включении описания в реальном времени установка GPU настоятельно рекомендуется. Использование транскрипции в реальном времени может создавать высокие нагрузки на графический процессор.
enable_Realtime_transcription (bool, default = false): включает или отключает транскрипцию в реальном времени аудио. При установлении True, звук будет транскрибироваться непрерывно, когда он записывается.
Realtime_model_type (str, default = "tiny"): указывает размер или путь модели машинного обучения, которая будет использоваться для транскрипции в реальном времени.
Realtime_processing_pause (float, default = 0,2): указывает интервал времени через несколько секунд после того, как часть аудио транскрибируется. Более низкие значения приведут к большему количеству обновлений транскрипции «в реальном времени» (частых), но могут увеличить вычислительную нагрузку.
on_realtime_transcription_update : функция обратного вызова, которая запускается всякий раз, когда есть обновление в транскрипции в реальном времени. Функция вызывается с недавно транскрибированным текстом в качестве аргумента.
on_realtime_transcription_stabilized : функция обратного вызова, которая запускается всякий раз, когда есть обновление в транскрипции в реальном времени и возвращает более высокий качественный, стабилизированный текст в качестве аргумента.
SILERO_SENSICITICEN (float, по умолчанию = 0,6): чувствительность для обнаружения голосовой активности Силеро в диапазоне от 0 (наименьшее чувствительное) до 1 (наиболее чувствительное). По умолчанию 0,6.
SILERO_SENSICITICEN (float, по умолчанию = 0,6): чувствительность для обнаружения голосовой активности Силеро в диапазоне от 0 (наименьшее чувствительное) до 1 (наиболее чувствительное). По умолчанию 0,6.
silero_use_onnx (bool, default = false): включает использование предварительно обученной модели из Silero в формате Onnx (открытая нейронная сеть) вместо формата Pytorch. По умолчанию ложь. Рекомендуется для более высокой производительности.
post_speech_silence_duration (float, по умолчанию = 0,2): продолжительность в секундах молчания, которая должна следовать речи до того, как запись будет выполнена. Это гарантирует, что любая короткая пауза во время речи не преждевременно заканчивает запись.
MIN_GAP_BHITEWEEN_RECORDINGS (float, default = 1,0): указывает минимальный интервал времени в секундах, который должен существовать между концом одного сеанса записи и началом другой, чтобы предотвратить быстрые последовательные записи.
min_length_of_recording (float, default = 1,0): указывает минимальную продолжительность за секунды, когда сеанс записи должен длиться, чтобы обеспечить значимый захват звука, предотвращая чрезмерно короткие или фрагментированные записи.
pre_recording_buffer_duration (float, default = 0,2): промежуток времени, в секундах, в течение которых звук буферизуется до формальной записи. Это помогает уравновешивать задержку, присущая обнаружению речевой активности, обеспечивая не пропущено начальное звук.
ON_VAD_DETECT_START : функция CALLEABLE, запускаемая, когда система начинает прослушать голосовую активность.
ON_VAD_DETECT_STOP : Функция CALLEABLE, запускаемой, когда система прекращается, чтобы прослушать голосовую активность.
Wake_words (str, default = ""): Wake Words для инициирования записи. Многочисленные слова могут быть предоставлены в виде запятой, разделенной. Поддерживаемые слова Wake: Alexa, Americano, Blueberry, Bumblebee, Computer, Grapefruits, Grasshopper, Hey Google, Hey Siri, Jarvis, OK Google, Picovoice, Porcupine, Terminator
WAKE_WORDS_SENSICITICEN (float, по умолчанию = 0,6): уровень чувствительности для обнаружения Wake Word (0 для наименьшего чувствительного, 1 для наиболее чувствительного).
wabe_word_activation_delay (float, default = 0): продолжительность за несколько секунд после начала мониторинга, прежде чем система переключается на активацию Wake Word, если голос не обнаруживается изначально. Если установить ноль, система сразу же использует активацию Wake Word.
wabe_word_timeout (float, default = 5): продолжительность за несколько секунд после распознавания Wake Word. Если в этом окне не обнаружено последующей голосовой активности, система возвращается в неактивное состояние, ожидая следующего слова бодрствования или активации голоса.
ON_WAKEWORD_DETECTECTED : Функция CALLEABLE, запускаемая при обнаружении следа.
ON_WAKEWORD_TIMEOUT : функция CALLEABLE, запускаемая, когда система возвращается к неактивному состоянию после, когда речь не была обнаружена после активации Wake Word.
on_wakeword_detection_start : функция Callible, запускаемая, когда система начинает прослушать слова.
on_wakeword_detection_end : функция, вызванная при этом, запускается при остановке, чтобы прослушать слова в следующий раз (например, из -за времени ожидания или словесного слова) обнаружено)
Вклад всегда приветствуются!
Грань
Колджа Бейгель
Электронная почта: [email protected]
GitHub