资源简介

一个python离线的TTS语音合成,简单实现和使用!首先将文本与语音对照的方法实现了转换,然后再播放对应文字对应的拼音所对应的音频来播放语音 。缺点是没有进行音频合成。

资源截图

代码片段和文件信息

from os import path
import codecs
import winsound

class Hanzi2Pinyin():
    def __init__(self):
        self.table = {}
        try:
            fp = codecs.open(path.join(path.dirname(__file__) ‘pinyin.txt‘) ‘r‘ ‘utf-8‘)
        except IOError:
            raise Exception(“Can‘t load data from pinyin.txt“)
        except UnicodeDecodeError:
            raise Exception(“Can‘t decode data from pinyin.txt“)
        else:
            for l in fp.readlines():
                self.table[l[0]] = l[1:-1]
            fp.close()

    def convert(self value):
        pinyin = []
        tASCII = ‘‘
        # 字符检查
        for c in value.lower() + ‘ ‘: # 加个空格多一次循环 修正尾部字符丢失问题
            i = ord(c)
            if (i >= 48 and i <= 57) or (i >= 97 and i <= 122): # 48-57[0-9]   97-122[a-z]
                tASCII += c
                continue

            tASCII and pinyin.append(tASCII)
            tASCII = ‘‘

            if c in self.table:
                pinyin.append(self.table[c])

        return pinyin

# 播放wav
def play(word):
    p = Hanzi2Pinyin().convert(str(word))
    for name in p:
        winsound.PlaySound(path.join(path.dirname(__file__)  ‘yyc\\{0}.wav‘.format(name) ) winsound.SND_FILENAME)

def main():
    string = input(‘请输入要转换为语音的中文文本:\n‘)
    print()
    print(‘*‘*12)
    print(‘待转换的语音为:‘string)
    print(‘*‘*12)
    play(string)

if __name__ == ‘__main__‘:
    main()

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1499  2020-05-08 00:34  TTS\main.py

    .......    145633  2019-07-30 12:30  TTS\pinyin.txt

    .......        29  2019-07-30 12:30  TTS\yyc\$read

    .......     35902  2019-07-30 12:30  TTS\yyc\a.wav

    .......     36772  2019-07-30 12:30  TTS\yyc\ai.wav

    .......     36772  2019-07-30 12:30  TTS\yyc\ai_.wav

    .......      1192  2019-07-30 12:30  TTS\yyc\ai_wav.frq

    .......      1192  2019-07-30 12:30  TTS\yyc\ai__wav.frq

    .......     44286  2019-07-30 12:30  TTS\yyc\an.wav

    .......     42848  2019-07-30 12:30  TTS\yyc\ang.wav

    .......     42848  2019-07-30 12:30  TTS\yyc\ang_.wav

    .......      1384  2019-07-30 12:30  TTS\yyc\ang_wav.frq

    .......      1384  2019-07-30 12:30  TTS\yyc\ang__wav.frq

    .......     44286  2019-07-30 12:30  TTS\yyc\an_.wav

    .......      1432  2019-07-30 12:30  TTS\yyc\an_wav.frq

    .......      1432  2019-07-30 12:30  TTS\yyc\an__wav.frq

    .......     45450  2019-07-30 12:30  TTS\yyc\ao.wav

    .......     45450  2019-07-30 12:30  TTS\yyc\ao_.wav

    .......      1464  2019-07-30 12:30  TTS\yyc\ao_wav.frq

    .......      1464  2019-07-30 12:30  TTS\yyc\ao__wav.frq

    .......      4233  2019-07-30 12:30  TTS\yyc\avatar.jpg

    .......     35902  2019-07-30 12:30  TTS\yyc\a_.wav

    .......      1176  2019-07-30 12:30  TTS\yyc\a_wav.frq

    .......      1176  2019-07-30 12:30  TTS\yyc\a__wav.frq

    .......     37350  2019-07-30 12:30  TTS\yyc\ba.wav

    .......     39374  2019-07-30 12:30  TTS\yyc\bai.wav

    .......      1272  2019-07-30 12:30  TTS\yyc\bai_wav.frq

    .......     48052  2019-07-30 12:30  TTS\yyc\ban.wav

    .......     41110  2019-07-30 12:30  TTS\yyc\bang.wav

    .......      1336  2019-07-30 12:30  TTS\yyc\bang_wav.frq

............此处省略866个文件信息

评论

共有 条评论