[Python]通过有道词典API获取单词发音MP3

您所在的位置:网站首页 必应词典api [Python]通过有道词典API获取单词发音MP3

[Python]通过有道词典API获取单词发音MP3

2024-07-10 09:25:17| 来源: 网络整理| 查看: 265

原创文章,欢迎转载。转载请注明:转载自 祥的博客

原文链接:https://blog.csdn.net/humanking7/article/details/88630856

文章目录 @[toc] 1. 原因2. 有道发音API介绍3.代码及其解释4. Next ...

Python通过有道词典API获取单词发音MP3

1. 原因

最近打算重新开始好好学英语,那当然从单词开始了。我最近好好研究了一下所谓的记忆神器Anki,然后自己做卡片(主要是用欧路词典的生词本功能记录生词,然后将网页版的欧陆词典的生词复制下来,自己写个Python脚本将其处理成Anki导入的文本,然后再用Anki的插件AwesomeTTS将卡片附上音频,AwesomeTTS也是用Python+PyQt4写的,牛逼啊,有机会了研究研究,不过感觉跑题了,主要还是为了学英语捂脸笑),学习起来感觉很不错,目前学了3个List(一共是30个List),以后看看会不会半途而废,看看这个Anki到底如何。

但是,这中间缺少了一个过程,听写,没错就是听写,初中,高中,甚至到了大学,最怕的听写,但是我现在不可能找个老师或者同学给我报听写吧,这感觉既二逼,又没操作性。找了市场上英语类的APP,不过失望的是,我没有找到(如果有朋友有,一定要给我说一下啊),但是活人不能让尿给憋死,自己动手丰衣足食,感觉没有什么难度,所以打算自己写一个听写软件,好,今天立下了Flag,开一个坑。

但是知易行难,本来打算用Python + PyQt,写一个听写软件,最后发现Python的发音库,简单粗暴,好用易行的都支持Python2,其他的要么太高端,要么说失真,所以改变策略,打算是Python3 + Qt,主要用Python去爬取MP3,然后用QT播放和控制MP3(窃以为用PyQt没有Qt写界面舒服便捷)。

所以先要有音频文件啊,怎么办,爬之。

2. 有道发音API介绍

为什么用有道的发音API?一方面,我是没去试几个;另一方面,有道的发音真不错(比微软的TTS标准好听多了)

调用有道词典的在线发音库: 美音:

http://dict.youdao.com/dictvoice?type=0&audio=

英音:

http://dict.youdao.com/dictvoice?type=1&audio=

api仅有两个参数,就是发音类型和单词,在audio=后面加上单词就ok了,type=0为美国发音,type=1为英国发音。

比个例子,美音 king 发音(点击链接): http://dict.youdao.com/dictvoice?type=0&audio=king

比个例子,英音 king 发音(点击链接): http://dict.youdao.com/dictvoice?type=1&audio=king

3.代码及其解释

使用说明: 调用youdao的API下载对应的单词发音。 判断语音库中是否有对应的MP3文件:

如果有就不下载,返回MP3绝对路径地址如果没有,就下载MP3,返回MP3绝对路径地址

主要开放的就两个函数:

setAccent() : 调整语音库getAccent() : 获取是什么语音库down() : 下载MP3 ''' 程序思想: 有两个本地语音库,美音库Speech_US,英音库Speech_US 调用有道api,获取语音MP3,存入对应的语音库中 ''' import os import urllib.request class youdao(): def __init__(self, type=0, word='hellow'): ''' 调用youdao API type = 0:美音 type = 1:英音 判断当前目录下是否存在两个语音库的目录 如果不存在,创建 ''' word = word.lower() # 小写 self._type = type # 发音方式 self._word = word # 单词 # 文件根目录 self._dirRoot = os.path.dirname(os.path.abspath(__file__)) if 0 == self._type: self._dirSpeech = os.path.join(self._dirRoot, 'Speech_US') # 美音库 else: self._dirSpeech = os.path.join(self._dirRoot, 'Speech_EN') # 英音库 # 判断是否存在美音库 if not os.path.exists('Speech_US'): # 不存在,就创建 os.makedirs('Speech_US') # 判断是否存在英音库 if not os.path.exists('Speech_EN'): # 不存在,就创建 os.makedirs('Speech_EN') def setAccent(self, type=0): ''' type = 0:美音 type = 1:英音 ''' self._type = type # 发音方式 if 0 == self._type: self._dirSpeech = os.path.join(self._dirRoot, 'Speech_US') # 美音库 else: self._dirSpeech = os.path.join(self._dirRoot, 'Speech_EN') # 英音库 def getAccent(self): ''' type = 0:美音 type = 1:英音 ''' return self._type def down(self, word): ''' 下载单词的MP3 判断语音库中是否有对应的MP3 如果没有就下载 ''' word = word.lower() # 小写 tmp = self._getWordMp3FilePath(word) if tmp is None: self._getURL() # 组合URL # 调用下载程序,下载到目标文件夹 # print('不存在 %s.mp3 文件\n将URL:\n' % word, self._url, '\n下载到:\n', self._filePath) # 下载到目标地址 urllib.request.urlretrieve(self._url, filename=self._filePath) print('%s.mp3 下载完成' % self._word) else: print('已经存在 %s.mp3, 不需要下载' % self._word) # 返回声音文件路径 return self._filePath def _getURL(self): ''' 私有函数,生成发音的目标URL http://dict.youdao.com/dictvoice?type=0&audio= ''' self._url = r'http://dict.youdao.com/dictvoice?type=' + str( self._type) + r'&audio=' + self._word def _getWordMp3FilePath(self, word): ''' 获取单词的MP3本地文件路径 如果有MP3文件,返回路径(绝对路径) 如果没有,返回None ''' word = word.lower() # 小写 self._word = word self._fileName = self._word + '.mp3' self._filePath = os.path.join(self._dirSpeech, self._fileName) # 判断是否存在这个MP3文件 if os.path.exists(self._filePath): # 存在这个mp3 return self._filePath else: # 不存在这个MP3,返回none return None if __name__ == "__main__": sp = youdao() sp.down('reconcile') 4. Next …

那个最近比较忙,写好了软件就会写Blog,未完待续…

赞赏码New



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