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

42 lines
1.3 KiB
Python

import speech_recognition as spr
import multiprocessing as mp
import os.path
import filesystem
import log
import transcribe_async
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 '''
try:
if USE_FREE:
recognizer = spr.Recognizer()
with spr.AudioFile(filename) as source:
audio = recognizer.record(source)
string = free_google_backend(recognizer, audio)
elif USE_PAID:
string = paid_google_backend(filename)
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(filename):
return transcribe_async.transcribe_file(filename)