找回密码
 注册
关于网站域名变更的通知
查看: 1558|回复: 4
打印 上一主题 下一主题

TWEN-ASR ONE 语音识别系列教程(1)——运行第一个语音程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-6-16 18:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 Heaven_1 于 2021-6-17 08:55 编辑 2 Y' C, |, X" j$ [8 U/ E' C, p& ^
. h# J' X! c2 G4 t; S
前言
& U$ Y1 i( S# _! B$ V$ b; i, A一、TWEN-ASR开发板介绍  k( ?+ |" k9 e0 S7 k' r' @3 ~
二、程序编写、下载、调试" K* |3 c) Z# ?& X6 P7 T: ~
三、运行测试) _/ w" a4 Y7 T- A3 `2 r
四、总结
. N% Z- c5 R2 G
前言, x$ h( i3 V, R2 Z3 ~2 j8 S
    语音识别这个词,相信大家都不陌生,现在流行的智能音箱基本都有语音识别功能,如Alex、小爱音箱、天猫精灵、小度音箱等等。市面上语音识别的模块也很多,主要分为两大类在线语音识别和离线语音识别。前面提到的智能音箱,需要在线才有灵魂。智能音箱可以控制家电,而控制的家电的产品都需要进入相应的生态圈。对于开发者而言,也许会跟我遇到这样的问题:
, u# c' y+ i, {/ \3 m    (1)唤醒词不能更改;) G( E* K/ F' p3 m
    (2)离线控制功能受限;
, c; [, g: o7 h+ t2 G    (3)只能按照智能音箱厂商协议进行产品。
/ f9 n  w6 F: C- X    然而有这么一个芯片,可以任意修改唤醒词,可以离线语音识别控制,可以快速编写程序,这个芯片就是TWEN-ASR。本篇文章将使用TWEN ASR ONE V1.0开发板,进行语音识别和控制测试。主要内容有:; J4 m8 I& e% n- W, x

8 x' z  W# j. l- D9 @' h% Q% ^* XTWEN-ASR开发板介绍;! w, q$ B' A! v/ H! Q
程序编写、下载、调试;
0 m0 m* Q( w: j7 w% gTWEN-ASR运行测试。
+ a3 p$ F6 t6 s) b4 N8 Y) H) v& p
, V* i/ X& Q  e( N' z! f" s

+ J1 {& z! Y# Y: u; A! f一、TWEN-ASR开发板介绍; R& q2 z2 p: {' \
6 B; n' p6 f5 K: ]
) R2 X9 x3 F3 j1 l6 A3 G# M
    开发板板载一颗 RGB 灯,引出 26 个 IO,外接喇叭和麦克风,用于快速验证语音产品功能。芯片内置脑神经网络处理器 BNPU,支持 200 条命令词以内的本地语音识别,内置 CPU核和高性能低功耗 Audio Codec 模块,集成多路 UART、IIC、SPI、PWM、GPIO 等外围控制接口,可以开发各类高性价比单芯片智能语音产品方案[1]。
+ }9 K/ Y; S" D2 y+ o. a: g2 e( {& F. u) h0 |5 E

% L- ^( c. ]+ f3 B8 u
7 Q& w* k- I% w- E
图1.1 TWEN-ASR ONE 引脚分布及功能图
. \  J# Y, z( N. z
" j2 p: w' Q# |8 s- |

( E, N9 ]' u% E( v9 M% _$ G    TWEN-ASR ONE 资源丰富。个人觉得可惜的是没有复位按键。除了主板还有麦克风、扬声器。如下图1.2,1.3所示。5 ?6 m5 V. c7 Y& g( A% `% a
; _! c  Q" _+ f: ?! B# v" @
0 N0 L! W' C8 P, E# E  b' d/ m6 M) D; M
图1.2 麦克风

5 i8 e3 T5 @6 m+ _; _6 N0 b, n8 o

