利用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 天前
巨有科技景区智能导览告别传统讲解,打造沉浸式智慧游览体验
人工智能·科技·语音识别
feifeigo1231 天前
基于隐马尔可夫模型(HMM)的孤立词语音识别系统
人工智能·语音识别·xcode
2601_958352901 天前
AP-0316 语音模块实测效果与能力边界展示
语音识别·硬件开发·ai降噪·音频处理模块
Luke Ewin1 天前
从零开始部署Fun-ASR-Nano实时语音识别并区分说话人教程 | 私有化部署开源的实时语音转写项目
人工智能·语音识别·funasr·实时语音识别·fun-asr
qq_369224331 天前
打开剪辑/直播/播放器提示ffmpeg.dll丢失?专属场景修复方法汇总
ffmpeg·dll·dll修复·dll错误
王文?问1 天前
ESP32-S3 实战教程:本地语音识别控制 Web 塔防游戏,从固件到前端完整跑通
前端·游戏·语音识别
瓷tun1 天前
小白也能懂:Qwen3-ASR-0.6B语音识别入门教程
语音识别·asr·qwen3·星图gpu
杜连涛1 天前
5分钟部署Whisper语音识别:多语言大模型一键启动Web服务
whisper·语音识别·ai应用·多语言处理
胡耀超1 天前
告别ModelScope魔搭联网依赖!sherpa-onnx + SenseVoice 完全离线语音识别部署指南(2026版,离线语音识别、声纹鉴定、sherpa-onnx、SenseVoice)
语音识别·funasr·语音转文字·sherpa-onnx·声纹鉴定·声纹比对·说话人识别
唯创知音1 天前
理疗仪语音控制芯片选型:离线语音识别模块方案对比
语音识别·离线语音识别芯片·理疗仪语音控制芯片选型