1. 首先要安装一个包 pydub,使用最流行的方式 pip 即可。

在此之后引用其中的 AudioSegment 模块,此外为了生成的文件名是当前的时间戳,因此导入了 datetime 包。

AudioSegment 模块封装了各种操作,可以较为便捷的操作MP3或者其他类型音频(pydub支持很多常见的音频格式)。

2. 其中一些基本操作如下:

读入MP3:mp3_1 = AudioSegment.from_mp3("C:\\my_mp3\\mp3_1.mp3") # 将括号内修改为你要读入的MP3文件路径

读入MP3:mp3_2 = AudioSegment.from_mp3("C:\\my_mp3\\mp3_2.mp3") # 将括号内修改为你要读入的MP3文件路径

拼接两段MP3:mp3 = mp3_1 + mp3_2 # 直接使用加号就可以拼接

输出为MP3格式:output_music.export("C:\\my_mp3\\output.mp3", format="mp3") # 将双引号内修改为要输出的文件路径

3. 我们把上述操作封装为一个拼接函数如下所示:

import os

from pydub import AudioSegment # 先导入这个模块

import datetime

def pinjie(mp3_path_list, out_div):

out_name = datetime.datetime.now().strftime('[%Y-%m-%d]%H-%M-%S.mp3')

output_music = None

first = True

for mp3_path in mp3_path_list:

if first:

first = False

input_music_1 = AudioSegment.from_mp3(mp3_path)

output_music = input_music_1

else:

input_music_1 = AudioSegment.from_mp3(mp3_path)

output_music += input_music_1 # 打开音频后,直接使用+运算符就可以将两段拼接在一起

output_music.export(out_div + "\\" + out_name, format="mp3") # 输出合并之后的音频

print(len(output_music), output_music.channels) # 打印一下合并后音频的信息

4. 紧接着需要创建一个有道词典类,专门下载有道词典的读音文件(MP3格式)

这个类太长了,我放在另外一篇博客中写吧,主要功能就是下载音频,分为下载美音和英音两种。

这个类是在另外一篇博客的基础上只做了微小的改动,点击此处链接到最初的博客,在此感谢这个博主。

5. 将 download 单独封装为一个包(文件)

from youdao import youdao as yd

trans = {"英音": 1, "美音": 0, "英美": 3}

def download(pronunciation, word_list):

sp = yd()

if trans[pronunciation] == 0 or trans[pronunciation] == 3: # 获取美音

print("获取列表单词的美音音频: ", word_list)

sp.setAccent(0)

for one_word in word_list:

sp.down(one_word)

if trans[pronunciation] == 1 or trans[pronunciation] == 3: # 获取英音

print("获取列表单词的英音音频: ", word_list)

sp.setAccent(1)

for one_word in word_list:

sp.down(one_word)

6. 找一些空白音频来作为时间间隔(这个会在我上传的代码中带有)

__5.mp3 为0.5秒的空白音频

_1.mp3 为1秒的空白音频

_2.mp3 为2秒的空白音频

_3.mp3 为3秒的空白音频

7. 准备工作到此结束,然后写下主要代码:

import datetime

from download import download as dl

import os

from pinjieMP3 import pinjie

from random import shuffle

f = open('C:/mine/my_word_list.txt') # 此处是单词列表,使用换行作为单词与单词之间的间隔

word_list = f.readlines()

word_list = [word.replace("\n", "") for word in word_list]

f.close()

dl("英音", word_list) # 在此处修改英音还是美音

type = 1 # 0为美音,1为英音 # 在此处也要修改英音还是美音

d_word_list = []

# 将单词列表随机打乱,注释掉这一行就是按照输入顺序进行生成的

shuffle(word_list)

d_word_list.append("_2")

d_word_list.append("_2")

for word in word_list:

d_word_list.append(word)

d_word_list.append("_2")

d_word_list.append(word)

d_word_list.append("_2")

d_word_list.append("_2")

mp3_file_path_list = []

dirRoot = os.path.dirname(os.path.abspath(__file__))

out_put_div = os.path.join(dirRoot, "output")

# 输出打乱后的列表

out_name = datetime.datetime.now().strftime('[%Y-%m-%d]%H-%M-%S.txt')

f = open(out_put_div + '\\' + out_name, "w")

f.writelines([word+"\n" for word in word_list])

f.close()

for word in d_word_list:

word = word.lower() # 小写

fileName = word + '.mp3'

if 0 == type:

dirSpeech = os.path.join(dirRoot, 'Speech_US') # 美音库

else:

dirSpeech = os.path.join(dirRoot, 'Speech_EN') # 英音库

filePath = os.path.join(dirSpeech, fileName)

# 判断是否存在这个MP3文件

if os.path.exists(filePath):

mp3_file_path_list.append(filePath)

else:

print("【ERROR】音频文件不存在造成错误: ", filePath)

pinjie(mp3_file_path_list, out_put_div)

print("----程序结束----")

原文链接:https://blog.csdn.net/weixin_40901068/article/details/107907610

