点此跳转至 本文代码下载

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格式(每个单词朗读两遍)相关推荐

  1. python列表转为一个数字_关于python:将整数列表转换为一个数字?

    我有一个整数列表,我想将其转换为一个数字,例如: numList = [1, 2, 3] num = magic(numList) print num, type(num) >>> ...

  2. python实现dat文件批量转换为 excel文件 关键词 批量格式转换 dat文件 excel读写 诺祺 可发表知乎ed csdn ed

    python实现批量dat转excel.pyimport os,time,xlwt def single(filepath):'''参数:txt文件路径,功能将其转换成excel文件'''print( ...

  3. python每行乘列表_python – 在pandas数据帧中查找每行的两列列表中哪一列的最快方法...

    我正在寻找最快的方法来做到以下几点: 我们有一个pd.DataFrame: df = pd.DataFrame({ 'High': [1.3,1.2,1.1], 'Low': [1.3,1.2,1.1 ...

  4. 【avif格式转换】python借助pillow实现avif转换为jpg,png等常见格式

    安装pillow-avif-plugin插件即可(pip install pillow-avif-plugin) Github里有详细介绍→[Github]pillow-avif-plugin fro ...

  5. python查找单词列表中相同字母组成的不同单词

    单词列表的链接:words.txt 列表中一共有11.3万个单词,.txt文件格式,是一个很好的素材库. 问题:如何在单词表中,查找相同字母组成的不同单词? 输出结果的例子: ['aals', 'al ...

  6. 使用python判断流媒体mp3格式

    项目中使用mp3格式进行音效播放,遇到一个mp3文件在程序中死活播不出声音,最后发现它是wav格式的文件,却以mp3结尾.要对资源进行mp3格式判断,那么如何判断呢,用.mp3后缀肯定不靠谱,我们知道 ...

  7. python爬取酷狗音乐top500_python获取酷狗音乐top500的下载地址 MP3格式

    下面先给大家介绍下python获取酷狗音乐top500的下载地址 MP3格式,具体代码如下所示: # -*- coding: utf-8 -*- # @Time : 2018/4/16 # @File ...

  8. 免费实现音乐文件转换:将下载的音乐转换为MP3格式

    在下载音乐文件时,我们有时会遇到一些不支持播放的文件格式,这时候我们需要将音乐文件转换为我们常用的 MP3 格式.那么,如何快速.免费地实现音乐文件转换呢?本文将介绍一个便捷的工具--记灵,可实现在线 ...

  9. 酷我下载的wma音乐怎么转换为MP3格式

    wma格式是目前比较常见的一种音频格式了,是微软公司推出的一款与MP3格式齐名的音频格式,目前应用也比较多,比如我们在酷我音乐盒下载音乐就是wma格式的,还有许多音乐网站的在线试听音乐格式也是wma格 ...

最新文章

  1. php多选框怎么传值,tp3.2如何处理多选框传参和判断状态
  2. 【blade利刃出鞘】一起进入移动端webapp开发吧
  3. JAVA中ListIterator和Iterator详解与辨析
  4. Python 问题--encode、decode及shell中文输出
  5. PHP云尚发卡,云尚发卡1.5.7添加(极客支付)
  6. 位运算(、|、^、~、>>、<<)
  7. python可变参数的实验性_详解Python的三种可变参数
  8. 基于FPGA VHDL 的 ASK调制与解调设计(附源码)
  9. 腾讯翻译君在线翻译怎么翻译整个文件_PDF文档如何直接翻译?有了这个逆天网站,3秒完成整个文件翻译...
  10. 认识CleanMyMac 3破解版的危害
  11. 快速关闭SELinux
  12. 使用html2canvas 生成h5项目中需要的海报效果,uniapp 生成h5海报
  13. win10浏览器闪退_win10 edge浏览器闪退打不开的恢复方法
  14. Magic value如何解决?
  15. (OK) MIMP - 18 ( 5 nodes) - 抓包-缺少 MPTCP-JION - 发现了另一个问题【M1 ping M5】不可以 ping 通
  16. 五线谱音名和组别对照表_认识五线谱,大谱表与钢琴对照表
  17. 旋转矩阵的应用:已知旋转前后的点坐标计算旋转中心坐标
  18. 【蓝桥杯】历届试题 数字游戏(C++)
  19. 百问网物联网实战-STM32中断
  20. riak教程 java_Riak学习(2):java连接Riak服务,使用Protocol Buffers连接

热门文章

  1. 计算机企业管理信息系统论文,计算机信息管理系统相关论文
  2. 雷达系列论文翻译(十一):LVI-SAM: Tightly-coupled Lidar-Visual-Inertial Odometryvia Smoothing and Mapping
  3. DevExpress的 ASPxGridview控件的自动配置效果
  4. 《世界是数字的》读书笔记
  5. 如何使用物联网低代码平台进行画面管理?
  6. 电感(29)之铁氧体磁珠工作原理透彻详解
  7. Nextchip,信息大全,QQ:87219158
  8. 前后端分离项目,如何解决跨域问题?
  9. 将java中数组转换为ArrayList的方法实例(包括ArrayList转数组)
  10. 目标检测-最强目标检测算法盘点(截止当前)