调用有道API实现语音翻译(汉译英)

1. 作者介绍

南旭东,男,西安工程大学电子信息学院,2022级研究生
研究方向:机器视觉与人工智能
电子邮件:[email protected]

路治东,男,西安工程大学电子信息学院,2022级研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:[email protected]

2. 相关介绍

2.1 API介绍

API(Application Programming Interface),翻译就是应用程序接口,本质上就是是一些预先定义的函数。通俗解释就是,你要实现某些需求,比如很热,我想让风扇转起来,这样我就不热了,我知道让风扇转,就要用到电,但是我不会发电,也不想研究怎么发电,我只想用现成的,发电站也知道我这么懒这么笨,所以就造了一个接口给我,跟我说,你只要把风扇的插头插入这个接口上,就可以用发电站生产的电了,风扇就会转了。放到写代码这块就是,举例子,我要实现一个东西,效果就是产生一个窗口,我不会从0开始造,也不想研究怎么从0开始造,我就想调用一个函数,给这个函数添上点参数就能实现我要的尺寸大小的窗口,这个时候,所谓的api就是这个函数。

2.2 网易API介绍

有道翻译API,为广大开发者提供开放接口。您的应用或网站可通过有道翻译API,构建丰富多样的功能或应用,为用户带来即时,准确,方便的查词或翻译体验,从而降低语言理解与应用门槛。
在这里插入图片描述

3. 实验过程

3.1 调用过程

1.搜索有道智云API,点击并进入
在这里插入图片描述
2.点击登录
在这里插入图片描述
3.登陆进去之后,再点击自己的头像进入个人中心
在这里插入图片描述
4.在左侧一栏选择:“自然语言翻译服务”,之后点击语音翻译
在这里插入图片描述
5.在右上角点击创建应用
在这里插入图片描述
6.选项如图
在这里插入图片描述
7.创建完成之后选择自己的IDYEK
在这里插入图片描述

3.2 代码获取

1.再来到首页,如图顺序进行下载调用代码文件包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.得到如下图所示的文件夹,依次打开
在这里插入图片描述
3.准备自己的音频文件,不能大于2M,必须是WAV格式的语音文件
这里提供一个语音格式转换网站:链接: https://www.pdf365.cn/?agent=ck15

3.3 完整代码

import base64

import requests

from utils.AuthV3Util import addAuthParams

# 您的应用ID
APP_KEY = ''
# 您的应用密钥
APP_SECRET = ''

# 待翻译语音路径, 例windows路径:PATH = "C:\\youdao\\media.wav"
PATH = ''

def createRequest():
    '''
    note: 将下列变量替换为需要请求的参数
    取值参考文档: https://ai.youdao.com/DOCSIRMA/html/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E7%BF%BB%E8%AF%91/API%E6%96%87%E6%A1%A3/%E5%9B%BE%E7%89%87%E7%BF%BB%E8%AF%91%E6%9C%8D%E5%8A%A1/%E5%9B%BE%E7%89%87%E7%BF%BB%E8%AF%91%E6%9C%8D%E5%8A%A1-API%E6%96%87%E6%A1%A3.html
    '''
    lang_from = 'en'
    lang_to = 'zh-CHS'
    format = 'wav'
    rate = '16000'

    # 数据的base64编码
    q = readFileAsBase64(PATH)
    data = {'q': q, 'from': lang_from, 'to': lang_to, 'format': format, 'rate': rate, 'channel': '1', 'type': '1'}

    addAuthParams(APP_KEY, APP_SECRET, data)

    header = {'Content-Type': 'application/x-www-form-urlencoded'}
    res = doCall('https://openapi.youdao.com/speechtransapi', header, data, 'post')
    print(str(res.content, 'utf-8'))

def doCall(url, header, params, method):
    if 'get' == method:
        return requests.get(url, params)
    elif 'post' == method:
        return requests.post(url, params, header)

def readFileAsBase64(path):
    f = open(path, 'rb')
    data = f.read()
    return str(base64.b64encode(data), 'utf-8')

# 网易有道智云语音翻译服务api调用demo
# api接口: https://openapi.youdao.com/speechtransapi
if __name__ == '__main__':
    createRequest()

猜你喜欢

转载自blog.csdn.net/m0_37758063/article/details/131321536