人声检测原理VAD

embedded/2025/1/24 6:35:20/

机器人的研究中,机器人与人语音交互是一个重要的功能,在语音交互中,人声检测至关重要。不论是在手机中,还是在esp32芯片上,都需要一种简单快捷的方式来检测本地语音,滤掉杂音和噪音。

机器人启动后会一直在后台工作采集环境的声音,当本地检测到人声时,会发送给大模型识别,当大模型正确识别语音后,会把识别后的文字转给大模型分析回复,回复的结果通过超拟人合成人声发出来。通过这样的设定,机器人会在工作过程中随时接受语音指令,陪人聊天和与人交互。

package com.example.sparkchaindemo.llm.online_llm.bm;import android.util.Log;public class VAD {private int sampleRate;private int frameSize;private double energyThreshold; // 能量阈值public VAD(int sampleRate, int frameSize) {this.sampleRate = sampleRate;this.frameSize = frameSize;this.energyThreshold = 0.01; // 根据实际情况调整}// 检测音频帧是否包含人声public boolean detectVoice(byte[] audioFrame) {double energy = calculateEnergy(audioFrame);Log.i("jiaAAA", "energy="+energy);return energy > energyThreshold;}// 计算音频帧的能量private double calculateEnergy(byte[] audioFrame) {double sum = 0;for (int i = 0; i < audioFrame.length; i +=2) {//short sampleShort = (short)0xffff;//sampleShort &=audioFrame[i+1];//sampleShort = (short)((sampleShort<<8)|audioFrame[1]);short sampleShort = (short)((audioFrame[i]&0xff)|(audioFrame[i+1]<<8));double sample = sampleShort / 32768.0;sum += sample * sample;}return sum / audioFrame.length;}
}

演示:

【讯飞机器狗对话豆包大模型-哔哩哔哩】 https://b23.tv/EolJbEq


http://www.ppmy.cn/embedded/156496.html

相关文章

linux+docker+nacos+mysql部署

一、下载 docker pull mysql:5.7 docker pull nacos/nacos-server:v2.2.2 docker images 二、mysql部署 1、创建目录存储数据信息 mkdir ~/mysql cd ~/mysql 2、运行 MySQL 容器 docker run -id \ -p 3306:3306 \ --name mysql \ -v $PWD/conf:/etc/mysql/conf.d \ -v $PWD/…

喵语者:猫咪行为学分析

文章目录 肢体语言叫声含义生活习性社交行为异常行为 肢体语言 尾巴直立&#xff1a;友好或自信&#xff1b;尾尖弯曲表示非常开心&#xff1b;当猫竖起尾巴并轻轻摇晃时&#xff0c;可能是它在邀请互动。尾巴快速摇动&#xff1a;不满、即将攻击或兴奋的表现&#xff1b;快速…

spring boot中实现手动分页

手动分页 UserMapper.xml <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace"cn.m…

同城生鲜配送系统架构与功能分析

2015工作至今&#xff0c;10年资深全栈工程师&#xff0c;CTO&#xff0c;擅长带团队、攻克各种技术难题、研发各类软件产品&#xff0c;我的代码态度&#xff1a;代码虐我千百遍&#xff0c;我待代码如初恋&#xff0c;我的工作态度&#xff1a;极致&#xff0c;责任&#xff…

戴尔电脑设置u盘启动_戴尔电脑设置u盘启动多种方法

最近有很多网友问&#xff0c;戴尔台式机怎么设置u盘启动&#xff0c;特别是近两年的戴尔台式机比较复杂&#xff0c;有些网友不知道怎么设置&#xff0c;其实设置u盘启动有两种方法&#xff0c;下面小编教大家戴尔电脑设置u盘启动方法。 戴尔电脑设置u盘启动方法一、戴尔进入b…

【Matlab高端绘图SCI绘图模板】第003期 绘制面积填充图

1.面积图简介 面积图和折线图一样&#xff0c;面积图也用于强调数量随时间而变化的程度&#xff0c;也可用于引起人们对总趋势的注意。他们最常用于表现趋势和关系&#xff0c;而不是传达特定的值。 所有的数据都从相同的零轴开始。每一个数据集的起点不同&#xff0c;都是基…

了解 GRPO 算法:一种强化学习中的高效优化方法

了解 GRPO 算法&#xff1a;一种高效的强化学习优化方法 强化学习&#xff08;Reinforcement Learning&#xff0c;RL&#xff09;作为一种模仿人类行为的学习方式&#xff0c;在很多复杂任务中得到了广泛应用。然而&#xff0c;如何在大规模任务中高效地优化策略&#xff0c;…

09 以太坊技术介绍

以太坊技术架构 架构概述 以太坊属于公链&#xff0c;所有节点都具有相同的功能。 以太坊技术架构自上而下依次为应用层、合约层、通信层、共识层、网络层、数据层、存储层。 应用层 应用层主要对应Dapp应用模块&#xff0c;其中包含多种区块链应用场景典型案例。 合约层 …