行空板教程:语音识别助手

Skyboard教程:语音识别助手

[En]

Skyboard tutorial: speech recognition Assistant

前言

行空板教程:语音识别助手

在过去的五年里,由于智能音箱、汽车助手、移动语音助手以及消费和互联网增值服务等设备的影响,中国对智能语音识别技术的需求一直在增长。语音识别似乎不再是一件神秘的事情,深深地融入了我们的生活。那么,我们可以从头开始构建我们的语音识别助手吗?好了,别说太多废话了,让我们用板子来满足需求。

[En]

In the past five years, due to the influence of devices such as smart speakers, car assistants, mobile voice assistants and consumer and Internet value-added services, the demand for intelligent speech recognition technology in China has been growing. It seems that speech recognition is no longer a mysterious thing, deeply integrated into our lives. So can we build our speech recognition assistant from scratch? All right, don’t talk too much nonsense, let’s use the board to fulfill the demand.

; 项目原理

行空板教程:语音识别助手

本项目的语音识别主要通过调用百度的语音识别接口来完成:

[En]

The speech recognition of this project is mainly accomplished by calling Baidu’s speech recognition interface:

  • 首先,董事会通过网络将董事会输入的语音文件上传到百度的服务器。
    [En]

    first of all, the board uploads the voice files inputted on the board to Baidu’s server through the network.*

  • 服务器收到数据后进行语音识别。然后将识别的结果发送到空白板。
    [En]

    after receiving the data, the server carries out speech recognition. Then send the identified results to the empty board.*

  • 最后,空白板在屏幕上显示接受的结果。
    [En]

    finally, the blank board displays the accepted results on the screen.*

课前准备

1、百度语音API接口的申请

打开百度的语音识别网站(https://ai.baidu.com/tech/speech)进行语音识别的申请,登录账户后,没有应用的读者,可以点击创建应用。进行应用的创建。

行空板教程:语音识别助手

按如下方式命名我们的应用程序:

[En]

Name our application as follows:

行空板教程:语音识别助手

创建完成后,单击以查看应用程序的详细信息。

[En]

After the creation is completed, click to view the details of the application.

行空板教程:语音识别助手

就可以看到我们应用(APPID,APIKEY,SECRET KEY)等信息,这个要留着我们后面会用到

行空板教程:语音识别助手

; 2、行空板设置

2.1行空板的进行联网设置

我们用电脑连接空板,然后打开浏览器,在空板的Web菜单中输入:10.1.2.3。

[En]

We use the computer to connect the empty board, then open the browser and type: 10.1.2.3 to the web menu of the empty board.

行空板教程:语音识别助手

点击网络设置,然后扫描附近的WiFi ,选择你要用的WiFi输入密码,进行连接

行空板教程:语音识别助手
行空板教程:语音识别助手

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u2MAEhtg-1649686679282)(C:\Users\Tao\AppData\Roaming\Typora\typora-user-images\image-20220411132815438.png)]

; 2.2 打开Jupyter服务

程序的编写,使用的是jupyter notebook,一个非常好用的编译器,所以我们要确保自己的应用是否打开此项服务。

行空板教程:语音识别助手

同样,我们可以在空白板上打开这项服务。

[En]

Similarly, we can open this service on the empty board.

行空板教程:语音识别助手

3、安装baidu-aip的python 版本的sdk

我们需要启用终端来进行安排,这里我用jupyter的终端进行,首先在行空板的应用开关界面打开页面。

行空板教程:语音识别助手

在新的下拉框中找到终端选项并安装它。

[En]

Find the terminal option in the new drop-down box and install it.

行空板教程:语音识别助手

终端第一次登录的读者,需要输入账号: root密码 : dfrobot

然后在终端输入:

pip install baidu-aip

行空板教程:语音识别助手

(PS:因为我这边已经安装了,所以提示安装文件已存在。)

; 4、上传素材文件到行空板

