【雕爷学编程】MicroPython动手做(25)——语音合成与语音识别2

知识点:什么是掌控板?
掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED显示屏、RGB灯、加速度计、麦克风、光线传感器、蜂鸣器、按键开关、触摸开关、金手指外部拓展接口,支持图形化及MicroPython代码编程,可实现智能机器人、创客智造作品等智能控制类应用。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
7、语音识别
说 ==语音合成(文字转为语音)
听 ==语音识别(语音转为文字)

语音识别是一门交叉学科。近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。人们预计,未来10年内,语音识别技术将进入工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。 语音识别听写机在一些领域的应用被美国新闻界评为1997年计算机发展十件大事之一。很多专家都认为语音识别技术是2000年至2010年间信息技术领域十大重要的科技发展技术之一。 语音识别技术所涉及的领域包括:信号处理、模式识别、概率论和信息论、发声机理和听觉机理、人工智能等等。

与机器进行语音交流,让机器明白你说什么,这是人们长期以来梦寐以求的事情。中国物联网校企联盟形象得把语音识别比做为“机器的听觉系统”。语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。 语音识别技术主要包括特征提取技术、模式匹配准则及模型训练技术三个方面。语音识别技术车联网也得到了充分的引用,例如在翼卡车联网中,只需按一键通客服人员口述即可设置目的地直接导航,安全、便捷。

在这里插入图片描述

语音识别发展史
1952年贝尔研究所Davis等人研究成功了世界上第一个能识别10个英文数字发音的实验系统。1960年英国的Denes等人研究成功了第一个计算机语音识别系统。大规模的语音识别研究是在进入了70年代以后,在小词汇量、孤立词的识别方面取得了实质性的进展。进入80年代以后,研究的重点逐渐转向大词汇量、非特定人连续语音识别。在研究思路上也发生了重大变化,即由传统的基于标准模板匹配的技术思路开始转向基于统计模型 (HMM)的技术思路。此外,再次提出了将神经网络技术引入语音识别问题的技术思路。进入90年代以后,在语音识别的系统框架方面并没有什么重大突破。但是,在语音识别技术的应用及产品化方面出现了很大的进展。DARPA(Defense Advanced Research Projects Agency)是在70年代由美国国防部远景研究计划局资助的一项10年计划,其旨在支持语言理解系统的研究开发工作。到了80年代,美国国防部远景研究计划局又资助了一项为期10年的DARPA战略计划,其中包括噪声下的语音识别和会话(口语)识别系统,识别任务设定为“(1000单词)连续语音数据库管理”。到了90年代,这一DARPA计划仍在持续进行中。其研究重点已转向识别装置中的自然语言处理部分,识别任务设定为“航空旅行信息检索”。日本也在1981年的第五代计算机计划中提出了有关语音识别输入-输出自然语言的宏伟目标,虽然没能实现预期目标,但是有关语音识别技术的研究有了大幅度的加强和进展。1987年起,日本又拟出新的国家项目—高级人机口语接口和自动电话翻译系统。

语音识别在中国的发展
中国的语音识别研究起始于1958年,由中国科学院声学所利用电子管电路识别10个元音。直至1973年才由中国科学院声学所开始计算机语音识别。由于当时条件的限制,中国的语音识别研究工作一直处于缓慢发展的阶段。进入80年代以后,随着计算机应用技术在中国逐渐普及和应用以及数字信号技术的进一步发展,国内许多单位具备了研究语音技术的基本条件。与此同时,国际上语音识别技术在经过了多年的沉寂之后重又成为研究的热点,发展迅速。就在这种形式下,国内许多单位纷纷投入到这项研究工作中去。1986年3月中国高科技发展计划(863计划)启动,语音识别作为智能计算机系统研究的一个重要组成部分而被专门列为研究课题。在863计划的支持下,中国开始了有组织的语音识别技术的研究,并决定了每隔两年召开一次语音识别的专题会议。从此中国的语音识别技术进入了一个前所未有的发展阶段。
在这里插入图片描述

8、识别二秒语音指令(现录现识别)

