当前位置: 首页>>代码示例>>Python>>正文


Python Recorder.convert_to_flac方法代码示例

本文整理汇总了Python中recorder.Recorder.convert_to_flac方法的典型用法代码示例。如果您正苦于以下问题:Python Recorder.convert_to_flac方法的具体用法?Python Recorder.convert_to_flac怎么用?Python Recorder.convert_to_flac使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在recorder.Recorder的用法示例。


在下文中一共展示了Recorder.convert_to_flac方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: from recorder import Recorder [as 别名]
# 或者: from recorder.Recorder import convert_to_flac [as 别名]
class SpeechToSpeech:
    def __init__(self, config_path):
        # read config file
        config = ConfigParser.RawConfigParser()
        config.read(config_path)

        # general
        self.tmp_file = config.get('general', 'tmp_file')

        # gsr api
        self.gsr_api_lang = config.get('gsr_api', 'language')

        # moses
        self.e = config.get('moses', 'e')
        self.f = config.get('moses', 'f')
        self.moses_config_orig = config.get('moses', 'config_orig')
        self.moses_config_fix = config.get('moses', 'config_fix')
        self.moses_dir = config.get('moses', 'moses_dir')
        self.model_dir = config.get('moses', 'model_dir')
        self.model_dir_jenkins = config.get('moses', 'model_dir_jenkins')
        self.threads = config.getint('moses', 'threads')

        # pyttsx
        self.tts_voice_id = config.get('pyttsx', 'voice')
        self.tts_voice_rate = config.getint('pyttsx', 'rate')

        # create recorder
        self.recorder = Recorder(language=self.gsr_api_lang)

    @staticmethod
    def replace_lines(in_file, out_file, from_line, to_line):
        with open(out_file, 'wt') as cfg_fix:
            with open(in_file, 'rt') as cfg_orig:
                for line in cfg_orig:
                    cfg_fix.write(line.replace(from_line, to_line))

    def fix_moses_config(self):
        # fix moses config
        cfg_fix = self.model_dir + self.moses_config_fix
        cfg_orig = self.model_dir + self.moses_config_orig
        line_orig = self.model_dir_jenkins
        line_fix = self.model_dir
        self.replace_lines(cfg_orig, cfg_fix, line_orig, line_fix)

    def moses_translation(self, stt_file):
        # use shell for translation
        shell_cmd = 'cat {5} |' \
                    '{0}scripts/tokenizer/tokenizer.perl -threads {2} -l {3} |' \
                    '{0}bin/moses -threads {2} -f {1}moses-sts.ini |' \
                    '{0}scripts/tokenizer/detokenizer.perl -threads {2} -l {4}'.format(self.moses_dir,
                                                                                       self.model_dir,
                                                                                       self.threads,
                                                                                       self.f,
                                                                                       self.e,
                                                                                       stt_file)

        # run translation
        moses_process = subprocess.Popen(shell_cmd, shell=True, stdout=subprocess.PIPE)
        return moses_process.stdout.read()

    def record_sample(self):
        flac_file = self.recorder.record()
        file_name, _ = os.path.splitext(flac_file)
        stt_file = self.recorder.speech_to_text(flac_file)

        return stt_file

    def translate(self, stt_file):
        if os.path.isfile(stt_file) and os.path.getsize(stt_file) > 0:
            file_name, _ = os.path.splitext(stt_file)

            # fix moses config file downloaded from jenkins
            self.fix_moses_config()

            translation = self.moses_translation(stt_file)

            # save translation
            trans_file_name = file_name + '-translated.txt'
            with open(trans_file_name, 'wt') as trans_file:
                trans_file.write(translation)

            print '* saved translation in', trans_file_name

            return translation.decode('utf8')

    def translate_file(self, file):
        flac_file = self.recorder.convert_to_flac(file)
        stt_file = self.recorder.speech_to_text(flac_file)

        return self.translate(stt_file)

    def translate_text(self, text):
        with open(self.tmp_file, 'wb') as tmp_file:
            tmp_file.write(text)

        return self.translate(self.tmp_file)

    def tts(self, text):
        print '* tts:', text
        engine = pyttsx.init()
#.........这里部分代码省略.........
开发者ID:katzoo,项目名称:amu,代码行数:103,代码来源:sts-moses.py


注:本文中的recorder.Recorder.convert_to_flac方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。