" ~' g; V2 A0 g' {  X5 p; c
: Q4 n- Z/ Q( I* x& C3 g
图1.3 扬声器

' w" D9 B. G. a8 J
还有下载程序需要用到的下载器。如下图1.4所示。
6 e. |: P5 ^! |0 e, `, K+ Z  X
# l& y2 W2 n. ~  @* U4 m1 D& W* P+ N
, J/ Y  h5 ^5 T9 C& w% u9 k, n1 y; y
图1.4 下载器
2 r3 O1 p, @9 I5 [$ j
二、程序编写、下载、调试
  p# Z; K  v& r8 z" L- o# o! f. K+ f+ ]3 C/ P# p
    (1)安装天问Block软件。 天问Block开发软件主推图像化编程,当然也可以进行字符编程。其中,天问Block下载网址。安装完成后,编程选择设备为TWEN-ASR,如下图所示。4 {" F" P# n. V( p) r% B3 `
- E% B$ Q. T4 \# b' A3 ?! D+ @9 }
! I- F+ |3 f7 F' L% N3 Y8 R0 l
图2.1 天问Block设备选择图
& B- G( q2 Y9 f% \- k

$ N: K) i! Q) E' r* S
  V+ i8 M) Y# L1 ?9 A! K4 C
    (2)程序编写。 首先打开范例代码1.第一个云因识别程序.hd,默认是图形化编程。- d2 U2 L2 G5 e: Q: m4 D

0 h4 n( f) R! D0 e2 r- Y

) G9 E6 Z, q9 @9 |
图2.2 选择范例代码

