万能文字语音转换器
首页 / 语音转文字 / 如何将文字转换成语音?教你使用Python实现!

如何将文字转换成语音?教你使用Python实现!

2021-05-17 14:11:14

马上下载万能文字语音转换器


第一句,本来想写一个简单的单流程单线程爬虫教程,但知道这样的句子已经很多了,而且写得很好,所以我不会堵塞。下次有时间的话,写一个关于多线程请求的爬虫教程。

这是一个简单的python文字(汉字)语音转换教程,当然对其他语言工具也是如此。

在自然语言处理中,文字、音频相互旋转是非常重要的技术要点。对于语音专家来说,这个人的实现比较困难。我们可以使用语音专业软件,也可以利用各API(如koday news等)进行移植开发。但是文字语音转换相对容易得多。

简单地说,从汉字到语音的实现分为两个阶段。第一步用汉字作为拼音,第二步通过拼音调用匹配的音频文件。以下是具体的开发案例教程。

开发环境:Windows

python版本:3.x

准备外部模块:pygame(可以直接从cmd命令行安装pip安装程序)

汉字拼音

将汉字转换成unicode码,然后查询匹配的文件(使用unicode _ py . txt),得到汉字的拼音。该文件列出了与4E00-9FA5标准汉字的unicode编码相对应的拼音和单个3007编码

文件如下:

汉字转语音

文件链接:链接:3359 pan . Baidu.com/s/1 nwhsndf密码3360 73yk

大写拼音英语后面的1,2,3,4,5分别表示一,二,三,四,耳语

我们把它封装成一个函数,参数都是汉字字符串,返回是拼音字符串。也就是说,chinese_to_pinyin(“秋物都是长天蓝色”)将返回“Qiu 1 Shui 3 Gong 4 Chang 2 Tian 1 Yi1 Se4”

源代码如下:

defchinese _ to _ pinyin(x)3360

Y=' '

Dic={}

withopen(' unicode _ py . txt ')ASF 3360

Foriinf.readlines():

DIC[I . Split()[0]=I . Split()[1]

Foriinx:

I=str(I . encode(' unicode _ escape '))[-53360-1]。upper()

树:

Y=dic[i]' '

Except:

用无效字符XXXX替换了Y='XXXX'#

Returny说明:将此文件放在“unicode _ py . txt”文件所在的目录中,代码相对简单。主要讲授实施教育,所以不处理下列字(基本上使用最常用的第一个音):

拼音语音

这个步骤也比较简单。根据拼音,调用相应的单个音的音频文件就可以了。单音的音频文件可以自己录音,也可以找人录音,频道很多啊。请注意文件类型。建议使用MP3或wav文件。

一些文档显示如下:

{IMG

_1}


我们将其置入一个voice文件夹下。准备工作就做好了。

我们同样将汉字转语音封装成一个make_voice函数,参数为一个汉字字符串,然后调用chinese_to_pinyin函数,返回值不重要,可为空,功能实现是调用音频文件发音。

源码如下:

importpygamedefmake_voice(x):
pygame.mixer.init()
voi=chinese_to_pinyin(x).split()
foriinvoi:
ifi=='XXXX':#处理'XXXX'的音,可将其忽略
continue
pygame.mixer.music.load("voice/"+i+".mp3")
pygame.mixer.music.play()
whilepygame.mixer.music.get_busy()==True:
pass
returnNone


我们展示一下这个教学版的最后完整的代码图(该文件名为"test.py"):

importpygamedefchinese_to_pinyin(x):
y=''
dic={}
withopen("unicode_py.txt")asf:
foriinf.readlines():
dic[i.split()[0]]=i.split()[1]
foriinx:
i=str(i.encode('unicode_escape'))[-5:-1].upper()
try:
y+=dic[i]+''
except:
y+='XXXX'
returnydefmake_voice(x):
pygame.mixer.init()
voi=chinese_to_pinyin(x).split()
foriinvoi:
ifi=='XXXX':
continue
pygame.mixer.music.load("voice/"+i+".mp3")
pygame.mixer.music.play()
whilepygame.mixer.music.get_busy()==True:
pass
returnNonewhileTrue:
p=input("请输入文字:")
make_voice(p)

教程文件的目录结构:

test.py
unicode_py.txt
voice----A1.mp3
A2.mp3
A3.mp3
...


实现原理就是这样,同时也可以视一些具体情况做一些拓展,例如将阿拉伯数字转汉字读法(即1234006.15读作“一百二十三万四千零六点一五”,这个实现不难),还有将多音字问题攻破也是很棒的。

当然只要想法够丰富用pygame的音频功能也能实现很多有趣的功能(如播放器制作或电子音乐简单创作等)。


 
上一篇:如何在线语音转换文本?超好用工具分享!
SpeechNotes是通过麦克风识别语音、转换为文本并打印的工具,适合制作现场会议记录,只要有互联网,就可以通过浏览器进行语音识别,不仅能识别基本的英语口语内容,还支持多种语言,如中文。SpeechNodeSpeechnotes的主要用途是用户对着麦克风说话,实时识别并转换为纯文本,在识别前切换到该语言即可转换本国语言,交换的文本也提供了在线编辑器。识别口语内容后,可以自动输入编辑框中,通过浏览
下一篇:录音转文字用什么工具?试试这个!
  搜狗微信频道[录音-文本助手]  点击上面的蓝色字注视我们。  实时语音转换、外部音频导入转换、录音-文本支持  如果你认为资源对你有用,请收藏。如果你认为资源对别人有用,请称赞我!  [应用程序名称] :录音-文本助手    智能语音转换文本软件  实时语音转换,支持外部音频导入转换  文字对语音,视频对文字  语音翻译、音频编辑等多种功能  商务人士可以用来实时转换会议记录。  大学生也可

万能文字语音转换器

免费下载