@Pythonchik3

Python диктофон. Как написать?

Надо написать программу на питоне, которая будет до какого-то момента(например до нажатия клавиши) переводить звук с микрофона в текс. Есть такая программа:

import speech_recognition as sr
r = sr.Recognizer() 
while True:
    with sr.Microphone() as source: 
        print('Говорите...')
        r.pause_threshold = 1
        r.adjust_for_ambient_noise(source, duration=1) 
        audio = r.listen(source) 
    try: 
        text = r.recognize_google(audio, language='ru-RU').lower() 
        print('Вы сказали:', text)
        return text
    except sr.UnknownValueError: 
        pass

Но эта программа записывает звук 1 секунду, а потом переводит его в текст, и только потом слушает опять, а надо чтобы программа слушала все время без перерывов, и переводила не в конце, а как только что-то скажешь.
Спасибо.
  • Вопрос задан
  • 229 просмотров
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Там есть метод для прослушивания в фоновом режиме.
import speech_recognition as sr
from time import sleep
import sys


def on_listen(recognizer, audio):
    # print('on_listen')
    try:
        text = recognizer.recognize_google(audio, language='ru-RU').lower()
    except sr.UnknownValueError as e:
        pass
    else:
        print('Вы сказали:', text)


r = sr.Recognizer()
with sr.Microphone() as source:
    r.pause_threshold = 1
    print('Тихо...')
    r.adjust_for_ambient_noise(source, duration=1)

print('Нажмите Enter для завершения')
print('Говорите...')
r.listen_in_background(sr.Microphone(), on_listen, phrase_time_limit=5)
input()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
iCode Москва
от 90 000 до 200 000 ₽
SwapZilla.co Москва
от 200 000 ₽
SwapZilla.co Сочи
от 200 000 ₽