#MicroPython动手做(25)——语音合成与语音识别
#识别二秒语音指令(现录现识别)from mpython import *
import network
import time
import audio
import urequests
import json
import machine
import ubinasciimy_wifi = wifi()my_wifi.connectWiFi("zh", "zy1567")def on_button_a_down(_):time.sleep_ms(10)if button_a.value() == 1: returnrgb[0] = (int(102), int(0), int(0))rgb.write()time.sleep_ms(1)oled.fill(0)oled.DispChar("按下A键开始识别", 0, 0, 1)oled.DispChar(get_asr_result(2), 0, 16, 1)oled.show()rgb[0] = (0, 0, 0)rgb.write()time.sleep_ms(1)def get_asr_result(_time):audio.recorder_init()audio.record("temp.wav", int(_time))audio.recorder_deinit()_response = urequests.post("http://119.23.66.134:8085/file_upload",files={"file":("temp.wav", "audio/wav")},params={"appid":"1", "mediatype":"2", "deviceid":ubinascii.hexlify(machine.unique_id()).decode().upper()})rsp_json = _response.json()_response.close()if "text" in rsp_json:return rsp_json["text"]elif "Code" in rsp_json:return "Code:%s" % rsp_json["Code"]else:return rsp_jsonbutton_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)oled.fill(0)
oled.DispChar("按下A键开始识别", 0, 0, 1)
oled.show()

mPython X 图形编程

在这里插入图片描述

#MicroPython动手做(25)——语音合成与语音识别
#识别二秒语音指令(现录现识别)

https://v.youku.com/v_show/id_XNDY4MjY3NTgwOA==.html?spm=a2h0c.8166622.PhoneSokuUgc_1.dtitle

在这里插入图片描述

9、带提示音提示灯的简单语音识别系统

(红灯后识别二秒钟)

#MicroPython动手做(25)——语音合成与语音识别
#带提示音提示灯的简单语音识别系统(红灯后识别二秒钟)from mpython import *
import network
import time
import music
import audio
import urequests
import json
import machine
import ubinasciimy_wifi = wifi()my_wifi.connectWiFi("zh", "zy1567")def on_button_a_down(_):time.sleep_ms(10)if button_a.value() == 1: returnmusic.play('D5:1')rgb.fill((int(102), int(0), int(0)))rgb.write()time.sleep_ms(1)oled.fill(0)oled.DispChar("--语音识别结果--", 18, 13, 1)oled.DispChar(get_asr_result(2), 28, 33, 1)oled.show()time.sleep(2)oled.fill(0)oled.DispChar("  按下A键开始语音识别", 0, 16, 1)oled.show()rgb.fill((int(0), int(102), int(0)))rgb.write()time.sleep_ms(1)music.play('G5:1')def get_asr_result(_time):audio.recorder_init()audio.record("temp.wav", int(_time))audio.recorder_deinit()_response = urequests.post("http://119.23.66.134:8085/file_upload",files={"file":("temp.wav", "audio/wav")},params={"appid":"1", "mediatype":"2", "deviceid":ubinascii.hexlify(machine.unique_id()).decode().upper()})rsp_json = _response.json()_response.close()if "text" in rsp_json:return rsp_json["text"]elif "Code" in rsp_json:return "Code:%s" % rsp_json["Code"]else:return rsp_jsonbutton_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)rgb.fill((int(0), int(102), int(0)))
rgb.write()
time.sleep_ms(1)
oled.fill(0)
oled.DispChar("  按下A键开始语音识别", 0, 16, 1)
oled.show()
music.play('G5:1')

mPython X 图形编程

在这里插入图片描述

带提示音提示灯的简单语音识别系统—实验视频
(红灯后识别二秒钟)

https://v.youku.com/v_show/id_XNDY4MzE1MjEyNA==.html?spm=a2h0c.8166622.PhoneSokuUgc_1.dtitle

在这里插入图片描述

10、语音控制开灯与关灯
——简单在线模式,反应有点慢,语音识别“开灯”,任意语音关灯。这个方案打开灯有点难,需要准确发音“开灯”二个字,反之关灯很容易,说什么都可以关灯,便于节约用电。

#MicroPython动手做(25)——语音合成与语音识别
#语音控制开灯与关灯(简单在线模式,反应有点慢)from mpython import *
import network
import music
import time
import audio
import urequests
import json
import machine
import ubinasciimy_wifi = wifi()my_wifi.connectWiFi("zh", "zy1567")def on_button_a_down(_):time.sleep_ms(10)if button_a.value() == 1: returnrgb[1] = (int(102), int(0), int(0))rgb.write()time.sleep_ms(1)if get_asr_result(2) == "开灯":rgb.fill((int(51), int(102), int(255)))rgb.write()time.sleep_ms(1)music.play('D5:1')oled.fill(0)oled.blit(image_picture.load('face/Objects/Light on.pbm', 0), 32, 0)oled.show()else:rgb.fill( (0, 0, 0) )rgb.write()time.sleep_ms(1)music.play('B5:1')oled.fill(0)oled.blit(image_picture.load('face/Objects/Light off.pbm', 0), 32, 0)oled.show()def get_asr_result(_time):audio.recorder_init()audio.record("temp.wav", int(_time))audio.recorder_deinit()_response = urequests.post("http://119.23.66.134:8085/file_upload",files={"file":("temp.wav", "audio/wav")},params={"appid":"1", "mediatype":"2", "deviceid":ubinascii.hexlify(machine.unique_id()).decode().upper()})rsp_json = _response.json()_response.close()if "text" in rsp_json:return rsp_json["text"]elif "Code" in rsp_json:return "Code:%s" % rsp_json["Code"]else:return rsp_jsonimage_picture = Image()button_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)oled.fill(0)
oled.DispChar("  按下A键开始语音控制", 0, 16, 1)
oled.show()
music.play('G5:1')
rgb[1] = (int(0), int(51), int(0))
rgb.write()
time.sleep_ms(1)

