我有一个音频文件。

我有一堆[开始,结束]时间戳段。在

我想要实现的目标:

假设音频长度为6:00分钟。

我有段是:[[0.0,4.0],[8.0,12.0],[16.0,20.0],[24.0,28.0]]

在我把这两个传递给sox+python之后,输出应该是6分钟长的音频,但是只有在片段经过的时间内有音频。在

也就是说,我想把time stamps和原始音频传递给SOX+python

这样就生成了一个音频,除了那些与传递的片段相对应的部分之外,所有内容都被静音

我无法达到上述目标,但有点接近相反的结果,经过几天的谷歌搜索,我得到了这样的结果:

更新、更简洁的代码+示例:

sox命令,像这样进行填充和修剪SOX__SILENCE = 'sox "{inputaudio}" -c 1 "{outputaudio}" {padding}{trimming}'

随机测试段:

^{pr2}$

生成填充和修剪的小python脚本。在

填充:def get_pad_pattern_from_timestamps(my_segments):

padding = 'pad'

for segment in my_segments:

duration = str(segment[1] - segment[0])

padding = padding + ' ' + duration + '@' + str(segment[0])

return padding

print get_pad_pattern_from_timestamps(A)

print get_pad_pattern_from_timestamps(b)

print get_pad_pattern_from_timestamps(z)

print get_pad_pattern_from_timestamps(q)

来自^的输出:pad 16.0@0.0

pad 1.0@1.0

pad 6.7@1.6 20.5@13.2 3.0@35.0 9.0@42.0 3.5@70.2 9.2@90.0 8.1@123.0

pad 4.0@0.0 4.0@8.0 4.0@16.0 4.0@24.0 4.0@32.0 4.0@40.0

修剪:def get_trimm_pattern_from_timestamps(my_segments):

trimming = ''

for segment in my_segments:

duration = str(segment[1] - segment[0])

trimming = trimming + ' trim 0 ' + str(segment[0]) + ' 0 ' + duration + ' ' + duration

return trimming

print get_trimm_pattern_from_timestamps(A)

print get_trimm_pattern_from_timestamps(b)

print("\n")

print get_trimm_pattern_from_timestamps(z)

print("\n")

print get_trimm_pattern_from_timestamps(q)

print("\n")

修剪输出:trim 0 0.0 0 16.0 16.0

trim 0 1.0 0 1.0 1.0

trim 0 1.6 0 6.7 6.7 trim 0 13.2 0 20.5 20.5 trim 0 35.0 0 3.0 3.0 trim 0 42.0 0 9.0 9.0 trim 0 70.2 0 3.5 3.5 trim 0 90.0 0 9.2 9.2 trim 0 123.0 0 8.1 8.1

trim 0 0.0 0 4.0 4.0 trim 0 8.0 0 4.0 4.0 trim 0 16.0 0 4.0 4.0 trim 0 24.0 0 4.0 4.0 trim 0 32.0 0 4.0 4.0 trim 0 40.0 0 4.0 4.0

使用来自终端的about输出运行SOX:Padding:

sox dinners.mp3 -c 1 testlongpad.mp3 pad 4.0@0.0 4.0@8.0 4.0@16.0 4.0@24.0

Trimming:

sox dinners.mp3 -c 1 testrim.mp3 trim 0 0.0 0 16.0 16.0

Padd and trimm:

sox dinners.mp3 -c 1 testlongpadtrim.mp3 pad 4.0@0.0 4.0@8.0 4.0@16.0 4.0@24.0 trim 0 0.0 0 4.0 4.0 trim 0 8.0 0 4.0 4.0 trim 0 16.0 0 4.0 4.0 trim 0 24.0 0 4.0 4.0

如果S是我的片段,那么NS就是其他一切。在^方法中,我传递NS,而NS正在从音频中删除。在

我想要实现的仍然是相同的,但方式不同,即我想传递S,这样只保留与{}对应的音频部分。在

附言:我的问题非常具体,我是新的音频处理和不确定如何继续。请不要把问题说得太宽泛或是什么。

我很乐意提供更多的细节来澄清。

最后,这不是一个硬件问题。这是个人项目。在

样本段[[开始,结束],,]]:[[1.6, 8.3], [13.2, 33.7], [35.0,38.0], [42.0,51.0], [70.2,73.7], [90.0,99.2], [123.0,131.1]]

因此,当这些时间戳通过音频传递给sox/python时,音频中的所有内容(除了提供的片段中的那些部分)都应该被消除。在

