LD3320语音识别模块分析

这篇具有很好参考价值的文章主要介绍了LD3320语音识别模块分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

LD3320语音识别模块分析

  LD3320是非特定人语音识别芯片,即语音声控芯片。最多可以识别50条预先内置的指令。

识别原理

 声音分帧:
  声音是一种波,常见的mp3等格式都是压缩格式,必须转为非压缩的纯波形文件来处理,比如Windows PCM文件,也就是wav文件。wav文件李存储的除了一个文件头以外就是声音波形的一个个点。比如下图一个波形示例:
LD3320语音识别模块分析

  在语音开始识别之前,需要把首尾端的静音切除,降低对后续步骤造成的干扰。而这个静音切除的操作叫做VAD。
  对声音分析,即需要对声音进行分帧——把声音切开成一小段一小段,每一小段就是一帧。而分帧需要使用移动窗函数来实现。
  语音数据和视频数据不同,本没有帧的概念,但是为了传输与存储,我们采集的音频数据都是一段一段的。为了程序能够进行批量处理,会根据指定的长度(时间段或者采样数)进行分段,结构化为我们编程的数据结构,这就是分帧。
LD3320语音识别模块分析

 观察序列提取:
  分帧后,语音就变成了很多小段。但波形在时域上几乎没有描述能力,因此必须将波形作变换。常见的一种变换方法是提取MFCC特征,根据人耳的生理特性,把每一帧波形变成一个多维向量,可以简单地理解为这个向量包含了这帧语音的内容信息。这个过程叫做声学特征提取。实际应用中,这一步有很多细节,声学特征也不止有MFCC这一种,具体这里不讲。
  至此,声音就成了一个12行(假设声学特征是12维)、N列的一个矩阵,称之为观察序列,这里N为总帧数。观察序列如下图所示,图中,每一帧都用一个12维的向量表示,色块的颜色深浅表示向量值的大小。
 矩阵变文本:
基本概念:
  音素:单词的发音由音素构成。对英语,一种常用的音素集是卡内基梅隆大学的一套由39个音素构成的音素集,参见The CMU Pronouncing Dictionary‎。汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还分有调无调,不详述。
  状态:这里理解成比音素更细致的语音单位。通常把一个音素划分成3个状态。

  三个步骤:①帧识别成状态②状态组合成音素③音素组合成单词
LD3320语音识别模块分析

   每个小竖条代表一帧,若干帧语音对应一个态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了,语音识别的结果也就出来了。
  每帧音素对应的状态就看某帧对应哪个状态的概率最大。
LD3320语音识别模块分析

  而概率的来源涉及到“声学模拟”,里面存了一大堆参数,通过这些参数就可以找到帧对应状态的概率。同时这些参数来源于模型训练。

 隐马尔可夫模型(Hidden Markov Model,HMM)
  由于会有多余的音素对应状态影响最终结果,因此为了解决这个问题,提高准确率,使用HMM。
  该模型主要步骤:①构建状态网络, ②从状态网络中寻找与声音最匹配的路径。
  搭建状态网络,是由单词级网络展开成音素网络,再展开成状态网络。语音识别过程其实就是在状态网络中搜索一条最佳路径,语音对应这条路径的概率最大,这称之为“解码”。路径搜索的算法是一种动态规划剪枝的算法,称之为Viterbi算法,用于寻找全局最优路径。
LD3320语音识别模块分析

  这里所说的累积概率,由三部分构成,分别是:
  观察概率:每帧和每个状态对应的概率;
  转移概率:每个状态转移到自身或转移到下个状态的概率;
  语言概率:根据语言统计规律得到的概率。
  其中,前两种概率从声学模型中获取,最后一种概率从语言模型中获取。语言模型是使用大量的文本训练出来的,可以利用某门语言本身的统计规律来帮助提升识别正确率。语言模型很重要,如果不使用语言模型,当状态网络较大时,识别出的结果基本是一团乱麻。这样基本上语音识别过程就完成了。

模块处理与应用

