社区导航

 

搜索
12
返回列表 发新帖
楼主: eagler8

[原创] MicroPython动手做(25)——语音合成与语音识别

  [复制链接]

789

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2020-5-22 20:19 | 显示全部楼层
kinto 发表于 2020-5-22 20:16 我觉得语音识别里算法才是最核心的东西

是的,有空多交流



回复

使用道具 举报

789

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2020-5-22 20:23 | 显示全部楼层

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()

 

 

 



回复

使用道具 举报

789

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2020-5-22 20:25 | 显示全部楼层

mPython X 图形编程

 

14.jpg



回复

使用道具 举报

789

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2020-5-22 20:33 | 显示全部楼层

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

 

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

 


 



回复

使用道具 举报

789

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2020-5-23 09:12 | 显示全部楼层

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')

 



回复

使用道具 举报

789

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2020-5-23 09:21 | 显示全部楼层

mPython X 图形编程

 

17.jpg



回复

使用道具 举报

789

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2020-5-23 09:26 | 显示全部楼层

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

 

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

 


 



回复

使用道具 举报

789

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2020-5-23 11:23 | 显示全部楼层

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)


回复

使用道具 举报

789

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2020-5-23 11:40 | 显示全部楼层

mPython X 图形编程

18.jpg



回复

使用道具 举报

789

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2020-5-23 13:28 | 显示全部楼层

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

 

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

 


 



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/8 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-5-28 06:54 , Processed in 0.283317 second(s), 27 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表