木子呢 发表于 2022-12-9 17:02:21

【行空板图形化Python入门教程】第14课:语音翻译机

本帖最后由 Doughnut 于 2022-12-9 18:06 编辑

第14课 语音翻译机
你遇到过和外国人沟通交流时不知道如何表达的难题吗?今天我们就利用行空板制作一个语音翻译机,自动帮你翻译你想说的话,让你从此和外国人沟通无忧。



任务目标

按下行空板A键,对着麦克风录入语音,显示录入文字;按下行空板B键,显示英文译文。

https://www.bilibili.com/video/BV1iM411z7bq/?vd_source=27fedd3ac40d3e58da0788477833f7ac
演示视频

知识点

1. 了解语音识别基本操作方法

2. 了解机器翻译基本操作方法

3. 学习行空板录音操作指令

材料清单

1. 硬件清单


行空板x1

Type-C&Micro二合一USB线x1

2. 软件使用

Mind+编程软件x1

下载地址:https://www.mindplus.cc



动手实践

语音翻译机的主要功能是让行空板识别并翻译我们所说的话。具体如何实现呢?接下来我们就分两个任务来完成吧。

任务一:语音转文字

在此任务中,我们将学习行空板录音功能以及语音识别的操作方法,完成行空板对于语音的识别和识别文本的显示。

任务二:显示翻译结果

基于话语的识别结果,我们将进一步学习机器翻译操作方法,将中文翻译成英文并显示。


任务一:语音转文字

1. 硬件搭建

使用USB连接线将行空板连接到计算机。



2. 软件准备

打开Mind+,按照下面图示完成软件准备过程。



3. 编写程序

你一定发过微信语音,我们可以对着麦克风发送语音消息,也可以将语音转化为文字。如果将整个过程分为两个步骤,就是录音和识别。行空板也类似,具体如何实现呢,接下来我们看一看吧。

(1) 录制声音

行空板自带录音功能,你可以在“行空板”里的“音频录放”分类下找到 录音10秒直到结束,文件名“record.wav” 完成声音的录制。



使用时,只要设置好录音时长和确定录音文件名就可以了。



注意:录音文件“record.wav”被存放在行空板缓存文件夹中,你可以打开“文件系统”的“行空板中的文件”→”mindplus”→”cache”,点击项目名称文件夹寻找录音文件。



(2) 识别录音

录制好语音以后,就可以开始准备识别录音了。识别录音本项目将使用线上人工智能开放平台——“讯飞开放平台”的语音识别技术。只要行空板连接好无线网络,然后将录制语音输入申请好的平台服务引擎内,就可以很快获得语音对应的文本内容了。

注意:关于语音识别技术的介绍,参见“知识园地”。



(a) 行空板连接无线网络

双击打开浏览器访问 http://10.1.2.3/,进入行空板服务页面连接无线网络(若没有无线网支持手机热点)。



(b) 获取“讯飞开放平台”账户密钥

获取账号、密钥等信息,需要进入“讯飞开放平台”注册、申请应用服务。

首先,使用浏览器访问“讯飞开放平台”网站:https://www.xfyun.cn/;

然后,注册并登录“讯飞开放平台”账号;



登陆成功后,点击右上角的“控制台”,进入应用界面,点击“创建新应用”,开始填写应用信息;







填写完成后,点击提交,就可以在“我的应用”中看到刚才创建的应用;



点击进入应用查看应用的服务、账号、密钥等信息。



(c) 获得识别结果

获得账号、密钥等信息后,我们就可以使用指令完成语音的识别任务了。“讯飞语音识别”操作指令需要在“扩展”,“用户库”中输入网址: https://gitee.com/liliang9693/ext-xunfeiyuyin 检索获得。

注意:首次使用用户库时,必须手动输入网址添加,若直接打开已添加好库的程序,不用网址搜索添加,运行时会报错。



点击添加后,你就能在指令区的“用户库”看到相关指令了。



使用的过程中,首先拖出 讯飞语音 设置账户APPID:””APISecret:””APIKey:””, 填入刚才讯飞应用中的对应信息,放在程序最开始部分。



然后将录音文件写入 讯飞语音 识别录音文件“”指令,就可以获得对应录音的文本内容了,当然为了方便使用,你可以把识别的结果存放在变量里。



最后,项目中是通过按下行空板A键,开始录制显示话语文本,但是若在有限时间内未录入声音时,变量识别内容 为空,我们可以添加一个文本提示“数据错误”。



现在,你可以添加文字对象显示话语的文本。完整参考代码如下:



4. 程序运行

点击运行,按下A键,对着行空板麦克风说话,等待一会显示说话内容。

