2017-02-18 12 views
0

У меня есть следующий скрипт, который работает при работе в терминале:Можно ли использовать Python SpeechRecognition на Django?

Все это означает, что речь идет об обращении микрофона к тексту.

import speech_recognition as sr 

# obtain audio from microphone 
r = sr.Recognizer() 
with sr.Microphone() as source: 
    print("Say something!") 
    audio = r.listen(source) 

try: 
    # for testing purposes, we're just using the default API key 
    # to use another API key, use `r.recognize_google(audio, key="GOOGLE_SPEECH_RECOGNITION_API_KEY")` 
    # instead of `r.recognize_google(audio)` 
    print("Google Speech Recognition thinks you said " + r.recognize_google(audio)) 
except sr.UnknownValueError: 
    print("Google Speech Recognition could not understand audio") 
except sr.RequestError as e: 
    print("Could not request results from Google Speech Recognition service; {0}".format(e)) 

Возможно ли иметь эту работу на Django после нажатия кнопки? Что-то вроде:

Вид:

import speech_recognition as sr 

# Create your views here. 
def index(request): 
    return render(request, 'app/index.html') 

def text(request): 
    r = sr.Recognizer() 
    with sr.Microphone() as source: 
     #print("Say something!") 
     audio = r.listen(source) 

    try: 
     # for testing purposes, we're just using the default API key 
     # to use another API key, use `r.recognize_google(audio, key="GOOGLE_SPEECH_RECOGNITION_API_KEY")` 
     # instead of `r.recognize_google(audio)` 
     speech = r.recognize_google(audio) 
    except sr.UnknownValueError: 
     speech = "Google Speech Recognition could not understand audio" 
    except sr.RequestError as e: 
     speech = "Could not request results from Google Speech Recognition service; {0}".format(e) 
    return render(request, 'app/text', {'speech': speech}) 

Шаблон:

<form action="/text/" method="post"> 
    <input type="button" value="Start listening" /> 
</form> 

Возможно ли это? Я близка или совсем нет?

+0

Если Django работает на той же машине, которая загружает веб-форму, тогда она может работать (хотя, конечно, не так, как это нужно делать). Если, с другой стороны, вы хотите предложить пользователям использовать ваш бэкэнд Django для пересылки данных в API Google, нет - вам нужно собрать аудио на стороне клиента. – zwer

ответ

1

Django не имеет доступа к компьютерам пользователей, поэтому, если вы попытаетесь записать с микрофона, вы будете использовать микрофон сервера, если он есть.

Вам необходимо указать record using JS/HTML5, а затем отправить данные в django для обработки с помощью AJAX. Возможно, вы даже сможете его протекать, но это, вероятно, не стоит усилий.

Смежные вопросы