commit 0fdfda57ab97c56de588f87ec73628102cc43fed
parent ce9e7c558b2edc59f733315811e0b4d7cb50b343
Author: umhau <umhau@alum.gcc.edu>
Date: Thu, 15 Jun 2017 14:21:22 -0400
numbering of audio files can now continue from previous recording sessions
Diffstat:
1 file changed, 20 insertions(+), 16 deletions(-)
diff --git a/lib/getaudio.py b/lib/getaudio.py
@@ -9,10 +9,11 @@
#
# USAGE
#
-# python3 getaudio.py sentence-file \
-# /output/folder \
+# python3 getaudio.py /path/to/simple-list-of-sentences.txt \
+# /audio/recording/folder \
# recording-repetitions \
-# model-name
+# model-name \
+# num_of_preexisting_audio_recordings
#
# LIBRARY IMPORTS -------------------------------------------------------------
@@ -25,12 +26,17 @@ FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 16000
-sentence_file = sys.argv[1]
-output_folder = sys.argv[2].rstrip(os.sep)
-reps = int(sys.argv[3])
-model_name = sys.argv[4]
+sentence_file = sys.argv[1] # e.g. ~/sentencelist.txt
+audio_recording_folder = sys.argv[2].rstrip(os.sep) # e.g. ~/.psyche/audio
+reps = int(sys.argv[3]) # e.g. 5
+model_name = sys.argv[4] # e.g. 'en-us'
-# FUNCTION DEFINITIONS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+try:
+ recording_count = int(sys.argv[5]) # how many audio files already exist
+except IndexError:
+ recording_count = 0
+
+# FUNCTION DEFINITIONS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# ignore sdterr messages: as from pyaudio
@contextlib.contextmanager
@@ -89,10 +95,10 @@ def record_until_keypress(audio_filepath):
wf.close()
-# LOGIC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# LOGIC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-if not os.path.exists(output_folder):
- os.makedirs(output_folder)
+if not os.path.exists(audio_recording_folder):
+ raise NotADirectoryError("Audio recording save folder does not exist.")
# create list of sentences for prompt
sentence_list = []
@@ -107,17 +113,15 @@ try:
input("Press [enter], read text, & press [enter].")
- j=0
-
for sentence in sentence_list*reps:
#recording number
- j+=1
+ recording_count+=1
# record audio with visual
- print("Recording no. %04d of %04d: \n\n\t%s" % (j, num_recs, sentence), end='\r')
+ print("Recording no. %04d of %04d: \n\n\t%s" % (recording_count, num_recs, sentence), end='\r')
# recording file should look like this (e.g.): ./bespoke_training_data/audio/arctic_0001.wav
- record_until_keypress(str(output_folder + os.sep + model_name + "_%04d.wav" % j))
+ record_until_keypress(str(audio_recording_folder + os.sep + model_name + "_%04d.wav" % recording_count))
except KeyboardInterrupt:
pass