工作模式
普通模式:直接说话,模块直接识别。
按键模式:按键触发开始ASR进程。
口令模式:需要一级唤醒词(类似于苹果手机中的唤醒Siri,“嗨,Siri”。
LD3320语音识别模块分析

代码移植
 向LD模块中添加关键词
LD3320语音识别模块分析

 用户执行函数User_handle(nAsrRes); 处理语音识别结果
LD3320语音识别模块分析

 根据不同结果,串口打印不同的指令
LD3320语音识别模块分析

 MCU根据指令不同,执行不同的动作
  以JSON格式发送数据至串口,与语音识别模块相连的MCU接收此结果,然后对此字符串进行解析,进而得到当前识别的命令是什么,进而做相应的动作。
LD3320语音识别模块分析

 LDV7模块固件下载:

  • 打开编译后的.hex文件
    LD3320语音识别模块分析

  • 选对串口号,芯片型号后,选择“下载/编程”按钮,然后给STC单片机上电或者复位。
    LD3320语音识别模块分析

  • 发出语音,测试语音识别结果
    LD3320语音识别模块分析

最后输出

  1. {“VoiceCommandCode”:0}收到
  2. {“VoiceCommandCode”:1}“报时吧”命令识别成功
  3. {“VoiceCommandCode”:0}收到
  4. {“VoiceCommandCode”:2}“现在时间”命令识别成功
  5. {“VoiceCommandCode”:0}收到
  6. {“VoiceCommandCode”:3}“报时”命令识别成功
  7. {“VoiceCommandCode”:0}收到
  8. {“VoiceCommandCode”:4}“今天温度”命令识别成功
  9. {“VoiceCommandCode”:0}收到
  10. {“VoiceCommandCode”:6}“当前湿度”命令识别成功
  11. {“VoiceCommandCode”:0}收到
  12. {“VoiceCommandCode”:7}“当前天气”命令识别成功

引用:LD3320语音识别模块:LDV7模块使用详解文章来源地址https://www.toymoban.com/news/detail-454808.html

到了这里,关于LD3320语音识别模块分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32单片机与LD3320语音模块的交互方法

    在嵌入式系统中,STM32单片机广泛应用于各种应用领域。而LD3320语音模块是一种常用的语音识别与合成模块。本文将介绍如何在STM32单片机上与LD3320语音模块进行交互,并提供相应的源代码。 硬件连接 首先,我们需要将STM32单片机与LD3320语音模块进行正确的硬件连接。以下是

    2024年03月13日
    浏览(54)
  • 基于STM32和LD3320的智能语音识别柔光台灯设计

    毕业设计: (源程序+原理图+PCB+设计说明书+PPT) 原理图:Altium Designer 程序编译器:keil4/keil 5 编程语言:C语言 设计编号:Y001 资料下载链接 课题主要研究语音识别、按键识别、PWM波调节亮度、OLED屏幕显示四个模块,目前市面上语音识别的台灯大多仅是控制灯的亮灭,采用

    2023年04月10日
    浏览(39)
  • 基于 STM32 的语音识别智能家居控制系统的设计(LD3320语音识别芯片+ESP8266 WIFI模块+DHT11温湿度采集+MQ系列 烟雾及可燃气体+蜂鸣器+步进电机模拟窗帘+OLED液晶显示+

    ## **基于 STM32 的语音识别智能家居控制系统的设计(LD3320语音识别芯片+ESP8266 WIFI模块(阿里云 或ONENET或局域网)+DHT11温湿度采集+MQ系列 烟雾及可燃气体+蜂鸣器+步进电机模拟窗帘+OLED液晶显示+手机APP)** 本文采用LD3320语音识别芯片+ESP8266 WIFI模块+DHT11温湿度采集+MQ系列 烟雾及可

    2024年02月04日
    浏览(68)
  • 单片机设计_语音识别分类智能垃圾桶(STM32 ESP8266 LD3320)

    想要更多项目私wo!!!         离线语音识别识别垃圾种类并且垃圾桶自动翻盖: 说出唤醒词“垃圾桶”后,再说一句垃圾名称,语音识别模块端识别到相应,便会将结果通过串口发送到STM32端,STM32端接着会发送打开相应垃圾桶盖的指令,6s后,垃圾桶盖自动关闭。

    2024年02月06日
    浏览(50)
  • 毕业设计 单片机语音识别分类智能垃圾桶(STM32 ESP8266 LD3320)

    离线语音识别识别垃圾种类并且垃圾桶自动翻盖: 说出唤醒词“垃圾桶”后,再说一句垃圾名称,语音识别模块端识别到相应,便会将结果通过串口发送到STM32端,STM32端接着会发送打开相应垃圾桶盖的指令,6s后,垃圾桶盖自动关闭。其中翻盖功能是通过STM32端控制舵

    2024年04月26日
    浏览(67)
  • 实现语音识别系统:手把手教你使用STM32C8T6和LD3320(SPI通信版)实现语音识别

            本文实际是对LD3320(SPI通信版)的个人理解,如果单论代码和开发板的资料而言,其实当你购买LD3320的时候,卖家已然提供了很多资料。我在大学期间曾经多次使用LD3320芯片的开发板用于设计系统,我在我的毕业设计作品中也有添加这个系统功能,用于添加整个系

    2024年02月06日
    浏览(40)
  • 基于LD3320的51智能遥控语音小车

    小车实物图  本实验基于51单片机和LD3320语音识别模块 小车能够实现遥控器直接控制,语音控制以及自动避障 涉及到的知识有:I/O口的配置(点亮led),定时器(循迹),串口通信(两个板子的连接),SPI同步通信(遥控器),中断(定时器中断和串口中断),PWM(循迹)

    2024年02月06日
    浏览(40)
  • 语音模块开发——YS-LDV7 语音识别模块

    硬件自带的芯片能完成所需的功能,只需要了解输入和输出即可操作硬件完成指定的功能 型号:YS-LDV7 名称:一体化语音识别模块 规格:43*29.7MM 供电电压:5V (内部工作电压 3.3V) 待机电流:30MA 识别时电流:45MA IO 口输出:高电平为 3.3V 通信方式:串口通信(5V TTL 电平,不

    2024年02月07日
    浏览(45)
  • AI语音识别模块--whisper模块

    1.下载 ffmpeg,挑一个自己电脑系统的版本,下载,如我win64: 地址: Releases · BtbN/FFmpeg-Builds · GitHub 下载压缩包zip,到·本地 解压安装,其实无需安装,只需把对应的目录下的bin, 编辑环境变量的path,添加到环境变量即可!!! 不能科学的同学,可以到网盘地址,下载压缩

    2024年02月20日
    浏览(35)
  • AI智能语音识别模块(SU-03T)

    32位RISC内核,运行频率240 M 支持dsp指令集以及fpu浮点运算单元 FFT加速器:最大支持1024点复数FFT/IFFT运算,或者是2048点的实数FFT/IFFT运算 内置高速SRAM,内置2MB闪存内置2.4W、单声道AB类功放 支持1路驻极体麦 支持L2S输入/输出。 支持5V电源输入 内置5V转3.3V,3.3V外部负载不超过15

    2024年02月05日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包