Python 将英语单词列表,转换为听写使用的MP3格式(每个单词朗读两遍)
点此跳转至 本文代码下载
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 osfrom pydub import AudioSegment # 先导入这个模块
import datetimedef pinjie(mp3_path_list, out_div):out_name = datetime.datetime.now().strftime('[%Y-%m-%d]%H-%M-%S.mp3')output_music = Nonefirst = Truefor mp3_path in mp3_path_list:if first:first = Falseinput_music_1 = AudioSegment.from_mp3(mp3_path) output_music = input_music_1else: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 ydtrans = {"英音": 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 datetimefrom download import download as dl
import os
from pinjieMP3 import pinjie
from random import shufflef = 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("----程序结束----")
点此跳转至 本文代码下载
Python 将英语单词列表,转换为听写使用的MP3格式(每个单词朗读两遍)相关推荐
- python列表转为一个数字_关于python:将整数列表转换为一个数字?
我有一个整数列表,我想将其转换为一个数字,例如: numList = [1, 2, 3] num = magic(numList) print num, type(num) >>> ...
- python实现dat文件批量转换为 excel文件 关键词 批量格式转换 dat文件 excel读写 诺祺 可发表知乎ed csdn ed
python实现批量dat转excel.pyimport os,time,xlwt def single(filepath):'''参数:txt文件路径,功能将其转换成excel文件'''print( ...
- python每行乘列表_python – 在pandas数据帧中查找每行的两列列表中哪一列的最快方法...
我正在寻找最快的方法来做到以下几点: 我们有一个pd.DataFrame: df = pd.DataFrame({ 'High': [1.3,1.2,1.1], 'Low': [1.3,1.2,1.1 ...
- 【avif格式转换】python借助pillow实现avif转换为jpg,png等常见格式
安装pillow-avif-plugin插件即可(pip install pillow-avif-plugin) Github里有详细介绍→[Github]pillow-avif-plugin fro ...
- python查找单词列表中相同字母组成的不同单词
单词列表的链接:words.txt 列表中一共有11.3万个单词,.txt文件格式,是一个很好的素材库. 问题:如何在单词表中,查找相同字母组成的不同单词? 输出结果的例子: ['aals', 'al ...
- 使用python判断流媒体mp3格式
项目中使用mp3格式进行音效播放,遇到一个mp3文件在程序中死活播不出声音,最后发现它是wav格式的文件,却以mp3结尾.要对资源进行mp3格式判断,那么如何判断呢,用.mp3后缀肯定不靠谱,我们知道 ...
- python爬取酷狗音乐top500_python获取酷狗音乐top500的下载地址 MP3格式
下面先给大家介绍下python获取酷狗音乐top500的下载地址 MP3格式,具体代码如下所示: # -*- coding: utf-8 -*- # @Time : 2018/4/16 # @File ...
- 免费实现音乐文件转换:将下载的音乐转换为MP3格式
在下载音乐文件时,我们有时会遇到一些不支持播放的文件格式,这时候我们需要将音乐文件转换为我们常用的 MP3 格式.那么,如何快速.免费地实现音乐文件转换呢?本文将介绍一个便捷的工具--记灵,可实现在线 ...
- 酷我下载的wma音乐怎么转换为MP3格式
wma格式是目前比较常见的一种音频格式了,是微软公司推出的一款与MP3格式齐名的音频格式,目前应用也比较多,比如我们在酷我音乐盒下载音乐就是wma格式的,还有许多音乐网站的在线试听音乐格式也是wma格 ...
最新文章
- php多选框怎么传值,tp3.2如何处理多选框传参和判断状态
- 【blade利刃出鞘】一起进入移动端webapp开发吧
- JAVA中ListIterator和Iterator详解与辨析
- Python 问题--encode、decode及shell中文输出
- PHP云尚发卡,云尚发卡1.5.7添加(极客支付)
- 位运算(、|、^、~、>>、<<)
- python可变参数的实验性_详解Python的三种可变参数
- 基于FPGA VHDL 的 ASK调制与解调设计(附源码)
- 腾讯翻译君在线翻译怎么翻译整个文件_PDF文档如何直接翻译?有了这个逆天网站,3秒完成整个文件翻译...
- 认识CleanMyMac 3破解版的危害
- 快速关闭SELinux
- 使用html2canvas 生成h5项目中需要的海报效果,uniapp 生成h5海报
- win10浏览器闪退_win10 edge浏览器闪退打不开的恢复方法
- Magic value如何解决?
- (OK) MIMP - 18 ( 5 nodes) - 抓包-缺少 MPTCP-JION - 发现了另一个问题【M1 ping M5】不可以 ping 通
- 五线谱音名和组别对照表_认识五线谱,大谱表与钢琴对照表
- 旋转矩阵的应用:已知旋转前后的点坐标计算旋转中心坐标
- 【蓝桥杯】历届试题 数字游戏(C++)
- 百问网物联网实战-STM32中断
- riak教程 java_Riak学习(2):java连接Riak服务,使用Protocol Buffers连接
热门文章
- 计算机企业管理信息系统论文,计算机信息管理系统相关论文
- 雷达系列论文翻译(十一):LVI-SAM: Tightly-coupled Lidar-Visual-Inertial Odometryvia Smoothing and Mapping
- DevExpress的 ASPxGridview控件的自动配置效果
- 《世界是数字的》读书笔记
- 如何使用物联网低代码平台进行画面管理?
- 电感(29)之铁氧体磁珠工作原理透彻详解
- Nextchip,信息大全,QQ:87219158
- 前后端分离项目,如何解决跨域问题?
- 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)
- 目标检测-最强目标检测算法盘点(截止当前)