#python #python-3.x #django #django-views #speech-recognition
#python #python-3.x #django #django-просмотры #распознавание речи
Вопрос:
Я работаю над распознаванием речи, следуя этому руководству и реализуя в Django. Мне интересно, как мы выполняем print("Listening...")
, и print("Recognizing...")
чтобы пользователь понимал, когда говорить в командной строке, возможно ли отправлять значение (прослушивание, распознавание) на HTML-странице каждый раз, когда пользователь что-то говорит?
def takeCommand():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening...")
r.pause_threshold = 1
r.adjust_for_ambient_noise(source)
audio = r.listen(source)
print(audio)
try:
print("Recognizing...")
query = r.recognize_google(audio, language ='en-in')
print("User said:",query)
except Exception as e:
print(e)
print("Unable to Recognizing your voice.")
return "None"
return query
Ответ №1:
Вы можете использовать django.contrib.messages
для «печати» их в шаблоне.
На ваш взгляд:
from django.contrib import messages
messages.warning(self.request, f'Unable to Recognizing your voice')
В вашем шаблоне:
{% if messages %}
{% for message in messages %}
<div class="alert alert-{{ message.tags }}">{{ message }}</div>
{% endfor %}
{% endif %}
Для получения дополнительной информации о платформе messages см.: docs
Комментарии:
1. Спасибо, но
NameError : 'self' is not defined.
вот какую ошибку я получаю. Я реализовалmessages.warning(self.request, f'Unable to Recognizing your voice')
функцию takeCommand(). Если я предоставляюrequest
параметр в takeCommand(), то это создает проблему, когда я использую эту функцию. Пожалуйста, дайте мне знать, в чем дело.2. Я думаю, вы можете просто изменить «self.request» на «request», а также добавить запрос к вашей функции: «def takeCommand (запрос):»
Ответ №2:
как вы отправляете аудио на сервер? каким-то образом через ajax?
Когда он нажимает кнопку, чтобы начать говорить, вы используете JS / jquery, чтобы поместить куда-нибудь:
$('#some_div').append('Listening...');
Когда он перестает говорить, вы помещаете туда:
$('#some_div').append('Recognizing...');
И вы отправляете аудио через ajax на сервер.
Затем вы отвечаете с сервера на запрос ajax и выполняете либо:
$('#some_div').append('Unable to Recognizing your voice.');
или:
$('#some_div').append('User said: ' response.query);