python英语词汇读音_Python 将英语单词列表,转换为听写使用的MP3格式(每个单词朗读两遍)...相关推荐

  1. Python 将英语单词列表,转换为听写使用的MP3格式(每个单词朗读两遍)

    点此跳转至 本文代码下载 1. 首先要安装一个包 pydub,使用最流行的方式 pip 即可. 在此之后引用其中的 AudioSegment 模块,此外为了生成的文件名是当前的时间戳,因此导入了 da ...

  2. python字符串转浮点数_python – 无法将字符串列表转换为浮点数

    我的程序应该读取带有一堆数字的文本文档,并列出只有正数的列表.我无法将文本文档中的字符串转换为浮点数,因此我无法确定它们是否是正面的. 我链接了一个截图,因为我的副本粘贴有问题. 没有数字=浮点数(数 ...

  3. python英语词汇读音_美式英语和英式英语音标单词发音差异区别大全

    BrE AmE Words / ɑː/ /æ / Excluding words changed by the trap – bath split , [57] (which affects most ...

  4. 计算机英语词汇论文,【计算机英语论文】计算机英语词汇教育思索(共2137字)

    一.计算机英语词汇的特点 1.普通词汇的专业化.在计算机英语文献中,普通词汇获得了固定的专业意义.如character的普通意义为"特征,符号",在计算机专业英语中其意义为&quo ...

  5. 计算机的英语词汇牛津,牛津小学英语词汇表.PDF

    牛津小学英语词汇表 牛津小学英语词汇表 A a anything 什么事(物):任何事(物)(4B7) a, an 一(个,件)(an 用于元音音素开头的 Anything else? 还要别的东西吗 ...

  6. python英语词汇读音_利用PYTHON 爬虫爬出自己的英语单词库

    为什么要建立自己的单词库 用过各种的背单词软件,总是在使用其他人的词库或者软件自己提供的词库,基本是人家提供什么自己就用什么,要想有更多的自主基本没有,最近看一个 COCA的按单词使用频率来提取的2万 ...

  7. python英语词汇读音_利用Python制作查单词小程序(一):抓取来自百度翻译的单词释义和音标...

    小编在学习英语的时候,遇到不认识的英语单词,会用百度翻译来查询单词的释义和音标,并播放单词的读音.为了便于复习和记忆,需要将单词的释义和音标以复制粘贴的方式保存到本地. 这个过程非常繁琐,于是小编就想 ...

  8. python英语词汇读音_40行Python代码区分英语单词和汉语拼音

    前天在一个群里有人问:利用一些英语语料,如何训练一个模型来识别出测试语句中的汉语拼音.我的第一反应想到了语言模型中的拼写纠错模型,但是纠错模型应该更复杂一些,需要实现的功能也多,比如英语单词拼错之后, ...

  9. 学python要有多少英语词汇量_学习英语到底多少词汇量够用,1年能学习到1000的词汇量吗?...

    学习英语到底多少词汇量够用,1年能学习到1000的词汇量吗? 问:孩子4岁,英语词汇量只有1500左右,是不是不太够? 答:在美国肯定是够了,在海淀肯定是不够. 孩子4岁英语词汇量1500左右,还担心 ...

  10. 计算机英语词汇频率统计,托福英语语法经典词汇与频率统计

    托福英语语法经典词汇与频率统计 英语词汇一直是困绕许多考生的难题,我们用尽了种种办法,但还是记了忘,忘了记,记得当时我的一位室友非常爱统计规律,他把历年的考题总结归类,总结出几十个单词,告诉我们考试的 ...

最新文章

  1. aws lambda使用, aws无服务器部署应用。 aws ecr凭证获取和使用。
  2. 如何使用华为云的计算资源来进行机器学习(CodeLab)
  3. Linux命令之乐--nmap
  4. 按需加载图片(图片懒加载)
  5. hihoCoder 1578 Visiting Peking University 【贪心】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)...
  6. DataWorks搬站方案:Airflow作业迁移至DataWorks
  7. [设计模式] - 策略模式(Java篇)
  8. Multiavatar头像生成,要多少有多少
  9. 转载:用大白话聊聊分布式系统
  10. 代码校验工具 SublimeLinter 的安装与使用
  11. QQ邮箱鸡肋存储型XSS漏洞利用
  12. oracle客户端登录失败,Win7系统配置Oracle客户端连接失败的解决方法
  13. 火星时代python培训
  14. 嵩天python_跟着北京理工大学嵩天老师学习Python
  15. win10服务器怎么连接显示器不亮,Win10检测不到第二个显示器怎么解决?Win10外接显示器黑屏解决方法...
  16. 使用imageio写视频文件指定输出质量
  17. 图像处理———图像的几何变换原理及实现
  18. 链表的头插法和尾插法——头插尾插交替插入
  19. 小博老师浅谈Context(一)
  20. HTTP中常见的状态码代表的意思比如202、303、404、505、访问网络时有时经常见的状态,也是面试题中关于HTTP经常出现的

热门文章

  1. 黑马培训---分享点干货二 IOS面试非技术性问题
  2. FPC柔性印制电路板学习一
  3. 总结IDA调试app so库的三种方法
  4. 六兆年と一夜物語 jzoj3501 最短路
  5. 西游记中托塔李天王的三个儿子,一个女儿和一个干女儿
  6. 下载微信公众号视频文件
  7. 视频教程 | 与程序员进行高效沟通,三分钟带你掌握Zeplin
  8. 分享一些光纤模块接口类型有用信息给大家
  9. Forbidden什么意思
  10. hdu 2036 改革春风吹满地(叉积求多边形面积)