Java判断mp3文件是否有声音

java数字音频最强教程之如何检测一段音频是否声音 声音检测 随着人工智能的发展,机器视觉,机器可视化也变的越来越完善,但是声音这块分析资料却比较少,有时候需要去检测一段视频或者音频是否声音。在某些场景中需要判断声音则抓拍录制,当然这里只是先初步检测声音响度,如果还需要更高深的检测比如有人说话,也有其他嘈杂声音,我们如何去区分是人在说话,还是车开过,还是噪音,这个以后再讲。 可用于流媒体视频中实时检测,也可以用于离线文件检测,根据自己的需求,调节soundThreshold阈值,一般情况-65 db 为安静状态。 演示: 话不多说,直接上代码: pa 阅读详情

语音检测

最近公司给我安排了一个新任务,写一个工具可以判断mp3是否有声音
因为业务需求,统一都是mp3格式录音文件
网上找了许多,发现了sound包可以实现,也借鉴了一下大佬

java数字音频最强教程之如何检测一段音频中是否有声音

当运行发现AudioInputStream识别不了mp3格式,会报错
所以去研究了一下,添加了以下代码

		<dependency>
			<groupId>com.googlecode.soundlibs</groupId>
			<artifactId>mp3spi</artifactId>
			<version>1.9.5.4</version>
		</dependency>
		//URL url = new URL(path); url地址上的mp3文件
		File f = new File(path); //本地路径的mp3文件
		AudioInputStream audioStream = AudioSystem.getAudioInputStream(f);
		AudioFormat sourceFormat = audioStream.getFormat();
		/*
		 *	因为AudioInputStream不支持mp3格式,需要转换一下format配置
		 *  --> AudioFormat.Encoding.PCM_SIGNED // PCM_UNSIGNED  //  PCM_FLOAT
		 */
		AudioFormat mp3tFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,
				sourceFormat.getSampleRate(), 16, sourceFormat.getChannels(),
				sourceFormat.getChannels() * 2, sourceFormat.getSampleRate(), false);

		AudioInputStream mp3AudioInputStream = AudioSystem.getAudioInputStream(mp3tFormat, audioStream);

接下来流程都差不多,读取流里面的数据,并根据某些算法来计算声贝这些
看了大佬的算法,也去网上找了其他的算法,都大同小异(看得懂,但是并不知道为什么要这样算)
学习中。。。

这里贴一个另外一种算法

	/**
	 * 计算输入数据段的db值,按公式应该为20*Math.log10(当前振幅值/最大振幅值);
	 * 位深为16bit,则代表两个字节表示一个音量采集单位;
	 * 此处用平方和平均值进行计算;
	 *
	 * @param data 输入pcm音频数据
	 * @param bit  位深,8或16
	 * @return 当前分贝值
	 */
	public int calculateVolume(byte[] data, int bit) {
		int[] newBuffer = null;
		int len = data.length;
		int index;

		//排列
		if (bit == 8) {
			newBuffer = new int[len];
			for (index = 0; index < len; ++index) {
				newBuffer[index] = data[index];
			}
		} else if (bit == 16) {
			newBuffer = new int[len / 2];
			for (index = 0; index < len / 2; ++index) {
				byte byteH= data[index * 2];
				byte byteL = data[index * 2 + 1];
				newBuffer[index] = bytesToShort(byteH, byteL);
			}
		}
		//平方和求平均值
		if (newBuffer != null && newBuffer.length != 0) {
			float avg = 0.0F;
			for (int i = 0; i < newBuffer.length; ++i) {
				avg += (float) (newBuffer[i] * newBuffer[i]);
			}
			avg /= (float) newBuffer.length;
			int db = (int) (10.0D * Math.log10(avg + 1));
			return db;
		} else {
			return 0;
		}
	}

首次发帖,请多关照!
努力学习中。。。

