jiaqi.sjq yingda.chen 3 years ago
parent
commit
65be443e98
2 changed files with 58 additions and 12 deletions
  1. +0
    -0
      modelscope/models/audio/tts/models/datasets/__init__.py
  2. +58
    -12
      tests/pipelines/test_text_to_speech.py

+ 0
- 0
modelscope/models/audio/tts/models/datasets/__init__.py View File


+ 58
- 12
tests/pipelines/test_text_to_speech.py View File

@@ -27,21 +27,67 @@ class TextToSpeechSambertHifigan16kPipelineTest(unittest.TestCase,

def setUp(self) -> None:
self.task = Tasks.text_to_speech
self.model_id = 'damo/speech_sambert-hifigan_tts_zhitian_emo_zh-cn_16k'
zhcn_text = '今天北京天气怎么样'
en_text = 'How is the weather in Beijing?'
zhcn_voice = ['zhitian_emo', 'zhizhe_emo', 'zhiyan_emo', 'zhibei_emo']
enus_voice = ['andy', 'annie']
engb_voice = ['luca', 'luna']
self.tts_test_cases = []
for voice in zhcn_voice:
model_id = 'damo/speech_sambert-hifigan_tts_%s_%s_16k' % (voice,
'zh-cn')
self.tts_test_cases.append({
'voice': voice,
'model_id': model_id,
'text': zhcn_text
})
for voice in enus_voice:
model_id = 'damo/speech_sambert-hifigan_tts_%s_%s_16k' % (voice,
'en-us')
self.tts_test_cases.append({
'voice': voice,
'model_id': model_id,
'text': en_text
})
for voice in engb_voice:
model_id = 'damo/speech_sambert-hifigan_tts_%s_%s_16k' % (voice,
'en-gb')
self.tts_test_cases.append({
'voice': voice,
'model_id': model_id,
'text': en_text
})
zhcn_model_id = 'damo/speech_sambert-hifigan_tts_zh-cn_16k'
enus_model_id = 'damo/speech_sambert-hifigan_tts_en-us_16k'
engb_model_id = 'damo/speech_sambert-hifigan_tts_en-gb_16k'
self.tts_test_cases.append({
'voice': 'zhcn',
'model_id': zhcn_model_id,
'text': zhcn_text
})
self.tts_test_cases.append({
'voice': 'enus',
'model_id': enus_model_id,
'text': en_text
})
self.tts_test_cases.append({
'voice': 'engb',
'model_id': engb_model_id,
'text': en_text
})

@unittest.skipUnless(test_level() >= 0, 'skip test in current test level')
def test_pipeline(self):
text = '今天北京天气怎么样?'
voice = 'zhitian_emo'

model = Model.from_pretrained(
model_name_or_path=self.model_id, revision='pytorch_am')
sambert_hifigan_tts = pipeline(task=self.task, model=model)
self.assertTrue(sambert_hifigan_tts is not None)
output = sambert_hifigan_tts(input=text, voice=voice)
self.assertIsNotNone(output[OutputKeys.OUTPUT_PCM])
pcm = output[OutputKeys.OUTPUT_PCM]
write('output.wav', 16000, pcm)
for case in self.tts_test_cases:
logger.info('test %s' % case['voice'])
model = Model.from_pretrained(
model_name_or_path=case['model_id'], revision='pytorch_am')
sambert_hifigan_tts = pipeline(task=self.task, model=model)
self.assertTrue(sambert_hifigan_tts is not None)
output = sambert_hifigan_tts(input=case['text'])
self.assertIsNotNone(output[OutputKeys.OUTPUT_PCM])
pcm = output[OutputKeys.OUTPUT_PCM]
write('output_%s.wav' % case['voice'], 16000, pcm)

@unittest.skip('demo compatibility test is only enabled on a needed-basis')
def test_demo_compatibility(self):


Loading…
Cancel
Save