python3123_使用sox和python,基于时间戳列表对音频区域进行静音处理相关推荐

  1. python音频 降噪_Python | 简单的扩音,音频去噪,静音剪切

    原标题:Python | 简单的扩音,音频去噪,静音剪切 之前一段时间一直在搞数字语音识别,在训练算法上耗费了很多时间,但结果不尽人意.后来才发现自己一直忽视了音频预处理的一步,于是转而囫囵吞枣般学习 ...

  2. python实现录音并去燥_Python | 简单的扩音,音频去噪,静音剪切

    原标题:Python | 简单的扩音,音频去噪,静音剪切 之前一段时间一直在搞数字语音识别,在训练算法上耗费了很多时间,但结果不尽人意.后来才发现自己一直忽视了音频预处理的一步,于是转而囫囵吞枣般学习 ...

  3. python录音文件降噪_Python | 简单的扩音,音频去噪,静音剪切

    原标题:Python | 简单的扩音,音频去噪,静音剪切 之前一段时间一直在搞数字语音识别,在训练算法上耗费了很多时间,但结果不尽人意.后来才发现自己一直忽视了音频预处理的一步,于是转而囫囵吞枣般学习 ...

  4. 基于jupyter编程环境下——Python入门:列表4

    列表 四.操作列表 1.使用列表的一部分 -- 切片 2.元组 Python资料:Python编程XG:从入门到实践. 四.操作列表 1.使用列表的一部分 -- 切片 在前面学习了如何访问单个列表元素 ...

  5. Python基于聚类算法实现密度聚类(DBSCAN)计算

    本文实例讲述了Python基于聚类算法实现密度聚类(DBSCAN)计算.分享给大家供大家参考,具体如下: 算法思想 基于密度的聚类算法从样本密度的角度考察样本之间的可连接性,并基于可连接样本不断扩展聚 ...

  6. python 哪些比赛项目_70个超火python小项目列表,拿走·不谢

    前言: 不管学习哪门语言都希望能做出实际的东西来,这个实际的东西当然就是项目啦,不用多说大家都知道学编程语言一定要做项目才行. 这里整理了70个Python实战项目列表,都有完整且详细的教程,你可以从 ...

  7. python爬虫作用小工具_【python小课堂|史上最全的Python爬虫工具列表大全】- 环球网校...

    [摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有python学习者关注Python爬 ...

  8. Python基于值的内存管理真相

    Python采用基于值的内存管理方式,如果为不同变量赋值为相同值,这个值在内存中只保存一份,多个变量指向同一个值的内存空间首地址,这样可以减少内存空间的占用,提高内存利用率. Python启动时,会对 ...

  9. Python基于用户协同过滤算法电影推荐的一个小改进

    之前曾经推送过这个问题的一个实现,详见:Python基于用户协同过滤算法的电影推荐代码demo 在当时的代码中没有考虑一种情况,如果选出来的最相似用户和待测用户完全一样,就没法推荐电影了.所以,在实际 ...

最新文章

  1. TCP/IP 详解卷一 - TCP CWR、ECE、URG、ACK、PSH、RST、SYN、FIN控制位
  2. 如何在CentOS 7上安装Redis服务器
  3. GlobalPointer:用统一的方式处理嵌套和非嵌套NER
  4. linux 权限777_Linux编程之权限系统与工具使用(二)
  5. check corners_免费下载:将Mac样式的Hot Corners添加到Windows 10
  6. 链表相加 2. 两数相加
  7. cass生成曲线要素文件_《CASS道路断面法施工技术》
  8. left join 多条件_第九篇|Spark的五种JOIN策略解析
  9. 路由访问控制列表的设计
  10. css 多行文本的溢出显示省略号(移动端)
  11. axf下不了 keil5jlink_keil无法生成axf文件之解决方法
  12. matlab各类数据导入
  13. 华灿光电收购美新半导体 未来形成LED和传感器双主业发展
  14. 隐语义模型(Latent Factor Model, LFM)原理以及代码实现
  15. linuxwindows应急响应
  16. ICPC Greater New York Region 2020 L Evenly Separated Strings
  17. 【笔记】STM32F4xx 时钟定时器
  18. LoRaWAN入网方式以及加密进阶版
  19. udp洪水攻击java_Linux网络编程之UDP洪水攻击
  20. 获取电脑cpu,硬盘,网卡序列号

热门文章

  1. 非阻塞 php,PHP异步非阻塞之路
  2. HTML+CSS+JS实现 ❤️3D方块弹跳动画特效❤️
  3. java echarts 散点图,echarts在地图上绘制散点图(任意点)
  4. exif linux php扩展_LNMP环境为PHP添加exif扩展
  5. Sublime Text3终极宝典
  6. 平稳序列的预测和拟合之模型优化
  7. SPSS基础操作(二):用迭代法处理序列相关,并建立回归方程
  8. excel条件格式详解
  9. STL6-输入输出流
  10. Ajax动态拼接li并绑定事件