mp3测试网站 一般的MP3播放器,对于历史记录支持不是很好,闲来无事自己写一个网页,前台后台有一点,主要是能自动连续播放,支持上传历史记录, 自己用的也就不用写用户登录了。 学到了不少知识,自己记录一下。 mp3测试网站 1、自动搜索网站中mp3目录下的文件夹,生成文件夹分类(php) 2、再从各个目录下搜索文件,添加至播放按钮(php+javascript) 3、audio元素添加监听事件,暂停或退出时记忆播放记录(localStorage永久保存) 退出利用onbeforeunload事件,效果... 阅读详情

相关推荐

AudioRecord.State is always State.Uninitialized

今天在自己的锤子手机上遇到个奇葩问题,AudioRecord初始化失败,其他手机都正常的。 一通google下来,找到了个折中办法,就是把所有AudioSource音频来源,采样率,采样精度这些都遍历一遍。方法见以下代码。 //音频采集来源 private static final int mAudioSource = MediaRecorder.AudioSource.MIC; //麦克风 //音频采样率 (MediaRecoder的采样率通常是8000Hz AAC的通常是44100Hz.设置采.

770

中文左右声道测试.mp3

中文左右声道测试.mp3

Java如何播放MP3格式音频文件,以及如何循环播放音频

首选,感谢你能在百忙之中阅读我的博客,在这里我告诉大家2中播放MP3格式音频的方法。第一种,使用自带的JavaFX技术来播放(现再最新的JDK版本中已被移除)。第二种我们使用第三方库来进行播放。 点击这里下载第三方库文件 如果找不到下载的地方,可以在我们百度网盘中下载:密码:avpy 当然,如果你觉得在百度网盘中下载太恶心,可以在这里下载 密码: pgb9bo JavaFX播放MP3,这种方法不需...

csu1204的博客 2188

在线音频mp3、视频mp4测试地址

音视频(mp3、mp4)在线测试URL地址

weixin_42369079的博客 3万+

Java实现网络语音信号传送(转载)

导读:   用Java实现网络语音信号传送   看到的一篇文章      用Java实现网络语音信号传送      一、引言   Java是一门适合于分布式计算环境、尤其是Internet程序设计的语言。这不仅仅在于java具有很好的安全性可移植性,还在于java为Internet编程提供了丰富的网络类库的支持。利用这些网络类库,可以轻松编写多种类型的网络通信程序。然而由于某些限制,Java在传

1388

Java播放MP3——JLayer

开源的JLayer可以让Java语言以极少的代码播放MP3音频文件

shencomd的专栏 7626

秒针滴答60秒声音mp3_Java 播放 MP3