mPython X 图形编程

在这里插入图片描述

#MicroPython动手做(25)——语音合成与语音识别
#语音控制开灯与关灯(简单在线模式,反应有点慢)-视频

https://v.youku.com/v_show/id_XNDY4MzM5OTY1Ng==.html?spm=a2h0c.8166622.PhoneSokuUgc_1.dtitle

在这里插入图片描述

今天再次测试语音合成,不知为何一直报错,出错信息为:

刷入成功

Connection WiFi…

WiFi(zhz,-64dBm) Connection Successful, Config:(‘192.168.31.25’, ‘255.255.255.0’, '192.168

.31.34’, ‘192.168.31.34’)

(2020, 6, 15, 8, 28, 32, 0, 167)

Processing, please wait…

Traceback (most recent call last):

File “main.py”, line 24, in

File “xunfei.py”, line 208, in tts

File “uwebsockets/client.py”, line 62, in connect

Assertion Error: b’HTTP/1.1 403 Forbidden’

MicroPython v2.0.1-18-gbe8fbdd-dirty on 2020-04-24; mpython with ESP32

Type “help()” for more information.

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/18809.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

偶数科技与白鲸开源完成兼容性认证

近日,偶数科技自主研发的云原生分布式数据库 OushuDB v5.0 完成了与白鲸开源集成调度工具 WhaleStudio v2.0 的兼容性相互认证测试。 测试结果显示,双方产品相互良好兼容,稳定运行、安全,同时可以满足性能需求,为企业级…

Android 自定义按钮(可滑动、点击)

按钮图片素材 https://download.csdn.net/download/Lan_Se_Tian_Ma/88151085 px 和 dp 转换工具类(Java) // px 和 dp 转换工具类 public class DensityUtil {/*** 根据手机的分辨率从 dip 的单位 转成为 px(像素)*/public static int dip2px(Conte…

【C++】基于多设计模式下的同步异步日志系统

✍作者:阿润021 📖专栏:C 文章目录 一、项目介绍二、项目实现准备工作1.日志系统技术实现策略2.相关技术知识补充2.1 不定参函数设计2.2 设计模式 三、日志项目框架设计1.模块划分2.各模块关系图 四、详细代码实现1.实用工具类设计2.日志等级…

java -jar指定外部配置文件

场景 spingboot项目部署jar时,需要时常修改配置,为了方便,将配置文件放到jar包外 操作步骤 在jar包同级目录下创建config文件夹(位置没有强制要求,为了方便而已) 在jar包同级目录下创建start.bat文件,并编辑内容 echo off :: 命令窗口标题 title yudibei_performance_tes…

第5章 最佳实践

过去的错误 不要怪罪JavaScript 游览器遇到不合法的html会想尽办法将他展现出来游览器遇到不合法的js将拒绝执行它们并报错写js要保障自己代码的健壮性 质疑一切 写js功能前一定要考虑这个功能的合理性,避免造成不可预见的后果写js功能前一定要考虑用户的游览器…

【Golang】基于录制,自动生成go test接口自动化用例

目录 背景 框架 ginkgo初始化 抓包&运行脚本 目录说明 ∮./business ∮./conf ∮./utils ∮./testcase testcase 用例目录结构规则 示例 实现思路 解析Har数据 定义结构体 解析到json 转换请求数据 转换请求 转换请求参数 写业务请求数据 写gotest测试…

【element-plus】 table表格每行圆角解决方案 element也通用

系列文章目录 【Vue3ViteTselement-plus】使用tsx实现左侧栏菜单无限层级封装 前言 我们在使用element-plus或element 的table时是否有时UI给到的UI效果是如下面这样的,但是我们翻遍了组件库的文档 调整了很多次样式 发现在 左右侧栏固定的时候 普通的方法是完全…

装修小程序,开启装修公司智能化服务的新时代

随着数字化时代的来临,装修小程序成为提升服务质量和效率的关键工具。装修小程序旨在为装修公司提供数字化赋能、提高客户满意度的智慧装修平台。通过装修小程序,装修公司能够与客户进行在线沟通、展示设计方案、提高服务满意度等操作。 装修小程序的好处…

