Regex 程序将如何根据wav文件获取输入短语并通过暂停进行合成
我试着用文件夹中给出的.wav文件来合成输入短语。如果输入短语有逗号,那么它将在300ms后开始,如果我们有句号或问号,它将在400ms后开始。 从这段代码开始,我不知道如何启动、加入短语和播放wav文件Regex 程序将如何根据wav文件获取输入短语并通过暂停进行合成,regex,wav,pyaudio,Regex,Wav,Pyaudio,我试着用文件夹中给出的.wav文件来合成输入短语。如果输入短语有逗号,那么它将在300ms后开始,如果我们有句号或问号,它将在400ms后开始。 从这段代码开始,我不知道如何启动、加入短语和播放wav文件 parser.add_argument('--play', '-a', action="store", default=False) args = parser.parse_args() class Synthesis(object): def __init__(self, wav_
parser.add_argument('--play', '-a', action="store", default=False)
args = parser.parse_args()
class Synthesis(object):
def __init__(self, wav_folder):
self.phones = {}
self.get_wavs(wav_folder)
def get_wavs(self, wav_folder):
for root, dirs, files in os.walk(wav_folder, topdown=False):
for file in files:
filesplit = file.split('.')
filename = filesplit[0]
self.phones[filename] = AS.Audio()
self.phones[filename].load(root + '/' + file)
def punctuation(phrase):
concate_punc = []
for word in phrase:
phn_ex= re.match(r'[a-z]+\|,|[.]|!|[?]', word)
phone_exception = phn_ex.group(0)
print phone_exception
if __name__ == "__main__":
S = Synthesis(wav_folder=args.phones)
output = AS.Audio(rate=48000)
那么你是在尝试制作罐装语音,而不是实际的语音合成?您正在使用的语言的每个单词都有一个.wav文件?是的,例如,当它收到“bye,bye!”时,它应该将其转换为带有暂停的cmudict phone_序列。。听起来应该像“baayiy(暂停)baayiy”好的,听起来更像是实际的语音合成。你是否有一个字-音转换器,即一套将“bye”映射到音素“baayiy”的规则?在那之前,我认为你不必担心停顿之类的事情。。。