( M( |& O8 d0 w
+ z) K2 s* L" p# t. |
1 b; M8 B" ?+ I1 @& M9 ]  b. l
.图形代码" K9 l% j# s! c6 C

  C- j0 w& s1 F/ j

  W* D( B% S4 ?9 ?0 G- k
$ J: \: R1 z, K. S
图2.3 图形化代码

0 b8 j2 u6 I& m* k4 E
' s4 c: n: {" @, H) `" P4 F" `
  o! V9 F9 P. @0 q2 Y2 T1 r
从代码我们可以看出,程序分两块,一块是初始化,另一块是ASR_CODE。初始化程序是上电时运行一次,而ASR_CODE是循环运行。
5 V* p% d/ ]! e* v# ~# w* ~8 ?) R$ r6 M9 O( a8 D' O  S+ S
初始化过程:
0 C% [4 ^% Z; x     1、 播报音设置。 可以设置不同的男声、女生。选择还是很多的。设置时,还可以听到声音,有点像手机换铃声,点击铃声就会播放铃声的声音。音量语速根据自己的喜好选择即可。
1 [8 T( I+ y. R$ B( Z9 Q) Z
5 U, G% h: @( v( H+ \9 b
* M! v1 \/ E( O& N
图2.4 播报语音选择
) b) Z4 d5 j9 X0 L+ K
     2、 添加欢迎词设置。 欢迎词是上电的时候会播报。
7 H: W. D/ R# A3 r! J     3、 添加退出语音设置。 一段时间没有语音操作后,模块会播报退出语音,然后需要唤醒词唤醒。& c: B8 n- S4 w& z1 D. P
     4、 添加识别词(唤醒词)。 唤醒词是唤醒模块工作的识别词。, U9 I9 U( V: h
     5、 添加识别词(命令词)。 命令词是需要唤醒后工作的识别词。0 E9 B9 I, v& S
) I4 Y& X3 q  T/ [
字符代码
. J& O2 v2 |; Q+ M1 d8 {/ j* |, t  S" @3 |
与前面的图形化编程代码对应如下:
6 V9 h$ v3 F( t( L! g7 o#include "asr.h"
$ @3 d( q; q, S: o# Z" T' r#include "setup.h"
( d- O0 S+ e; r1 v  J
. W; g+ F" B3 Iuint32_t snid;7 f& h  f9 M% ]: |0 X
void ASR_CODE();$ o7 a6 o( _7 X
- x4 [, s$ Q2 ]- R( \3 J2 m
//{ID:250,keyword:"命令词",ASR:"最大音量",ASRTO:"音量调整到最大"}
2 |: z' @! i+ n' r) b% P& i$ o//{ID:251,keyword:"命令词",ASR:"中等音量",ASRTO:"音量调整到中等"}) S0 R! e: A) ~! y! K: P3 e* U: B
//{ID:252,keyword:"命令词",ASR:"最小音量",ASRTO:"音量调整到最小"}1 A* K- K  w4 U  e$ U0 O
/*描述该功能...
  a! Z4 T& j# i) u% ]2 {*/  K/ m3 v/ `# f9 c8 I+ c; ]4 f: y
void ASR_CODE(){
8 r4 a, \, N# [3 W; L1 [9 W( k  if((snid) == 4){
* W4 K$ k3 d! B    digitalWrite(13,1);
8 g0 X1 P' ]6 h, E" h4 `7 A  }- n# O* c* u% `. O- p& T' C
  if((snid) == 6){2 P( t  R! u, Z- i* |& r8 v6 R
    digitalWrite(13,0);
9 u* A* G+ [# r  }
. T# {& b, s, ]; `9 C}
, w! V8 c; ]3 q
5 I- m1 N; L" w9 Z& f0 lvoid setup()0 v# U  u( t+ T7 T
{( V& `( o+ {. t
  //{speak:小蝶-清新女声,vol:10,speed:10}
3 \0 Y5 I2 z8 J  //{playid:10001,voice:欢迎使用智能管家,用智能管家唤醒我。}
8 }9 r: {: P% M. v  //{playid:10002,voice:我退下了,用智能管家唤醒我}
* |5 M2 o/ Q3 i1 t  //{ID:2,keyword:"唤醒词",ASR:"智能管家",ASRTO:"我在"}
6 A' h/ h. P. ~. F, I! l7 e  //{ID:4,keyword:"命令词",ASR:"打开红灯",ASRTO:"好的,马上打开红灯"}0 Q2 d# [1 _; G) J
  //{ID:6,keyword:"命令词",ASR:"关闭红灯",ASRTO:"好的,马上关闭红灯"}
& X& |( G; N. y+ n. m6 Y7 a; A. s}
$ B" G" Y. ]0 p
# C9 U; I5 Y. l! D3 m; O; X————————————————
5 B0 ^& ^+ R& T" `1 \6 a$ J/ k& V( c, z& c/ `) n1 y
程序实现的功能是语音识别到打开红灯会打开红灯,识别到关闭红灯会关闭红灯。 RGB电路如下:
/ r4 W' G& \* J% S

, S$ w) g5 S; g2 f/ X0 O! f4 g6 i" P  {; }
图2.5 RGB灯原理图

8 _4 v; J* m9 [4 H在程序中,PWM4(Pin13)高低电平就是控制红灯的亮灭。
: U) s1 p" R# {
6 m/ i2 C- }  q) O' h$ W    (3)程序下载。 首先确保线路连接正常,如下图2.6所示。然后需要生成模型,最后编译下载9 @+ S/ Y' X3 t5 a  z% f+ @

4 p8 G9 K! C; d; _8 l
1 `: T6 u5 x) }% `2 s
, w( D1 G; G. ?( ]" }
图2.6 现在线路连接

6 p4 A: @* D0 I) o6 X! {

) B7 j2 N' A% J6 u
图2.7 下载顺序和选择
  c1 f6 N) Y' O. Y
生成模型需要登录,如果没有账号密码,需要注册。生成模型后,点击编译下载。第一次下载的时间比较长。可能需要3分钟左右,耐心等待。以下是烧录的过程:. j6 Y8 A1 A9 s: s) a6 h
6 A8 h* F1 Q" a. [
图2.8 模型生成

6 o4 t0 E5 m( X3 f3 U4 H5 {+ b8 F2 l
$ p4 V0 V/ u# j
图2.9 下载过程1

# c3 a  C& q$ E- ?

- U3 i& p' A- B7 J

' D; I. J: d/ {
图2.10 下载过程2
) W& `& {( X% I, f1 [5 C2 d* a; x
下载完成后,就会播放欢迎词。
/ _2 K7 B/ @+ d% y0 C7 A0 y0 [
: \! c4 H* T, y三、运行测试  H2 H( o5 Q" {0 a: P. D  y
程序下载完成后,就会播报欢迎词。
2 D( x' e$ j: r  N8 w2 e
# J1 {3 d# J; A* X1 H5 [3 p7 k. ^& s+ PASR:欢迎使用智能管家,用智能管家唤醒我。
; `1 f5 G. [, A9 `
  M; O1 U5 c% b8 p2 q我:智能管家
4 X1 m: E" `: l3 m: h4 ^1 J8 c. g5 Y1 @2 G% c, b3 Y* r7 k* d) u& e
ASR:我在8 N1 ~* ?% [0 |- R$ {8 C

6 P3 M3 x; J+ Y2 S" y7 ^- r- a1 z我:打开红灯. D$ ]* a5 O9 V$ ]2 p' S& d

1 ?1 F  |; b6 l/ bASR:好的,马上打开红灯# Z- Q/ m1 k6 b9 B- L9 ]% {

, q2 M6 J* E) Q  {
3 v: r, ^+ s& N7 {; X' S
图3.1 红灯亮
7 ]2 K& R: c1 O- ^  S

! Y9 Z- m$ j' J2 Z7 L* Z我:关闭红灯( I$ d: c. X  |$ }7 S
; [6 @4 m( h; G2 F  B1 n3 }5 q

9 \1 Y: I5 h& \4 C/ Q: |
# V  q% V6 z, R: u8 ?
图3.2 红灯灭

1 v5 t# Z5 I4 C, j
ASR:好的,马上关闭红灯
/ g# E2 e- t6 q2 d3 g
4 e( l; p- i" [: k8 m/ `; i    语音识别反应很快,基本上一说完就反应过来。而且声音小的时候也可以反应过来。第一个程序语音识别开灯和关灯,效果还是不错的。
" y5 v, D& |& v
# M7 y5 X' [" I7 d四、总结
( o$ X+ Z& d) n7 Q/ h    本文介绍了基于TWEN-ASR-ONE开发板,实现的语音识别功能,并且进行控制开灯和关灯操作。整过过程还是比较简单。图形化编程很直观,阅读代码功能对初学者来说,基本上没有什么问题。字符代码,可以让我们过度到图形化代码编程。TWEN-ASR-ONE开发语音识别编程很简单。欢迎词、退出语音、命令识别词、唤醒识别词可以自定义。还可以进行不同声音、音量、语速选择。总体来说,对于DIY功能基本够用。" b. w6 @$ d: a& T

  s5 k7 ^! m( A8 Z0 T& d  {& Q8 S7 F5 t9 b4 l
7 q* E) v( ~7 h$ R1 d. O) I
2 \# S9 ?$ c; p, `9 ~: ?4 Q3 p. x

该用户从未签到

2#
发表于 2021-6-17 08:56 | 只看该作者
这个模块功能不错,工作频率是多少

点评

180M噢,具体可以下载一个软件体验下:www.twen51.com  详情 回复 发表于 2021-6-21 15:11

该用户从未签到

3#
发表于 2021-6-17 10:08 | 只看该作者
请问有开发板吗# c- O  b6 m! q

点评

有的啊,在某宝上搜索:天问ASR可以找到我们  详情 回复 发表于 2021-6-21 15:13

该用户从未签到

4#
 楼主| 发表于 2021-6-21 15:11 | 只看该作者
行者~ABC 发表于 2021-6-17 08:56
7 d1 _) c" Y8 t* l+ L( |这个模块功能不错,工作频率是多少
) d, m5 v1 p; {7 }! J- g
180M噢,具体可以下载一个软件体验下:www.twen51.com" q* ~5 a) M" J( M  R

该用户从未签到

5#
 楼主| 发表于 2021-6-21 15:13 | 只看该作者
pchmiao 发表于 2021-6-17 10:08
+ z# ]7 q. l; `/ Q# `请问有开发板吗

5 U6 N( D( ^0 E有的啊,在某宝上搜索:天问ASR可以找到我们
$ Q! I& d* i7 Q5 E
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-10 05:07 , Processed in 0.171875 second(s), 25 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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