手机pdf转换成word免费版?看看这几个转换方法

手机pdf转换成word免费版?在当今信息化的时代,PDF文档已经成为公文交流、资料分享、学术论文等领域中最常用的文件格式之一。然而,PDF文档的固化特性也使其在文本编辑、内容修改等方面存在不便。因此,将PDF文档转换为Word文档已成…

简单的知识图谱可视化+绘制nx.Graph()时报错TypeError: ‘_AxesStack‘ object is not callable

绘制nx.Graph时报错TypeError: _AxesStack object is not callable 写在最前面知识图谱可视化预期报错可能的原因 原代码原因确认解决后的代码解决! 写在最前面 实现一个简单的知识图谱的可视化功能。 使用了NetworkX库来构建知识图谱,并使用matplotlib…

基于Java的房屋租赁系统设计与实现(源码+lun文+数据库)

对于需要租房的人,有的可能没有时间去街上广告处查看房屋信息;对于房屋出租者来说,大量复杂的房产信息、租金等信息很难通过传统的方式进行管理。以方便租客租房,房东求租、求售的需求为向导,开发一套基于web的房屋管理…

PHP代码审计--理论

提供资料: php 基础 : https://www.runoob.com/php/php-tutorial.html php是什么? PHP 是服务器端脚本语言。 首先在学习PHP前需要对HTML 和CSS有一定的认识 PHP 能做什么? PHP 可以生成动态页面内容PHP 可以创建、打开、读取、写入、关…

Unity中UGUI的 OnPopulateMesh函数与VertexHelper类

Graphics类 当一个UGUI的UI元素生成顶点数据时会调用Graphics类中的 OnPopulateMesh(VertexHelper vh) 函数,我们可以在这个函数中修改顶点的数据或者获取顶点的数据。 UGUI中与显示相关的控件,例如Image、Text、RawImage等都继承自MaskableGraphic类&a…

数据结构--单链表

前言 上一章,我们讲了数据结构--动态顺序表,我们会发现有以下问题: 1.当我们要头部或者插入或删除时,都需要进行位置挪动,腾出某一个位置,时间复杂度为0(N); 2.增容需要申请新空间,…

SpringBoot2.2.0.RELEASE整合Elasticsearch6.8.3

SpringBoot2.2.0.RELEASE整合Elasticsearch6.8.3 SpringBoot是2.2.0.RELEASE&#xff0c;elasticsearch是6.8.3 使用依赖spring-boot-starter-data-elasticsearch 使用ElasticSearchRepository操作 1、导入依赖 <?xml version"1.0" encoding"UTF-8&quo…

VMware Linux Centos 配置网络并设置为静态ip

在root用户下进行以下操作 1. 查看子网ip和网关 &#xff08;1&#xff09;进入虚拟网络编辑器 &#xff08;2&#xff09;进入NAT设置 &#xff08;3&#xff09;记录子网IP和子网掩码 2. 修改网络配置文件 &#xff08;1&#xff09;cd到网络配置文件路径下 [rootlo…

工欲善其事必先利其器,IT工作电脑更要维护好

目录 一&#xff1a;电脑的组成 二&#xff1a;维护措施 三&#xff1a;助力记忆 一&#xff1a;电脑的组成 当谈到电脑主机时&#xff0c;我们通常指的是电脑的中央处理器(CPU)、内存、主板、电源、硬盘、显卡、声卡、网卡等核心部件组成的整体。这些部件共同协作&#xff…

Kafka系列之:记录一次Kafka Topic分区扩容,但是下游flink消费者没有自动消费新的分区的解决方法

Kafka系列之:记录一次Kafka Topic分区扩容,但是下游flink消费者没有自动消费新的分区的解决方法 一、背景二、解决方法三、实现自动发现新的分区一、背景 生产环境Kafka集群压力大,Topic读写压力大,消费的lag比较大,因此通过扩容Topic的分区,增大Topic的读写性能理论上下…

力扣 62. 不同路径

题目来源&#xff1a;https://leetcode.cn/problems/unique-paths/ C题解1&#xff1a;动态规划。声明二维数组。 确定dp数组&#xff08;dp table&#xff09;以及下标的含义。dp[i][j] &#xff1a;表示从&#xff08;0 &#xff0c;0&#xff09;出发&#xff0c;到(i, j) …

Kafka-Broker工作流程

kafka集群在启动时&#xff0c;会将每个broker节点注册到zookeeper中&#xff0c;每个broker节点都有一个controller&#xff0c;哪个controller先在zookeeper中注册&#xff0c;哪个controller就负责监听brokers节点变化&#xff0c;当有分区的leader挂掉时&#xff0c;contro…