您可以看到,我们界面上的按钮,即背景,实际上是图像素材,我们需要它们在使用之前将它们导入到我们的面板中。我们如何才能将材料上传到我们的板上?这里我使用的是空板菜单界面进行传输,当然还有一些其他的方法,这里不再重复。

[En]

You see that the buttons on our interface, the background, are actually image material, and we need them to import them into our board before using it. How can we upload the material to our board? Here I use the empty board menu interface for transmission, of course, there are some other methods, I will not repeat them here.

行空板教程:语音识别助手

选择我们上传的文件上传到root/目录下面,

(PS:当然你也可以闲着其他目录下,但是我们调用的时候,路径一定要对哈)

行空板教程:语音识别助手

那么到目前为止我们的所有准备工作都已经完成了。如果你能坚持在这里看到读者,我会给你一个👍。

[En]

Well, so far all our preparatory work has been completed. If you can insist on seeing the readers here, I will give you a 👍.

相关知识点学习

行空板屏幕分辨率为240*320,因此unihiker库分辨率也为240320,坐标原点为屏幕左上角,向右为x轴正方向,向下为y轴正方向。

行空板教程:语音识别助手

; 1-文字 draw_text

语法: 控件对象名 = GUI对象.draw_text(x, y, w, text, color, origin, onclick, font_family,font_size)

  • 返回值:文字对象
  • 输入参数:
  • x : 横坐标
  • y : 纵坐标
  • w : 长度,如果超出长度则自动换行,此参数可省略。
  • text : 要显示的文字
  • color : 文字颜色
  • origin : 对齐位置,默认左上角
  • onclick : 当被点击时触发的回调函数
  • font_family : 指定字体
  • font_size : 文字大小
  • *用法举例:
import time
from unihiker import GUI
gui=GUI()
def info_text_on_click():
    print("文字被点击")

info_text = gui.draw_text(x=120, y=320, text='你好',origin='bottom' ,onclick=info_text_on_click)

info_text2 = gui.draw_text(x=0, y=100, text='1234567890')
info_text3 = gui.draw_text(x=0, y=150, w=50, text='1234567890')

while True:

    time.sleep(1)

2-图片 draw_image

语法: 控件对象名 = GUI对象.draw_image(x, y, w, h, image,origin,onclick)

  • 返回值:文字对象
  • 输入参数:
  • x : 横坐标
  • y : 纵坐标
  • w : 图片的宽度。按照长宽最小边等比例缩放,可省略,宽高参数都省略则保持原图分辨率。
  • h : 图片的高度。按照长宽最小边等比例缩放,可省略,宽高参数都省略则保持原图分辨率。
  • image : 图片源,可以传入路径或image对象
  • origin : 对齐位置,默认左上角
  • onclick : 当被点击时触发的回调函数
  • *用法举例:
from unihiker import GUI
gui=GUI()

img_image = gui.draw_image(x=120, y=0, w=80, h=50,  image='logo.png', origin='center', onclick=lambda: print("image clicked"))
img_image2 = gui.draw_image(x=0, y=100, image='logo.png')

from PIL import Image
img_image3 = gui.draw_image(x=10, y=200, image= Image.open('logo.png'))

import time
while True:

    time.sleep(1)

|- 5.4-按钮 add_button

语法: 控件对象名 = GUI对象.add_button(x, y, w, h, text, origin, state,onclick)

  • 返回值:文字对象
  • 输入参数:
  • x : 横坐标
  • y : 纵坐标
  • w : 图片的宽度
  • h : 图片的高度
  • text : 按钮上显示的文字
  • origin : 对齐位置,默认左上角
  • state : 按钮使能,设置为 disabled 时按钮无法点击,设置为 normal 则回复到正常可点击状态
  • onclick : 当被点击时触发的回调函数
  • *用法举例:
from unihiker import GUI
gui=GUI()
gui.add_button(x=120, y=110, w=100, h=30, text="按钮", origin='center', onclick=lambda: print("button clicked"))
gui.add_button(x=120, y=210, w=100, h=30, text="按钮", origin='center', onclick=lambda: print("button clicked"),state="disabled")

