手把手教你实现——Python文字(汉字)转语音教程,举一反三~

article/2025/8/18 17:50:30

前言:

这是一篇简单的Python文字(汉字)转语音教程,当然对于其他语言工具在实现的方法上也是一样的 。

在自然语言处理上,文字、音频互转是一个很关键的技术点。对于语音转文字,个人实现较为困难,我们可以使用语音转文字的软件或借助各API(如科大讯飞等)进行移植开发。不过文字转语音就相对而言容易实现很多了。

汉字转语音实现就分为两步,第一步将汉字转为拼音,第二步通过拼音调用相匹配的音频文件。下面是具体的开发实例教程。

开发环境:Windows

Python版本:3.x

外置模块准备:pygame(可直接在cmd命令行中pip install pygame安装)

汉字转拼音

我使用的是将汉字转为Unicode码,然后通过查询一个匹配文件(我使用的是unicode_py.txt)获取该汉字的拼音,该文件中列有从4E00-9FA5标准汉字的Unicode编码所对应的拼音,外加一个落单的3007编码的“〇”。

文件如下:

在大写拼音英文后的1,2,3,4,5分别表示一,二,三,四和轻声(注意到存在有多音字)

我们将其封装成一个函数,参数为一个全是汉字的字符串,返回是一个拼音字符串。(即chinese_to_pinyin("秋水共长天一色") 返回的是"QIU1 SHUI3 GONG4 CHANG2 TIAN1 YI1 SE4 ")

源码如下:

def chinese_to_pinyin(x):y = ''dic = {}with open("unicode_py.txt") as f:for i in f.readlines():dic[i.split()[0]] = i.split()[1]for i in x:i = str(i.encode('unicode_escape'))[-5:-1].upper()try:y += dic[i] + ' 'except:y += 'XXXX ' #非法字符我们用XXXX代替return y

说明:将该文件与"unicode_py.txt"文件放在同一目录下,代码比较简陋,因为主要给大家讲实现教学,所以没有对多音字进行处理(所以默认使用第一个使用频率最高的音)

拼音转语音

这一步也比较简单,我们根据拼音调用相对应的单个音的音频文件即可。单个音的音频文件可以自己录或找人录,渠道有很多哦。注意文件格式,最好是mp3或wav文件。

部分文件展示如下:

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

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

源码如下:

import pygame
def make_voice(x):pygame.mixer.init()voi = chinese_to_pinyin(x).split()for i in voi:if i == 'XXXX':  #处理'XXXX'的音,可将其忽略continuepygame.mixer.music.load("voice/" + i + ".mp3")pygame.mixer.music.play()while pygame.mixer.music.get_busy() == True:passreturn None

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

import pygamedef chinese_to_pinyin(x):y = ''dic = {}with open("unicode_py.txt") as f:for i in f.readlines():dic[i.split()[0]] = i.split()[1]for i in x:i = str(i.encode('unicode_escape'))[-5:-1].upper()try:y += dic[i] + ' 'except:y += 'XXXX 'return ydef make_voice(x):pygame.mixer.init()voi = chinese_to_pinyin(x).split()for i in voi:if i == 'XXXX':continuepygame.mixer.music.load("voice/" + i + ".mp3")pygame.mixer.music.play()while pygame.mixer.music.get_busy() == True:passreturn Nonewhile True:p = input("请输入文字:")make_voice(p)

教程文件的目录结构:

test.py
unicode_py.txt
voice----A1.mp3A2.mp3A3.mp3...

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

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

结尾:

以上就是本文的全部内容了,大家喜欢的记得点点赞!

最后完整代码已经打包整理好了,有需要的小伙伴,可以点击这行字体,要么私信小编!

 


http://chatgpt.dhexx.cn/article/jBSiOh2E.shtml

相关文章

在线文字转成语音怎么转

