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

news2024/11/16 19:23:39

知识点:什么是掌控板?
掌控板是一块普及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 ubinascii

my_wifi = wifi()

my_wifi.connectWiFi("zh", "zy1567")

def on_button_a_down(_):
    time.sleep_ms(10)
    if button_a.value() == 1: return
    rgb[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_json

button_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 ubinascii

my_wifi = wifi()

my_wifi.connectWiFi("zh", "zy1567")

def on_button_a_down(_):
    time.sleep_ms(10)
    if button_a.value() == 1: return
    music.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_json

button_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 ubinascii

my_wifi = wifi()

my_wifi.connectWiFi("zh", "zy1567")

def on_button_a_down(_):
    time.sleep_ms(10)
    if button_a.value() == 1: return
    rgb[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_json

image_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.coloradmin.cn/o/814718.html

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

相关文章

浏览器安装selenium IDE插件并进行网页测试记录

Chrome开发者工具插件,谷歌浏览器开发者工具插件推荐下载_安装_教程-扩展迷 去官网直接搜索下载需要的插件就可。 插件下载安装-Chrome-扩展迷 下载好后解压: 打开Chrome谷歌浏览器: 设置>拓展程序>打开"开发者模式”>将下载好的seleni…

【多模态】21、BARON | 通过引入大量 regions 来提升模型开放词汇目标检测能力(CVPR2021)

文章目录 一、背景二、方法2.1 主要过程2.2 Forming Bag of Regions2.3 Representing Bag of Regions2.4 Aligning bag of regions 三、效果 论文:Aligning Bag of Regions for Open-Vocabulary Object Detection 代码:https://github.com/wusize/ovdet…

SciencePub学术 | 人工智能类重点SCIEEI征稿中

SciencePub学术 刊源推荐: 人工智能类重点SCIE&EI征稿中!信息如下,录满为止: 一、期刊概况: 人工智能类重点SCIE&EI 【期刊简介】IF:6.5-7.0,JCR1区,中科院2区; 【出版社…

画架构图工具-haydn

Haydn解决方案数字化平台_海顿解决方案工具链-华为云 下图为haydn架构图示例 Haydn解决方案数字化平台_海顿解决方案工具链-华为云 1、vpc是一个很重要的元素,有网络隔离的作用。 2、OBS、CES、CTS,不需要画到vpc里面。 3、不在区域内的资源&#xf…

Panda 编译时原子化 CSS-in-JS 框架的跨平台方案

Panda 编译时原子化 CSS-in-JS 框架的跨平台方案 Panda 编译时原子化 CSS-in-JS 框架的跨平台方案 对编译时原子化CSS框架的思考编译时 CSS-in-JS 方案对比 LinariaPandacss总结 weapp-pandacss 介绍快速开始 pandacss 安装和配置 0. 安装和初始化 pandacss1. 配置 postcss2. …

Hbase pe 压测 OOM问题解决

说明:本人使用CDH虚拟机搭建了Hbase集群,但是在压测的时发现线程多个的时候直接回OOM,记录一下 执行命令 hbase pe --nomapred --oneContrue --tablerw_test_1 --rows1000 --valueSize100 --compressSNAPPY --presplit10 --autoFlushtrue randomWrite …

SDXL 1.0 介绍和优缺点总结

2023年7月26日:Stability. AI 发布SDXL 1.0,这是对其生成模型的又一次重大更新,带来了突破性的变化。 SDXL 1.0包括两种不同的模型: sdxml -base-1.0:生成1024 x 1024图像的基本文本到图像模型。基本模型使用OpenCLIP-ViT/G和CLIP-ViT/L进行文本编码。…

详解c++继承与多继承

目录 🚄什么是继承🚉继承的概念🚃继承的定义 🚇继承基类成员访问方式的变化🚆基类和派生类对象赋值转换🚐继承时的作用域🚗派生类的默认成员函数🚓继承、友元、静态成员&#x1f69a…

运维级影像归档与通信系统(PACS)源码

运维级医院PACS系统源码,带演示,带使用手册和操作说明书 ,带三维重建与还原功能,开发环境:VC MSSQL。 一、影像归档与通信系统(PACS)概述 PACS影像归档与通信系统”( Picture Archiving and C…

小型双轮差速底盘灭火功能的实现

1. 功能说明 灭火机器人是一种特殊的机器人,专门用于进行火灾扑救和灭火任务。它们通常具备以下功能和特点: ① 火灾侦测:灭火机器人配备了各种传感器和探测设备,可以检测烟雾、温度升高等火灾迹象。 ② 火灾扑救:灭火…

cadence virtuoso layout MOS串联线在layout中合并(merge)掉

如图,net10合并掉 解决办法: shiftE,取消勾选Abut server,save

第六章应用层

1.应用层概述 应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分。 早期基于文本的应用(电子邮件、远程登录、文件传输、新闻组) 20世纪90年代将因特网带入千家万户的万维网www 当今流行的即时通信…

彻底解决IDEA输出中文乱码问题

本文一共有3种方法,针对的情况是输出中文乱码问题 问题描述 无法正确输出中文字符:(请正确分辨自己是哪一种乱码问题!) 解决方法 1、最容易想到 File -> Settings -> File Encodings下设置编码格式为UTF-8…

安卓:JzvdStd——网络视频播放器

目录 一、JzvdStd介绍 JzvdStd的特点和功能: JzvdStd常用方法: 二、JzvdStd使用 1、补充知识: 例子: MainActivity : VideoPageAdapter : activity_main: video_page: …

如何在C#中处理空值

在任何编程语言中开发应用程序时,经常会遇到空异常或空引用异常。空指针或空引用是指不引用有效的内存位置或对象的指针。这是一个困扰程序员已经很久的问题,自从程序员开始编写程序以来。空值是一个特殊的值,表示没有有效值可用。当将空值赋…

hbuilderx主题色分享-github风格

效果 步骤 hbuilderx总共有三种主题,绿柔主题Default,酷黑主题Monokai,雅黑主题Atom One Dark,修改主题色是基于三种主题之一的,不能直接创建一个新主题,比如下方配置是基于Atom One Dark(对象名为[Atom One Dark]),则当前hbuild…

【Sortable】前端拖拽库 | 简洁 | 实用 | 强大

前言 官网 - http://www.sortablejs.com/index.html中文文档 - https://www.itxst.com/sortablejs/neuinffi.htmlnpm - https://www.npmjs.com/package/sortablejs npm下载 npm i sortablejsumd <script src"https://www.itxst.com/package/sortable/sortable.min.js…

达梦数据库食用说明

环境准备 达梦数据库支持Windows、Linux和Unix操作系统&#xff0c;达梦正式版需要授权&#xff0c;我们学习的话选择试用即可&#xff0c;在本机使用VM安装一个Centos&#xff0c;然后去达梦官网下载适用自己平台的安装包。 本教程使用的是VM安装的centos7.9。所以选择X86架…

伯俊ERP与金蝶云星空对接集成表头表体组合查询连通应付单新增(应付单(伯俊)(KD 应付单)ok)

伯俊ERP与金蝶云星空对接集成表头表体组合查询连通应付单新增(应付单(伯俊)&#xff08;KD 应付单&#xff09;ok) 数据源系统:伯俊ERP 伯俊科技&#xff0c;依托在企业信息化建设方面的领先技术与实践积累&#xff0c;致力于帮助企业实现全渠道一盘货。伯俊提供数字经营的咨询…

经典文献阅读之--NoPe-NeRF(优化无位姿先验的神经辐射场)

0. 简介 在没有预先计算相机姿态的情况下训练神经辐射场&#xff08;NeRF&#xff09;是具有挑战性的。最近在这个方向上的进展表明&#xff0c;在前向场景中可以联合优化NeRF和相机姿态。然而&#xff0c;这些方法在剧烈相机运动时仍然面临困难。我们通过引入无畸变单目深度先…