import time
while True:

    time.sleep(1)

程序编写

1、布局我们的UI界面

from unihiker import GUI

gui=GUI()

gui.draw_text(x=60, y=20,color="#4169E1", font_size=18,text="语音识别助手")

gui.add_button(x=120, y=110, w=100, h=30, text="录音", origin='center', onclick=lambda: print("开始录音") )

gui.add_button(x=120, y=210, w=100, h=30, text="识别", origin='center', onclick=lambda: prnt("开始识别") )

效果:

行空板教程:语音识别助手

2、添加相应事件

from unihiker import GUI,Audio
from aip import AipSpeech

gui=GUI()
audio = Audio()

gui.draw_text(x=60, y=20,color="#4169E1", font_size=18,text="语音识别助手")

gui.add_button(x=120, y=110, w=100, h=30, text="录音", origin='center', onclick=lambda:Record() )

gui.add_button(x=120, y=210, w=100, h=30, text="识别", origin='center', onclick=lambda: Recognition() )

info_text2 = gui.draw_text(x=0, y=60,color="black",text="")

""" 你的 APPID AK SK """
APP_ID = ''
API_KEY = ''
SECRET_KEY = ''

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()

def voiceToText():
    res = client.asr(get_file_content('3s.wav'), 'wav', 16000, {
            'dev_pid': 1537,
        })
    return res.get('result')[0]

def Record():
    print("开始进行录音")
    audio.record('3s.wav', 3)
    print("录音结束")
    info_text2.config(x=0, y=60, text="")

def Recognition():
    print("开始进行语音识别")
    msg = voiceToText()
    print(msg)
    info_text2.config(x=0, y=60, text=msg)
    time.sleep(1)

import time
while True:

    time.sleep(1)

效果:

行空板教程:语音识别助手

3、美化界面

from unihiker import GUI,Audio
from aip import AipSpeech

gui=GUI()
audio = Audio()

""" 你的 APPID AK SK """
APP_ID = ''
API_KEY = ''
SECRET_KEY = ''

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

gui.draw_image(x=0, y=0, w=240, h=320,  image='3.png')

gui.draw_image(x=0, y=0, w=240, h=320,  image='3.png')
gui.draw_image(x=10, y=15, w=40, h=40,image='4.png')
gui.draw_image(x=120, y=120, w=80, h=50,  image='1.png', origin='center', onclick=lambda: Record())
gui.draw_image(x=120, y=210, w=80, h=50,  image='2.png', origin='center', onclick=lambda: Recognition())

gui.draw_text(x=60, y=20,color="#4169E1", font_size=18,text="语音识别助手")

info_text2 = gui.draw_text(x=0, y=60,color="white",text="")

def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()

def voiceToText():
    res = client.asr(get_file_content('3s.wav'), 'wav', 16000, {
            'dev_pid': 1537,
        })
    return res.get('result')[0]

def Record():
    print("开始进行录音")
    audio.record('3s.wav', 3)
    print("录音结束")
    info_text2.config(x=0, y=60, text="")

def Recognition():
    print("开始进行语音识别")
    msg = voiceToText()
    print(msg)

    info_text2.config(x=0, y=60, text=msg)
    time.sleep(1)

import time
while True:

    time.sleep(1)

效果

行空板教程:语音识别助手

总结

ok!到这里我们本次的行空板教程:语音识别助手就结束了,我们通过此教程学会了:行空板的基础空间的使用,相关环境的安装,百度api接口的调用,文件的上传等操作。不知道屏幕前的读者学会了吗?相关素材和源码。关注公众号:跟着hockel玩科创,回复”语音助手”即可获得哈。

Original: https://blog.csdn.net/tonycarson/article/details/124111245
Author: hockel
Title: 行空板教程:语音识别助手

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/497904/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球