很多小伙伴在办公或学习中,经常或需要浏览大量资料。随着时间越来越长,我们的眼睛就会多度疲劳。为了不戴上眼镜,我们只能改变当前的方式,也就是把文字变成语音去听,而不是去看。那么就有小伙伴想问了在线文字转成语音…

做短视频时如何将文字转为语音?分享三个小方法,教你轻松配音

做短视频时如何将文字转为语音?分享三个小方法,教你轻松配音 在做短视频的时候,经常会遇到需要将文字转为语音,为短视频配音的情况。那么,我们可以如何为短视频配音呢?文字转为语音的方法又有哪些呢&#…

小程序实现文字转语音

1、在微信公众平台登录小程序&#xff0c;添加插件微信同声翻译 搜索微信同声翻译点击添加&#xff0c;即可进行开发 代码 index.html <view><button class"showCharacter" bindtap"wordYun">跟我读</button> </view>index.js …

在线文字转语音怎么转

小伙伴们有没有遇到过需要把文字变成语音&#xff0c;要求发声的问题呢&#xff1f;其实在很多领域需要把文字变成语音&#xff0c;比如我们每天接触的短视频领域&#xff0c;尤其是一些影视评论博主使用的评论视频。这给短视频制作人带来了很多便利&#xff0c;节省了配音成本…

微信公众号 语音转文字api_文字一键转语音,无需安装任何软件

点击蓝字关注我们 截止到今天&#xff0c;整整一个月没有出门了。 人都说&#xff0c;越闲越懒、越吃越馋&#xff0c;这话一点不错&#xff0c;早上睡到八九点&#xff0c;起来洗漱一下&#xff0c;吃点早餐&#xff0c;一整个上午就这么溜走了&#xff0c;以至于老妈给我打视…

php文字转语音amr,如何将文字转成语音?这几个方法一分钟搞定!

原标题:如何将文字转成语音?这几个方法一分钟搞定! 文字转语音在我们的生活中已经广泛使用了,早晨起床想要看看新闻,但是又无奈时间不够,这时不必慌张,想要了解新闻事件,我们直接把这些文字转为语音,随时随地有时间就可以播放出来听,一点都不怕耽误做其它的事情。 那…

Android文字转语音播报

文章目录 前言一、实现方式1.Android系统自带TTS2.第三方语音框架&#xff1a;云知声离线语音(32位&#xff1a;armeabi-v7a)、... 二、Android系统自带TTS1.集成工具类TextToSpeechUtils2.初始化和调用3.需要的支持中文语音引擎 三、第三方语音框架&#xff08;云知声离线语音…

C# 文字转语音

不依赖于第三方程序&#xff0c;使用.net自带的System.Speech实现&#xff0c;添加引用至项目即可 实现功能&#xff1a; 将文字转为语音&#xff0c;实现播放、暂停、继续、停止;以及音量和语速调整等功能&#xff0c;并且支持将音频保存到本地 开发环境&#xff1a; 开发工具…

计算机将文本朗读出来应用语音,还有这种操作?一分钟轻松把文字变成语音,手机电脑都可以!...

原标题&#xff1a;还有这种操作&#xff1f;一分钟轻松把文字变成语音&#xff0c;手机电脑都可以&#xff01; 有的时候&#xff0c;我们不想看文字的时候&#xff0c;就想用耳朵来听&#xff0c;所以现在很多人更喜欢听电台听故事。可是我们的文件没有声音啊&#xff0c;怎么…

有什么软件可以把文字变成语音?声音多点更好了

文字转语音用到就是AI智能功能&#xff0c;基于深度的学习技术&#xff0c;给用户提供了流畅、自然的发音服务。很多用户在线使用传统的配音工具时&#xff0c;经常遇到发音机械、选择主播有限、广告众多等各种缺点。选择知意配音的优点实在太多了简直不要套多&#xff0c;海量…

怎么让文字变成语音?如何将文字自动生成语音?

