來源 | HaaS技術社群不看這幾篇好文,就别說自己了解物聯網
1、背景
Python語言如今已成為非常火的語言,尤其是在人工智能領域,但是它在嵌入式領域目前還應用較少。
本文将對HaaS平台的Python輕應用快速實作語音自動識别的例子,介紹HaaS平台的雲端一體特點以及軟硬體積木高效的特點。
本文将分為幾個部分介紹語音自動識别的全過程:
- 實作效果
- 實作原理
- 未來展望
2、語音自動識别案例效果
案例拓撲結構
本案例的硬體示意圖如下所示。

軟體原理如下圖所示。
案例過程
案例實驗過程主要分為4個步驟:
1、搭建硬體平台
2、編寫python代碼
3、錄音采集上傳
4、檢視語音結果識别
代碼主要做了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/mic1.pcm', 'w')
- index = 0
- audio_length = 122880
- 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'
- 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/mic1.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 = r0.get_stream(readBuf, read_size)
- sdcard.write(readBuf, rsize)
- index += 1
該過程啟動腳本後,對着麥克風說話。
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輕應用指導手冊:
阿裡雲智能語音互動平台
阿裡雲智能語音互動平台提供了語音識别、語音合成、自然語言了解等技術。本文是使用了其中的一句話識别功能。
所謂的一句話識别是指對時長較短(一分鐘以内)的語音進行識别,适用于較短的語音互動場景,如語音搜尋、語音指令、語音短消息等,可內建在各類App、智能家電、智能助手等産品中。更多資訊,請參見
接口說明。
4、未來展望
本案例基于Python輕應用和阿裡雲智能語音互動平台以及HaaS平台,快速搭建一個自動語音識别系統,未來HaaS平台将持續提供高效快捷的軟硬體積木,不斷打造物聯網裝置雲端一體Low-code開發架構。