如何用几行Python代码在物联网设备上实现语音AI自动识别?

简介: Python语言如今已成为非常火的语言,尤其是在人工智能领域,但是它在嵌入式领域目前还应用较少。本文将对HaaS平台的Python轻应用快速实现语音自动识别的例子,介绍HaaS平台的云端一体特点以及软硬件积木高效的特点。

> 来源 | HaaS技术社区

不看这几篇好文,就别说自己了解物联网

1、背景

Python语言如今已成为非常火的语言,尤其是在人工智能领域,但是它在嵌入式领域目前还应用较少。

本文将对HaaS平台的Python轻应用快速实现语音自动识别的例子,介绍HaaS平台的云端一体特点以及软硬件积木高效的特点。

本文将分为几个部分介绍语音自动识别的全过程:

  • 实现效果
  • 实现原理
  • 未来展望

2、语音自动识别案例效果

案例拓扑结构

本案例的硬件示意图如下所示。

![image.png](https://ucc.alicdn.com/pic/developer-ecology/7cd580e2298440b1afc257093691df77.png)

软件原理如下图所示。

![image.png](https://ucc.alicdn.com/pic/developer-ecology/71e6e1b752164ebdbf1547597c9f77b4.png)

案例过程

案例实验过程主要分为4个步骤:

1、搭建硬件平台

2、编写python代码

3、录音采集上传

4、查看语音结果识别

1、搭建硬件平台

![image.png](https://ucc.alicdn.com/pic/developer-ecology/ebc460abc45e4fc2a6d8765fa4fa9e03.png) ![image.png](https://ucc.alicdn.com/pic/developer-ecology/2b60b32a3a9e4f298819c57d4e28ec8c.png)

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

详细代码参考如下:

  1. from audio import Player, Snd, Recorder

  2. import sdcard

  3. import http

  4. Snd.install_codec_driver()

  5. Snd.init()

  6. r0 = Recorder()

  7. r0.create()

  8. format = 1

  9. read_samples = 640

  10. channels = 1

  11. rate = 16000

  12. bits = 16

  13. r0.set_sink(format, rate, channels, bits, read_samples, 0, None)

  14. read_size = int(read_samples * channels * bits / 8)

  15. readBuf = bytearray(read_size)

  16. sdcard.open('/data/mic1.pcm', 'w')

  17. index = 0

  18. audio_length = 122880

  19. url = 'http://nls-gateway.cn-shanghai.aliyuncs.com/stream/v1/asr?appkey=yourtestappkeyXL8OZEpmRC&format=pcm&sample_rate=16000&enable_punctuation_prediction=true&enable_inverse_text_normalization=true'

  20. header = "X-NLS-Token: yourtesttokencb3572fc55b1a423b38\r\nContent-type: application/octet-stream\r\n"

  21. #注意需要修改token和appkey

  22. r0.start()

  23. while index < 101:

  24.    if (index == 100):

  25.        r0.stop()

  26.        r0.release()

  27.        sdcard.close()

  28.        data = bytearray(audio_length)

  29.        sdcard.open('/data/mic1.pcm','r')

  30.        sdcard.read(data,audio_length)

  31.        client=http.client()

  32.        client.set_data(data,audio_length)

  33.        client.set_header(header)

  34.        client.post(url)

  35.        response = client.get_response()

  36.    else:

  37.        rsize = r0.get_stream(readBuf, read_size)

  38.        sdcard.write(readBuf, rsize)

  39.        index += 1

3、录音采集上传

该过程启动脚本后,对着麦克风说话。

4、查看语音结果识别

![image.png](https://ucc.alicdn.com/pic/developer-ecology/2dc7a7c860554f80a70444ca269a3307.png)

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开发框架。

更多精品好文

 

物联网需要什么样的UI交互方式?

如何分析物联网设备问题,看懂这篇文章就够了

透过ALSA这层迷雾剖析AliOS Things音频框架设计

漫谈农业物联网与互联网技术的结合

传感器,物联网时代的智能硬件数字化入口

如何快速搭建一个像“天猫精灵”的智能语音助手?

物联网之IP Camera解决方案简介

从语音交互历史浅看它是否会是物联网行业的一个爆点?

带你走进多媒体世界:视频文件是怎么播放出来的

物联网云端一体AI方案的探索

物联网设备连接的下一个引爆点:4G Cat.1

物联网教育现状和前景

一文看懂蓝牙在物联网中的应用场景

下一个智能硬件爆品是什么?

华为、阿里、小米都在用的全屋智能技术

为什么物联网领域使用Rust的项目越来越多?

开源硬件的前世今生

物联网碎片化的一些思考

边缘计算在物联网行业的应用

物联网太难 ? 不妨试试用Python来开发

5G会给物联网行业带来哪些变化?

必须要了解的物联网安全知识

ARMv9能给ARM带来新一轮腾飞吗?(安全篇)

ARMv9能给ARM带来新一轮腾飞吗?(人工智能篇)

国产物联网操作系统的出路在哪里?

RISC-V架构能否引领物联网时代?

物联网到底为什么这么火?

谁才是物联网连接技术中的王者?

物联网平台大量出现能否将行业带入爆发式发展

脚本语言适合物联网开发吗

从“嵌入式”到“物联网”的四大转变

物联网发展新趋势

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
17天前
|
开发框架 数据建模 中间件
Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器是那些静悄悄的幕后英雄。它们不张扬,却能默默地为函数或类增添强大的功能。本文将带你了解装饰器的魅力所在,从基础概念到实际应用,我们一步步揭开装饰器的神秘面纱。准备好了吗?让我们开始这段简洁而富有启发性的旅程吧!
25 6
|
1月前
|
存储 缓存 测试技术
Python中的装饰器:功能增强与代码复用的利器
在Python编程中,装饰器是一种强大而灵活的工具,它允许开发者以简洁优雅的方式增强函数或方法的功能。本文将深入探讨装饰器的定义、工作原理、应用场景以及如何自定义装饰器。通过实例演示,我们将展示装饰器如何在不修改原有代码的基础上添加新的行为,从而提高代码的可读性、可维护性和复用性。此外,我们还将讨论装饰器在实际应用中的一些最佳实践和潜在陷阱。
|
1月前
|
人工智能 数据挖掘 Python
Python编程基础:从零开始的代码旅程
【10月更文挑战第41天】在这篇文章中,我们将一起探索Python编程的世界。无论你是编程新手还是希望复习基础知识,本文都将是你的理想之选。我们将从最基础的语法讲起,逐步深入到更复杂的主题。文章将通过实例和练习,让你在实践中学习和理解Python编程。让我们一起开启这段代码之旅吧!
|
10天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
50 8
|
17天前
|
API Python
【Azure Developer】分享一段Python代码调用Graph API创建用户的示例
分享一段Python代码调用Graph API创建用户的示例
41 11
|
19天前
|
测试技术 Python
探索Python中的装饰器:简化代码,增强功能
在Python的世界中,装饰器是那些能够为我们的代码增添魔力的小精灵。它们不仅让代码看起来更加优雅,还能在不改变原有函数定义的情况下,增加额外的功能。本文将通过生动的例子和易于理解的语言,带你领略装饰器的奥秘,从基础概念到实际应用,一起开启Python装饰器的奇妙旅程。
33 11
|
15天前
|
Python
探索Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器就像是给函数穿上了一件神奇的外套,让它们拥有了超能力。本文将通过浅显易懂的语言和生动的比喻,带你了解装饰器的基本概念、使用方法以及它们如何让你的代码变得更加简洁高效。让我们一起揭开装饰器的神秘面纱,看看它是如何在不改变函数核心逻辑的情况下,为函数增添新功能的吧!
|
15天前
|
程序员 测试技术 数据安全/隐私保护
深入理解Python装饰器:提升代码重用与可读性
本文旨在为中高级Python开发者提供一份关于装饰器的深度解析。通过探讨装饰器的基本原理、类型以及在实际项目中的应用案例,帮助读者更好地理解并运用这一强大的语言特性。不同于常规摘要,本文将以一个实际的软件开发场景引入,逐步揭示装饰器如何优化代码结构,提高开发效率和代码质量。
42 6
|
20天前
|
Python
如何提高Python代码的可读性?
如何提高Python代码的可读性?
33 4
|
20天前
|
Python
Python编程入门:从零开始的代码旅程
本文是一篇针对Python编程初学者的入门指南,将介绍Python的基本语法、数据类型、控制结构以及函数等概念。文章旨在帮助读者快速掌握Python编程的基础知识,并能够编写简单的Python程序。通过本文的学习,读者将能够理解Python代码的基本结构和逻辑,为进一步深入学习打下坚实的基础。

热门文章

最新文章

相关产品

  • 物联网平台
  • 下一篇
    DataWorks