@TOCjava sound api(JDK)原生支 .wav .au .aiff 这些格式的音频文件,当然 PCM(Pulse Code Modulation----脉冲编码调制)文件也是可以直接播放的,如果是 mp3,ogg,ape,flac 则需要第三方 jar 。Stream.of(AudioSystem.getAudioFileTypes()).forEach(e -> {Sys...

weixin_39972264的博客 2678

sipphone中播放声音文件

在这一篇里记录下在Java sip softphone的基础上添加播放音乐文件的功能。前面介绍了几款sipphone,发现Java sip softphone这款开源软件功能简单易于修改,根据自己的需要选择是否保留其GUI,然后修改少部分代码即可实现在拨号后播放指定的音乐文件。但是仍然有几个问题有待以后解决:1是对整个源码的框架流程的分析,目前我也只是删除了其GUI部分,而底层的sip rtp传输

要想到做到 4012

Java MP3SPI:实现MP3音频处理的扩展库

本文还有配套的精品资源,点击获取 简介:Java MP3SPI是Java Media Framework (JMF)的扩展,专门用于处理MP3音频文件。它补充了JMF的功能,使得在Java应用中播放、录制处理MP3变得容易。该库提供MP3解码、流处理、播放控制事件处理等功能,并且兼容性好,支持跨平台使用。开发者通过将 mp3spi-1.9.5.jar 加入...

weixin_33068055的博客 1010

使用Java实现MP3音乐播放器

原文链接:http://www.cnblogs.com/haoxia/archive/2009/06/03/1495419.html 使用Java实现MP3音乐播放器 JavaSound是一个小巧的低层API,支持数字音频MIDI数据的记录/回放。在JDK 1.3.0之前,JavaSound是一个标准的Java扩展API,但从Java 2的1.3.0版开始,JavaSound就被包含到JDK...

1万+

JavaCV音视频开发宝典:使用JavaCV采集windows系统声音并录制成mp3音频文件(FFmpeg采集windows系统声音)

JavaCV音视频开发宝典》专栏目录导航 《JavaCV音视频开发宝典》专栏介绍目录 前言 之前已经写过很多采集windows、macoslinux本机麦克风声音的文章,但是没讲过采集系统声音的。 很多小伙伴们弄推流器的时候跟博主反馈说不知道怎么采集系统的声音,本章咱们就单独讲讲windows平台下如何使用ffmpegJavaCV采集系统声音。 采集系统声音原理 首先要知道的是,原则上来说是没办法获取系统声音的,需要通过创建虚拟设备,将系统声音模拟成虚拟声卡设备,这样就可以通过ffmpegJ.

eguid音视频方向博客,分享经过实践检验的硬核音视频技术。FFmpeg、openCV和JavaCV音视频和图像处理系列教程发布十周年,众多开发者的严格验证。欢迎关注,一起交流探索学习最新音视频和图像处理技术 2972

java播放mp3没有声音文件_java播放mp3格式音频文件

下载完成之后解压提取jl1.0.0.1.jar 将jl1.0.0.1.jar拷贝到项目中,并添加到Library4.源代码//Tip: 由于工程名包名不一样,最好手打不要盲目复制package com.lt.music;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;imp...

weixin_33429631的博客 600

java播放mp3没有声音文件_javaMP3播放器,播放按钮没有声音

我正在尝试使用JLayer获取mp3播放按钮.我没有错误,但它没有播放任何声音.我将所有必需的jar文件添加到库中并遵循了许多教程,因此代码应该可以工作但我听不到任何声音. (P / S:我没有mp3插件)try{JOptionPane.showMessageDialog(null,"Trying");FIS = new FileInputStream("C:\\Users\\Jun\\Docum...

weixin_28754365的博客 439

使用Java播放MP3或Wav音频

应用程序接口(API)JavaSound可支持wav格式音频播放,为了支持mp3的播放,我们必须添加支持MP3的开源的第三方库JLayer-MP3 library到当前项目中,从而实现同时兼容播放MP3WAV格式的音频

weixin_42369079的博客 7117

java mp3波形图_java显示声音波形图示例

package _tmp;import java.awt.borderlayout;import java.awt.color;import java.awt.graphics;import java.awt.image;import java.awt.toolkit;import java.awt.image.bufferedimage;import java.io.file;import ja...

weixin_32018297的博客 441

java mp3合并_java合并MP3文件

importjava.io.*;publicclasshebingmpp3{publicstaticvoidmain(Stringargs[])throwsException{Filef1=newFile("f:\\kugou\\1.mp3");//待合并的MP3文件1Filef2=newFile("F:\\kugou\\2....import java.io.*;public class heb...

weixin_39768444的博客 798

java 合并mp3

参考文档:http://www.zhuhongliang.com/archives/670 MP3合并的时候如果文件的采样率,比特率,通道不一致直接合并的话,会导致合并后的mp3播放不出来,或者播放的时候时间不断变化。 如果将文件转换成相同的采样率,比特率,通道合并的话,合并后的文件的大小单个文件加起来的大小不一致,并且合并后的mp3声音会发生改变。暂时没有找到可以解决的方式 引入jar包 <dependency> <groupId>it.sauronsoftware<

m0_37598340的博客 1531

java 解析MP3

最近在学习音乐媒体文件的数据结构。首先看的是流行的MP3格式,网上的资料也不少。但是看过后都不能深入理解结构。就抽空时间使用Java写了个简单的Tools  package.当前只能解析MP3格式文件,而且还没有研究出声音压缩流解码的算法。以下代码主要功能:提取文件的标签头(Pr

hellolinshoujie的专栏 1295
下一篇: Java语音转文字功能
ayayazzz
博客等级 码龄8年 1粉丝 5原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值