利用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、测试

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

相关推荐
碧海银沙音频科技研究院1 天前
基于炬芯平台ATS308X多模型兼容语音识别算法
人工智能·算法·语音识别
2601_955662461 天前
小说推文如何制作多人配音?从角色划分到音频生成
人工智能·音视频·语音识别·媒体·视频
OH_TPC2 天前
【鸿蒙优选三方库】@ohos/ffmpeg-kit:把 FFmpeg 的全部能量带进鸿蒙
华为·ffmpeg·harmonyos·鸿蒙
是jin奥2 天前
最新 FFmpeg 安装脚本:Linux x86_64
linux·运维·ffmpeg
骑着蜗牛撵大象3272 天前
用 Codex 批量做数字人商品口播视频:从分镜 JSON 到成片校验的流水线
java·ffmpeg·json·音视频·数字人·视频·codex
行走的小派2 天前
Harmony输入法框架解析:IME架构、多模式输入引擎与语音识别链路
人工智能·架构·语音识别
HySpark2 天前
视觉多模态效果不佳怎么办?从画面质量到音视频融合的工程优化实践
opencv·计算机视觉·语音识别·多模态·音视频融合
企业数字化笔记2 天前
视频加放大特写后音画不同步怎么办?OpenCV转场与FFmpeg音轨续接实战
opencv·ffmpeg·音视频
DogDaoDao2 天前
声音、图像、视频是如何形成的:从物理量到比特流的完整链条
图像处理·数学·音视频·音频·数字信号处理·视频处理·音视频编解码
光锥智能2 天前
引领新一代人机交互,科大讯飞全新发布星火语音基座大模型 SparkAudio 1.0
人工智能·人机交互·语音识别