1、背景
Python语言如今已成为非常火的语言,尤其是在人工智能领域,但是它在嵌入式领域目前还应用较少。
本文将对HaaS平台的Python轻应用快速实现语音自动识别的例子,介绍HaaS平台的云端一体特点以及软硬件积木高效的特点。
本文将分为几个部分介绍语音自动识别的全过程:
- 实现效果
- 实现原理
- 未来展望
2、语音自动识别案例效果
案例拓扑结构
本案例的硬件示意图如下所示。
软件原理如下图所示。
案例过程
案例实验过程主要分为4个步骤:
1、搭建硬件平台
2、编写python代码
3、录音采集上传
4、查看语音结果识别
1、搭建硬件平台
2、编写python代码
代码主要做了3件事,采集录音,上传录音,获取返回结果。
其中几个关键点在:
录音采集:
get_stream(readBuf, read_size)
上传录音:
client.set_data(data,audio_length)
client.set_header(header)
这些都是目前python轻应用封装好的接口可以直接使用。
需要注意的是,上传录音需要开通阿里云的智能语音服务,具体可以参考如下文档:
https://help.aliyun.com/document_detail/92131.html
详细代码参考如下:
-
from audio import Player, Snd, Recorder
-
import sdcard
-
import http
-
-
-
Snd.install_codec_driver()
-
Snd.init()
-
-
-
r0 = Recorder()
-
r0.create()
-
-
-
format =
1
-
read_samples =
640
-
channels =
1
-
rate =
16000
-
bits =
16
-
-
-
r0.set_sink(format, rate, channels, bits, read_samples,
0, None)
-
-
-
read_size = int(read_samples * channels * bits /
8)
-
readBuf = bytearray(read_size)
-
-
-
sdcard.open('/data/mic
1.pcm', 'w')
-
index =
0
-
-
-
audio_length =
122880
-
-
url = 'http://nls-gateway.cn-shanghai.aliyuncs.com/stream/v
1/asr?appkey=yourtestappkeyXL
8OZEpmRC&format=pcm&sample_rate=
16000&enable_punctuation_prediction=true&enable_inverse_text_normalization=true'
-
-
header =
"X-NLS-Token: yourtesttokencb3572fc55b1a423b38\r\nContent-type: application/octet-stream\r\n"
-
-
#注意需要修改token和appkey
-
-
-
r0.start()
-
-
-
while index <
101:
-
if (index ==
100):
-
r0.stop()
-
r0.release()
-
sdcard.close()
-
data = bytearray(audio_length)
-
sdcard.open('/data/mic
1.pcm','r')
-
sdcard.read(data,audio_length)
-
client=http.client()
-
client.set_data(data,audio_length)
-
client.set_header(header)
-
client.post(url)
-
response = client.get_response()
-
-
else:
-
rsize = r
0.get_stream(readBuf, read_size)
-
sdcard.write(readBuf, rsize)
-
index +=
1
-
3、录音采集上传
该过程启动脚本后,对着麦克风说话。
4、查看语音结果识别
3、自动识别背后实现原理
Python轻应用平台介绍
语音自动识别的工具平台使用的是Python轻应用,它是以MicroPython作为运行引擎,它继承了python优美简洁的语法特点,同时提供了便捷的嵌入式硬件操作库,极大的降低了嵌入式开发的门槛。
Python轻应用目前主要部署在阿里云Iot推出的HaaS系统开发板上,以HaaS EDK为例,它不仅提供了各种丰富的硬件操作接口,同时提供了阿里云物联网平台的连接控制以及云/端AI相关的能力。
通过Python轻应用,可以轻松便捷的搭建各种功能丰富案例和产品,让IoT应用开发轻松实现跨平台热更新。
Python轻应用的优势:
1.便捷的开发调试方法
2.丰富的硬件开发和外设控制能力
3.简洁的阿里云物联网平台连接接口
4.丰富的达摩院150+ AI算法
更多的Python轻应用请参见链接:https://g.alicdn.com/HaaSAI/PythonDoc/quickstart/index.html
语音识别组件介绍
本次使用了Snd(语音相关驱动模块)、Recorder(录音模块)、sdcard(sd卡模块)、http(网络模块)等多个组件,更多信息和接口介绍,参见python轻应用指导手册:https://g.alicdn.com/HaaSAI/PythonDoc/quickstart/index.html
阿里云智能语音交互平台
阿里云智能语音交互平台提供了语音识别、语音合成、自然语言理解等技术。本文是使用了其中的一句话识别功能。
所谓的一句话识别是指对时长较短(一分钟以内)的语音进行识别,适用于较短的语音交互场景,如语音搜索、语音指令、语音短消息等,可集成在各类App、智能家电、智能助手等产品中。更多信息,请参见接口说明。
4、未来展望
本案例基于Python轻应用和阿里云智能语音交互平台以及HaaS平台,快速搭建一个自动语音识别系统,未来HaaS平台将持续提供高效快捷的软硬件积木,不断打造物联网设备云端一体Low-code开发框架。
更多精品好文
透过ALSA这层迷雾剖析AliOS Things音频框架设计
物联网中也能使用区块链技术?面向IoT的区块链基础架构IoTeX
转载:https://blog.csdn.net/HaaSTech/article/details/117198544