注意:项目运行时可能会出现报错,可以尝试重新运行或断开重新连接行空板。当出现如下错误,请对应操作修改。






任务二:显示翻译结果

1. 编写程序

基于已经获得文本内容,本项目中的翻译使用的是“百度翻译开放平台”功能,获得翻译内容的方法类似,依然需要先获取“百度翻译开放平台”账户密钥,然后在使用对应指令实现翻译功能。

(1) 获取“百度翻译开放平台”账户密钥

首先,使用浏览器访问“百度翻译开放平台”网站https://fanyi-api.baidu.com/;

然后,注册并登录“百度翻译开放平台”账号;



登录成功后,点击“产品服务”,进入并开通免费的翻译资源(申请过程可能需要实名认证)。



之后会进入应用信息填写部分,填写完毕后,只需要点击“提交申请”,即可完成免费翻译应用的申请和创建。



创建成功后会显示目前翻译资源使用的情况。



账号和密钥信息,需要点击“开发者信息”里的“申请信息”查看。



(2) 获取翻译结果

添加“百度翻译模块”和“讯飞语音”的方法相似,在“扩展”,“用户库”中输入网址 https://gitee.com/liliang9693/ext-baidufanyi 检索获得。

注意:首次使用用户库时,必须手动输入网址添加,若直接打开已添加好库的程序,不用网址搜索添加,运行时会报错。



相关指令,在指令区“用户库”分类下,找到百度翻译相关指令。



使用的过程中,还是先 设置百度翻译账号ID 密钥,然后使用 将“hello”翻译为英语,直接完成内容翻译。



现在,回到我们的任务——翻译识别出的内容,也就是在完成账号设置以后,将 变量 识别内容 ,放进翻译指令的“hello”部分即可。现在你可以建立新的文字对象,实现加入按键B,显示翻译后的文本。完整参考代码如下:



2. 程序运行

检查行空板连接情况,点击运行,按下A键录入语音,等待一会,屏幕显示录入语言文本;按下B键,屏幕下方出现英文翻译。



3. 试一试

你的现在已经可以讲中文语音翻译成英文了,机器翻译指令可以翻译成韩语、粤语、文言文等其它种类的语言,自己动手切换试一试吧。

知识园地

1. 语音识别技术

语音识别技术,也被称为自动语音识别(Automatic Speech Recognition,简称ASR)是让机器通过识别把语音信号转变为相应的文本或命令的人工智能技术,也就是让机器听懂人类的语音的技术。它的基本工作流程是,将录入的声音进行数字化和预处理之后,通过特征提取获得能够表征语言特点的特征向量,然后通过加入模型库进行模式匹配,获得概率最高的文本,输出最终结果。



语音识别技术作为人工智能技术非常重要的组成部分之一,市面上有不少的人工智能开放平台如百度、讯飞、腾讯等,都提供了相关的技术引擎,供大家使用。

2. 机器翻译技术

机器翻译(machine translation,简称MT)是将一种自然语言翻译成另一种自然语言的技术。它的基本工作流程是,对原文句子进行分词、删除、整理等规范化预处理得到一系列短语序列,然后将他们输入翻译模型转化成译文序列,最后在进行拼接、特殊符号处理等处理,得到符合人类阅读习惯的文本译文。



在机器翻译技术的工作流程中,最核心的部分翻译模型又有很多建立方法,现如今最为常用的方法是基于神经网络的机器翻译方法,如果你感兴趣的话,不妨自己查询研究一下吧。

3. 指令学习

本项目主要使用了学习了录制音频、讯飞语音识别、百度机器翻译相关指令,接下来我们就详细学习一下。


该指令用于录制语音,使用时需要写明录制时长以及音频存储的文件名。

该指令用于百度翻译服务设置。使用时,需要写明账号和密钥。

该指令用于将指定文本翻译成其他语言。使用时需要写明要翻译的内容,选择翻译成什么语言。

该指令用于讯飞语音服务设置。使用时,需要写明账号、密码和密钥。

该指令用于获得录音文件的识别文本。使用时需要写明要识别的录音文件。
挑战自我

在本项目中你已经完成语音翻译机的主要功能,现在请你进一步完成下面任务,完善项目功能。

(1) 为你的语音翻译机设计界面和提示语,你可以参考下面的图片进行设计(图标图片在素材文件夹中);



(2) 设置一个可以点击切换转换语言的按钮或图片(如“中文”后的图标),让你的翻译机可以翻译更多类型的语言吧。



附件下载


页: [1]
查看完整版本: 【行空板图形化Python入门教程】第14课:语音翻译机