我发现pydub是用简单的方法和紧凑的代码进行这种音频操作的最简单的工具。

可以使用安装pydubpip install pydub

如果需要,您可能需要安装ffmpeg/avlib。有关详细信息,请参见this link。

这是一个你要求的片段。一些参数,如silence_threshold和target_dBFS可能需要进行一些调整以符合您的需求。

总的来说,我能够分割mp3文件,尽管我必须尝试不同的silence_threshold值。

片段# Import the AudioSegment class for processing audio and the

# split_on_silence function for separating out silent chunks.

from pydub import AudioSegment

from pydub.silence import split_on_silence

# Define a function to normalize a chunk to a target amplitude.

def match_target_amplitude(aChunk, target_dBFS):

''' Normalize given audio chunk '''

change_in_dBFS = target_dBFS - aChunk.dBFS

return aChunk.apply_gain(change_in_dBFS)

# Load your audio.

song = AudioSegment.from_mp3("your_audio.mp3")

# Split track where the silence is 2 seconds or more and get chunks using

# the imported function.

chunks = split_on_silence (

# Use the loaded audio.

song,

# Specify that a silent chunk must be at least 2 seconds or 2000 ms long.

min_silence_len = 2000,

# Consider a chunk silent if it's quieter than -16 dBFS.

# (You may want to adjust this parameter.)

silence_thresh = -16

)

# Process each chunk with your parameters

for i, chunk in enumerate(chunks):

# Create a silence chunk that's 0.5 seconds (or 500 ms) long for padding.

silence_chunk = AudioSegment.silent(duration=500)

# Add the padding chunk to beginning and end of the entire chunk.

audio_chunk = silence_chunk + chunk + silence_chunk

# Normalize the entire chunk.

normalized_chunk = match_target_amplitude(audio_chunk, -20.0)

# Export the audio chunk with new bitrate.

print("Exporting chunk{0}.mp3.".format(i))

normalized_chunk.export(

".//chunk{0}.mp3".format(i),

bitrate = "192k",

format = "mp3"

)

如果您的原始音频是立体声(2声道),您的块也将是立体声的。

您可以这样检查原始音频:>>> song.channels

2

python pcm 静音_使用静音检测分割音频文件相关推荐

  1. python爬取app中的音频_喜马拉雅app 爬取音频文件

    ============== 2019-10-28更新 ================= 因为喜马拉雅的源码格式改了,所以爬虫代码也更新了一波 # -*- coding: utf-8 -*- # w ...

  2. java实现音频播放小程序_微信小程序实现音频文件播放进度的实例代码

    问题描述 在微信小程序中经常会用到控制文件播放的滑块,通过滑块可控制音频播放进度,下面即用代码实现. 解决方案 首先用.wxml与 .wmss 代码实现进度条的效果,再通过 .js 文件控制进度条的进 ...

  3. python pcm 分贝_语音文件 pcm 静默(静音)判断

    pcm 文件存储的是 原始的声音波型二进制流,没有文件头. (1)首先要确认 pcm文件的每个采样数据 采样位数,一般为8bit或16bit. (2)然后确定是双声道还是单声道,双声道是两个声道的数据 ...

  4. python mp4提取音频加入另一段视频_使用 PHP-FFMpeg 操作视频/音频文件

    做音频合成的时候找到的一个php操作ffmpeg 的类库.GitHub地址:https://github.com/PHP-FFMpeg/PHP-FFMpeg/.本文的例子大部分都是上面的 在使用之前请 ...

  5. Python 调用pyaudio库录制以及播放wav音频文件

    1.Pyaudio简介 PyAudio 是语音处理的 Python 库,提供了比较丰富的功能. 2.功能 python的Pyaud模块可以调用电脑的麦克风或音响进行录音,音频播放,生成wav文件等. ...

  6. pcm 采样率转换_PCM编码与Waveform音频文件(.wav)格式详解

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是PCM编码及Waveform音频文件格式. 嵌入式里有时候也会和音频打交道,比如最近特别火的智能音箱产品,离不开前端的音频信号采集.降噪 ...

  7. 如何将两个集合合并_如何将剪切的音频文件进行合并

    下面就和大家一起来学习如何将音频文件剪切为多个片段再重新合并在一起.剪辑所用的音频转换器有很多,但是得找到一款合适自己的,下面小编就来为大家讲解一种方法. 使用工具: 音频转换器https://www ...

  8. php修改音频文件_解析用PHP读写音频文件信息的详解(支持WMA和MP3)

    // AudioExif.class.php // 用PHP进行音频文件头部信息的读取与写入 // 目前只支持 WMA 和 MP3 两种格式, 只支持常用的几个头部信息 // // 写入信息支持: T ...

  9. java 对音频文件降噪_如何对已有音频文件进行降噪处理?

    原标题:如何对已有音频文件进行降噪处理? 录音的时候,如果不小心录制到了周围嘈杂的声音,直接导致了整个音频的音质,因此学会利用软件对噪音进行处理也是一个必备的技能. 有的小伙伴表示,对音频进行编辑肯定 ...

最新文章

  1. python queue 调试_学Python不是盲目的,是有做过功课认真去了解的
  2. jackson 反序列化string_java – 使用Jackson对数组进行反序列化
  3. hdu1568斐波那契前4位
  4. GitHub、Git与TortoiseGit基本操作
  5. 斯坦福大学深度学习视频(CS231n课程)
  6. 《分布式系统:概念与设计》一2.3.2 体系结构模式
  7. spring之@value设置默认值
  8. mysql5.6-5.7性能调优
  9. K-Fold Cross Validation
  10. charles安卓抓包步骤详解
  11. 会议室选多大尺寸的会议平板才合适?
  12. Hibernate:DisjunctionConjunction构造复杂的查询条件
  13. DNS域名解析服务正向解析和反向解析
  14. STM32:DMA方式接收SPI总线数据,并按照协议进行处理
  15. 【Introduction】人类大脑
  16. 面试详解之Java8为什么用红黑树来实现HashMap
  17. php生成个性签名,怎么巧妙添加个性签名
  18. 自锁时间电路plc_PLC中有自锁功能,请问自锁使什么意思?
  19. Postman 实现备份数据 Postman恢复数据 postman 导出导入数据 postman 导入导出数据
  20. Python 语感训练100题(参考答案)

热门文章

  1. 零基础入门学习Python(21):魔法方法(1)构造和析构
  2. OneNote用完画笔怎么从绘图模式回到打字模式
  3. 【ros】初学ROS的学习笔记——创建Publisher
  4. java用下拉框实现出生日期_纯JS实现出生日期[年月日]下拉菜单效果
  5. Effective-Java 检查参数有效性
  6. 计算机打印状态错误,打印机出现错误状态是怎么回事,教您解决办法
  7. UE4粒子在镜头看不到时不显示问题解决
  8. 北京“快速AI体温检测”应对返工潮;盖茨基金出资1亿美元抗击新冠病毒;腾讯再设2亿元资金池抗击疫情...
  9. 可以制作地图的平台,最好的可以编辑的地图工具
  10. 记一次触发器定义者不同导致的sql异常TRIGGER command denied to user 'XXX' @'%' for table '...