文字转语音怎么弄?如果不想用自己声音做音频&#xff0c;可以使用压缩视频网-文字合成语音https://www.yasuoshipin.com/make功能&#xff0c;简单好操作&#xff0c;语音合成的方法一起来看一下吧。 点击工具栏&#xff0c;文字合成语音功能&#xff0c;编辑文字内容或者将编…

html 文字 转 语音,把文字变成语音的软件

这年头爱看网络小说的人是越来越多了&#xff0c;但是&#xff0c;那密密麻麻的文字让人看着看着就头昏眼花了&#xff0c;额滴神啊&#xff01; 要是能把文字变成语音就好了&#xff01;偷偷告诉大家哦&#xff0c;其实我也是这类人 &#xff0c;所以最近我找到了一款好用的文…

如何让文字变成语音?推荐三个免费把文字变成音频软件

日常生活中&#xff0c;我们不论是在办公还是在学习都经常会与文字打交道&#xff0c;有时候需要把文字变为音频来使用&#xff0c;但是自己去录制的话&#xff0c;不仅麻烦还容易出错&#xff0c;其实我们可以借助工具来完成文字变语音的操作。那么今天就让我来教教大家如何让…

文字怎么转语音?这些方法值得收藏

在我们不方便阅读&#xff0c;但又需要了解一些文章信息的时候&#xff0c;各位小伙伴们会怎么做呢&#xff1f;是等方便的时候再进行阅读吗&#xff1f;还是说让他人帮忙转述呢&#xff1f;其实我们可以让文字自己说话&#xff0c;只需要一些软件配合即可。那你们知道如何让文…

数学建模常用算法—灰色关联分析法(GRA)

解决问题 灰色关联分析的基本思想是根据序列曲线几何形状的相似程度来判断其联系是否紧密。曲线越接近&#xff0c;相应序列之间的关联度就越大&#xff0c;反之就越小。 一般的抽象系统&#xff0c;如社会系统、经济系统、农业系统、生态系统、教育系统等都包含有许多种&…

灰色关联度分析-详细代码和说明

1、数据来源&#xff1a;自主计算 2、时间跨度&#xff1a;无 3、区域范围&#xff1a;无 4、指标说明&#xff1a; 因素分析的基本方法过去采用的主要是统计的方法&#xff0c;如回归分析&#xff0c;回归分析虽然是一种较通用的方法&#xff0c;但大都只用于少因素的、线…

数学建模-灰色关联度分析原理笔记

文章目录 灰色关联分析法简介步骤画统计图&#xff0c;进行简单分析确定分析数列对变量进行预处理计算子序列中各个指标与对应母指标的关联系数计算灰色关联度得到结论 讨论评价类问题完整分析步骤&#xff08;该方法&#xff09;对指标进行正向化预处理得到母序列计算灰色关联…

Python实现 灰色关联分析 与结果可视化

之前在比赛的时候需要用Python实现灰色关联分析,从网上搜了下只有实现两个列之间的,于是我把它改写成了直接像Pandas中的计算工具直接计算person系数那样的形式,可以对整个矩阵进行运算,并给出了可视化效果,效果请见实现 作者提醒&#xff1a;部分读者反应在某些情况下与MATLA…

灰色关联分析法步骤

https://wenku.baidu.com/view/dc356290af1ffc4fff47ac0d.html?rec_flagdefault&sxts1538121950212 利用灰色关联分析的步骤是&#xff1a; 1&#xff0e;根据分析目的确定分析指标体系&#xff0c;收集分析数据。 设n个数据序列形成如下矩阵&#xff1a; 其中m为指标的…

评价类问题_灰色关联分析

适用范围&#xff1a;计算影响结果的因素的重要程度&#xff0c;确定权重&#xff0c;也适用于评价类问题 基本思想&#xff1a;根据曲线集合形状的相似程度&#xff0c;判断联系是否紧密&#xff0c;曲线越接近&#xff0c;相应序列之间的关联度越大&#xff0c;反之越小 灰色…