Merge branch 'master' of ssh://invmac/~/Public/repos/speech-scoring
commit
6ab84b4dc2
|
|
@ -11,7 +11,7 @@ import progressbar
|
|||
|
||||
from generate_similar import similar_phoneme,similar_word
|
||||
|
||||
OUTPUT_NAME = 'story_words'
|
||||
OUTPUT_NAME = 'rand_edu'
|
||||
dest_dir = os.path.abspath('.') + '/outputs/' + OUTPUT_NAME + '/'
|
||||
dest_file = './outputs/' + OUTPUT_NAME + '.csv'
|
||||
|
||||
|
|
@ -95,8 +95,7 @@ class SynthVariant(object):
|
|||
self.name = voice
|
||||
self.lang = lang
|
||||
self.phoneme_capable = self.is_phoneme_capable()
|
||||
if self.phoneme_capable:
|
||||
create_dir(dest_dir + self.name + '/' + str(self.rate))
|
||||
|
||||
|
||||
def __repr__(self):
|
||||
return 'Synthesizer[{} - {}]'.format(self.name, self.rate)
|
||||
|
|
@ -128,6 +127,10 @@ class SynthVariant(object):
|
|||
cli_gen_audio(phon_cmd, self.rate, self.name, d_path)
|
||||
return SynthFile(word, phoneme, r_path, self.name, self.lang, self.rate, variant)
|
||||
|
||||
def create_synth_dirs(self):
|
||||
if self.phoneme_capable:
|
||||
create_dir(dest_dir + self.name + '/' + str(self.rate))
|
||||
|
||||
@staticmethod
|
||||
def voices_for_lang(lang):
|
||||
voices_installed = NSSpeechSynthesizer.availableVoices()
|
||||
|
|
@ -168,9 +171,10 @@ def synth_generator():
|
|||
|
||||
def synth_for_words(words, writer):
|
||||
prog_title = "Synthesizing {} words : ".format(len(words))
|
||||
(update, prog) = prog_bar(prog_title)
|
||||
for s in voice_synths:
|
||||
s.create_synth_dirs()
|
||||
for v in ['low', 'medium', 'high']:
|
||||
(update, prog) = prog_bar(prog_title)
|
||||
for w in prog(words):
|
||||
update('"{}" with {} variant ({})'.format(w, s, v))
|
||||
synthed = s.generate_audio(w, v)
|
||||
|
|
@ -209,13 +213,24 @@ def synth_logger(fname, csv=False):
|
|||
else:
|
||||
return json_writer, close_file
|
||||
|
||||
def generate_audio_for_text_list(text_list):
|
||||
(writer, closer) = synth_logger(dest_file, csv=True)
|
||||
synth_for_words = synth_generator()
|
||||
try:
|
||||
synth_for_words(text_list, writer)
|
||||
except:
|
||||
import traceback
|
||||
import sys
|
||||
traceback.print_exc(file=sys.stdout)
|
||||
pass
|
||||
closer()
|
||||
|
||||
def generate_audio_for_stories():
|
||||
story_file = './inputs/all_stories_hs.json'
|
||||
# story_file = './inputs/all_stories.json'
|
||||
# story_file = './inputs/all_stories_hs.json'
|
||||
story_file = './inputs/all_stories.json'
|
||||
stories_data = json.load(open(story_file))
|
||||
word_list = [t[0] for i in stories_data.values() for t in i]
|
||||
# word_list = [i for g in stories_data.values() for i in g]
|
||||
# word_list = [t[0] for i in stories_data.values() for t in i]
|
||||
word_list = [i for g in stories_data.values() for i in g]
|
||||
(writer, closer) = synth_logger(dest_file, csv=True)
|
||||
synth_for_words = synth_generator()
|
||||
try:
|
||||
|
|
@ -228,4 +243,5 @@ def generate_audio_for_stories():
|
|||
closer()
|
||||
|
||||
if __name__ == '__main__':
|
||||
generate_audio_for_stories()
|
||||
generate_audio_for_text_list(['random','education'])
|
||||
# generate_audio_for_stories()
|
||||
|
|
|
|||
Loading…
Reference in New Issue