tts.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. # Copyright (c) Alibaba, Inc. and its affiliates.
  2. import os
  3. from typing import Any, Dict, List, Union
  4. from kantts.preprocess.data_process import process_data
  5. from modelscope.metainfo import Preprocessors
  6. from modelscope.models.base import Model
  7. from modelscope.utils.audio.tts_exceptions import (
  8. TtsDataPreprocessorAudioConfigNotExistsException,
  9. TtsDataPreprocessorDirNotExistsException)
  10. from modelscope.utils.constant import Fields, Frameworks, Tasks
  11. from .base import Preprocessor
  12. from .builder import PREPROCESSORS
  13. __all__ = ['KanttsDataPreprocessor']
  14. @PREPROCESSORS.register_module(
  15. group_key=Tasks.text_to_speech,
  16. module_name=Preprocessors.kantts_data_preprocessor)
  17. class KanttsDataPreprocessor(Preprocessor):
  18. def __init__(self):
  19. pass
  20. def __call__(self,
  21. data_dir,
  22. output_dir,
  23. audio_config_path,
  24. speaker_name='F7',
  25. target_lang='PinYin',
  26. skip_script=False,
  27. se_model=None):
  28. self.do_data_process(data_dir, output_dir, audio_config_path,
  29. speaker_name, target_lang, skip_script, se_model)
  30. def do_data_process(self,
  31. datadir,
  32. outputdir,
  33. audio_config,
  34. speaker_name='F7',
  35. targetLang='PinYin',
  36. skip_script=False,
  37. se_model=None):
  38. if not os.path.exists(datadir):
  39. raise TtsDataPreprocessorDirNotExistsException(
  40. 'Preprocessor: dataset dir not exists')
  41. if not os.path.exists(outputdir):
  42. raise TtsDataPreprocessorDirNotExistsException(
  43. 'Preprocessor: output dir not exists')
  44. if not os.path.exists(audio_config):
  45. raise TtsDataPreprocessorAudioConfigNotExistsException(
  46. 'Preprocessor: audio config not exists')
  47. process_data(datadir, outputdir, audio_config, speaker_name,
  48. targetLang, skip_script, se_model)