mirror of
https://github.com/wassname/BitLit_test1.git
synced 2026-07-25 13:00:40 +08:00
ding, logger
This commit is contained in:
+35
-23
@@ -23,7 +23,7 @@ import hashlib
|
||||
import tempfile
|
||||
from logger import logger
|
||||
|
||||
from snowboydecoder import play_audio_file
|
||||
from snowboydecoder import play_ding, play_dong
|
||||
|
||||
import speech_recognition as sr ## Packages for voice recognizer
|
||||
for index, name in enumerate(sr.Microphone.list_microphone_names()):
|
||||
@@ -42,11 +42,11 @@ except:
|
||||
|
||||
def play_mp3(mp3_file):
|
||||
"""Play mp3 file with pyglet."""
|
||||
# FIXME (wassname) It currently plays in background but we want to wait untill it's finished
|
||||
source = pyglet.media.load(filename=mp3_file, streaming=False)
|
||||
source.play()
|
||||
time.sleep(source.duration*2 + 2) # TODO must be a better way to wait untill the media has played
|
||||
|
||||
print(mp3_file, source.duration)
|
||||
time.sleep(source.duration + 4) # must be a better way to wait untill the media has played
|
||||
print(mp3_file, source.duration)
|
||||
|
||||
def cache_gtts(text, lang="en-nz", cache_file=None):
|
||||
"""
|
||||
@@ -71,7 +71,7 @@ def cache_gtts(text, lang="en-nz", cache_file=None):
|
||||
en: English
|
||||
|
||||
"""
|
||||
print('say:', text)
|
||||
logger.debug('say: %s', text)
|
||||
if not cache_file:
|
||||
hash_filename = hashlib.md5(text.encode()).hexdigest() + '.mp3'
|
||||
cache_file = os.path.join(tempfile.gettempdir(), hash_filename)
|
||||
@@ -85,49 +85,61 @@ def generate_poem():
|
||||
|
||||
|
||||
############ AUDIO CONVERSION TO TEST
|
||||
play_audio_file()
|
||||
play_dong()
|
||||
t0 = time.time()
|
||||
r = sr.Recognizer()
|
||||
with sr.Microphone() as source:
|
||||
outfile1 = cache_gtts(text="Hi! My Name is BIT-LIT. PLEASE SPEAK SOME IDEAS FOR A POEM between the beeps.")
|
||||
|
||||
# print(r.energy_threshold)
|
||||
# r.adjust_for_ambient_noise(source)
|
||||
# print('energy_threshold', r.energy_threshold)
|
||||
r.energy_threshold=50
|
||||
|
||||
|
||||
print('mic', source)
|
||||
outfile1 = cache_gtts(text="Hi! My Name is BIT-LIT. PLEASE SPEAK SOME IDEAS FOR A POEM AFTER THE BEEP.")
|
||||
play_mp3(outfile1)
|
||||
play_ding()
|
||||
|
||||
play_audio_file()
|
||||
print('speak now', time.time())
|
||||
audio = r.listen(source)
|
||||
logger.debug('done recording %s', time.time())
|
||||
logger.info('recorded %s s', len(audio.frame_data)/audio.sample_rate)
|
||||
|
||||
audio = r.listen(source, phrase_time_limit=20)
|
||||
play_audio_file()
|
||||
|
||||
outfile2 = cache_gtts(text="BEEP. THANK YOU! GIVE ME A MINUTE TO GENERATE AND READ YOUR POEM. BEEP")
|
||||
play_dong()
|
||||
outfile2 = cache_gtts(text="BEEP. THANK YOU! GIVE ME A MINUTE TO GENERATE AND READ YOUR POEM")
|
||||
play_mp3(outfile2)
|
||||
|
||||
t1 = time.time()
|
||||
print('listen took', t1 - t0)
|
||||
logger.debug('listen took %s', t1 - t0)
|
||||
|
||||
try:
|
||||
print("using google speech to text...")
|
||||
logger.debug("using google speech to text...")
|
||||
USER_INPUT = r.recognize_google_cloud(audio, credentials_json=GOOGLE_CLOUD_SPEECH_CREDENTIALS)
|
||||
print("Google thinks you said: " + USER_INPUT)
|
||||
logger.info("Google thinks you said: " + USER_INPUT)
|
||||
except sr.UnknownValueError as e:
|
||||
print("Could not understand audio. {}".format(e))
|
||||
logger.error("Could not understand audio. {}".format(e))
|
||||
return
|
||||
except sr.RequestError as e:
|
||||
print("Could not request results; {0}".format(e))
|
||||
logger.error("Could not request results; {0}".format(e))
|
||||
return
|
||||
|
||||
t1b = time.time()
|
||||
print('transcribe took', t1b - t1)
|
||||
logger.debug('transcribe took %s', t1b - t1)
|
||||
|
||||
return
|
||||
|
||||
# Generate poem from user seed
|
||||
text_generated = poem(USER_INPUT)
|
||||
t2 = time.time()
|
||||
logger.info("ML POEM is: %s", text_generated)
|
||||
logger.info('poem and rhyme generation took %s', t2 - t1)
|
||||
logger.debug('poem and rhyme generation took %s', t2 - t1)
|
||||
|
||||
# TEXT CONVERSION IN AUDIO
|
||||
# FEED POEM TO TRANSCRIBER
|
||||
tts = gTTS(text=text_generated)
|
||||
# ts = datetime.datetime.utcnow().strftime('%Y%m%d_%H-%M-%S')
|
||||
poem_mp3 = "outputs/BitLit_poem.mp3"#.format(ts)
|
||||
ts = datetime.datetime.utcnow().strftime('%Y%m%d_%H-%M-%S')
|
||||
poem_mp3 = "outputs/BitLit_{}.mp3".format(ts)
|
||||
tts.save(poem_mp3)
|
||||
play_mp3(poem_mp3)
|
||||
|
||||
@@ -136,8 +148,8 @@ def generate_poem():
|
||||
|
||||
######
|
||||
t3 = time.time()
|
||||
logger.info('Poem to speech took %s', t3 - t2)
|
||||
logger.info("Time spent is about: %s seconds")
|
||||
logger.debug('Poem to speech took %s', t3 - t2)
|
||||
logger.debug("Total time spent is about: %s seconds", np.round(t3 - t0))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user