Files
ths-speech/python-server/speech.py
2018-08-27 11:45:22 +02:00

43 lines
1.2 KiB
Python

import speech_recognition as spr
import multiprocessing as mp
import os.path
import filesystem
import log
USE_FREE=False
USE_PAID=True
def async_create_transcript(filename):
print("Creating transcript..")
mp.Process(target=create_and_save_transcript,args=(filename,)).start()
def create_and_save_transcript(filename):
transcript = analyse(filename)
filesystem.save_transcript(filename, transcript)
def analyse(filename):
''' returns the transcripted audio, or None if the analysis fails '''
recognizer = spr.Recognizer()
with spr.AudioFile(filename) as source:
audio = recognizer.record(source)
try:
if USE_FREE:
string = free_google_backend(recognizer, audio)
elif USE_PAID:
string = paid_google_backend(recognizer,audio)
except spr.UnknownValueError:
log.log("Audio file is broken or not an audio file")
return "ERROR_AUDIO_FILE_INVALID"
except spr.RequestError as e:
log.log("Could not connect to google API: {}".format(e))
return "ERROR_API_FAILURE"
return string
def free_google_backend(recognizer, audio):
return recognizer.recognize_google(audio,language="de-DE")
def paid_google_backend(recognizer, audio):
pass