利用ffmpeg对两个音频文件进行混音处理

前言

最近,拿到了一个语音识别程序,想测试一下它识别的准确性。原本程序有一段自己的测试音频,准确性还可以,但是,自己想增加一下测试素材的复杂性。想到了在原本的测试音频中引入干扰数据(噪点),再看一下语音识别程序的健壮性。

正文

1、素材介绍

原本程序自带的音频测试素材是一段时长 24 秒的 wav 文件,其中包含了关键词 Yes 和 No,两个关键词出现的具体时间点如下:

yes @1100ms

no @5500ms

yes @9100ms

no @13600ms

yes @17100ms

no @21600ms

想引入的噪点数据是前段时间在抖音上比较火的背景音乐------《野花与栀子花》,具体内容这里就省略了。

2、混音处理

最基础的 ffmpeg 混音命令如下:

ffmpeg -i test.wav -i flowers.mp3 -b:a 16k -ac 2 -ar 48000 -filter_complex "amix=inputs=2" mixed_audio.wav

简单介绍一下上述参数:

-b:a 16,音频码率为16kbps

-ac 2,音频声道数为2

-ar 48000,音频采样率为48kHz

-filter_complex "amix=inputs=2" ,音频过滤器

执行结果如下:

生成的混音文件 mixed_audio.mp3 包含了两个输入音频文件的内容,只是叠加到了一起。不过细心的网友会发现,这个输出音频文件的时长是以最长的输入音频文件长度为准的,也就是音乐《野花与栀子花》的时长,3分26秒。

如何让它以最短时长的音频文件长度为准呢,可以增加参数 duration=shortest,具体命令如下:

ffmpeg -i test.wav -i flowers.mp3 -b:a 16k -ac 2 -ar 48000 -filter_complex "amix=inputs=2:duration=shortest" mixed_audio.wav

执行结果如下:

3、测试

最后使用新生成的音频素材进行测试,准确率确实受到了影响,但是整体影响不大。

相关推荐
Knight_AL3 小时前
如何用 FFmpeg 处理 PCM 音频 & 判断 PCM 文件到底是什么格式
ffmpeg·音视频·pcm
山东布谷网络科技1 天前
对标Yalla和Chamet:海外直播语聊APP中多人派对房的关键技术细节
java·开发语言·人工智能·php·语音识别·软件需求·海外电商系统开发
colicode1 天前
语音提醒接口开发方案:日程安排与待办事项自动电话提醒的集成思路
前端·前端框架·语音识别
声光界1 天前
音驱数字人:OmniAvatar解锁智能交互新形态
音频·交互·语音识别·数字人·语音前端技术
奔跑吧 android1 天前
【车载audio】【CarAudioService 01】【深度解析 AAOS 音量回调机制:从 VHAL 信号到 UI 刷新的全链路分析】
音频·aosp15·车载audio·caraudioservice·caraudiomanager·车载音频开发
binderIPC1 天前
macos环境下FFmpeg打包成.so文件
macos·ffmpeg·音视频
binderIPC1 天前
macos的FFmpeg环境搭建
macos·ffmpeg·音视频
2501_924878731 天前
ROI实测:地市级融媒体中心三年TCO较A公司年费制降61.3%(矩阵跃动买断制)
人工智能·逻辑回归·动态规划·语音识别·媒体
莽夫搞战术2 天前
【FireRedASR-AED】目前性能最好的开源中文ASR模型
语音识别·asr
Ai173163915792 天前
2026年了,你认为AI会取代人类吗?欢迎留言讨论
大数据·图像处理·人工智能·深度学习·计算机视觉·自动驾驶·语音识别