设计思路图

import torch
import torchaudio
import matplotlib.pyplot as plt
import numpy
from moviepy.editor import  VideoFileClip,AudioFileClip,AudioClipwaveform,sample_rate = torchaudio.load("sss.wav")data=waveform[0][:-1]-waveform[0][1:]
data1=data.numpy().copy()
data1[data1>0]=10
data1[data1<0]=0
if len(data1) % 2 == 0:data2 = torch.sum(torch.Tensor(data1)[:].view(-1, 2), dim=1).numpy()# data2[data2 == 2] = 1
else:data2 = torch.sum(torch.Tensor(data1)[:-1].view(-1, 2), dim=1).numpy()# data2[data2 == 2] = 1
if sample_rate>16000:for i in range(6):if len(data2)%2==0:data2 = torch.sum(torch.Tensor(data2)[:].view(-1, 2), dim=1).numpy()# data2[data2 == 2] = 1else:data2=torch.sum(torch.Tensor(data2)[:-1].view(-1,2),dim=1).numpy()# data2[data2 == 2] = 1
else:for i in range(3):if len(data2) % 2 == 0:data2 = torch.sum(torch.Tensor(data2)[:].view(-1, 2), dim=1).numpy()# data2[data2 == 2] = 1else:data2 = torch.sum(torch.Tensor(data2)[:-1].view(-1, 2), dim=1).numpy()# data2[data2 == 2] =1not_zero=numpy.nonzero((data2>0)[1:]^(data2>0)[:-1])from pydub import AudioSegmentfile_name = r"sss.wav"
sound = AudioSegment.from_wav(file_name)
start=not_zero[0][0]*len(data)//len(data2)//sample_rate*1000
import time
for one in not_zero[0][1:]:if one * len(data) // len(data2) // sample_rate * 1000 - start<2000:continueelse:print(one * len(data) // len(data2) // sample_rate * 1000 - start)word = sound[start:one*len(data)//len(data2)//sample_rate*1000]word.export(str(one)+'.wav', format="wav", tags={'artist': 'AppLeU0', 'album':".wav"})start=one*len(data)//len(data2)//sample_rate*1000if __name__ == '__main__':pass

精确分割和筛选音频从长的音频中


import torchaudioimport numpyfilename="untitledxxx.wav"
waveform,sample_rate = torchaudio.load(filename)print("Shape of waveform:{}".format(waveform.size())) #音频大小
print("sample rate of waveform:{}".format(sample_rate))#采样率data=waveform[0][1:]-waveform[0][:-1]
data1=data.numpy().copy()
data1[data1>0]=1
data1[data1<0]=0y=numpy.nonzero(data1==0)[0][1:]
x=numpy.nonzero(data1==0)[0][:-1]
y_x=y-x
# 不连续且大于4ms=sample_rate*4/1000的
gt_4ms=sample_rate*4/1000
#
from pydub import AudioSegment
sound = AudioSegment.from_wav(filename)
y1=numpy.nonzero(y_x!=1)[0][1:]
x1=numpy.nonzero(y_x!=1)[0][:-1]
y_x1=numpy.nonzero((y1-x1)>gt_4ms)[0]
for i in range(len(y_x1)-1):inde_x_s=0inde_x_e=0s=y[y1[y_x1[i]]]e=x[x1[y_x1[i+1]]]x_data=data1[s:e].tolist()if x_data.count(1)>300*gt_4ms:while sum(x_data[:int(gt_4ms)])<0.3*gt_4ms:inde_x_s+=1x_data=x_data[int(gt_4ms):]while sum(x_data[-int(gt_4ms):])<0.3*gt_4ms:inde_x_e+=1x_data=x_data[:-int(gt_4ms)]if numpy.mean(x_data)>0.35:print(inde_x_s,inde_x_e)print(data1[s+inde_x_s*int(gt_4ms):e-inde_x_e*int(gt_4ms)].tolist().count(0),data1[s+inde_x_s*int(gt_4ms):e-inde_x_e*int(gt_4ms)].tolist().count(1))word = sound[(s+inde_x_s*int(gt_4ms))*1000/sample_rate:(e-inde_x_e*int(gt_4ms))*1000/sample_rate]word.export(str(i)+'.wav', format="wav", tags={'artist': 'AppLeU0', 'album':".wav"})
if __name__ == '__main__':pass

精确分割和筛选音频从长的音频中相关推荐

  1. 如何在分割视频的基础上,分离视频中的音频

    一般我们在使用媒体梦工厂采集或者剪辑视频时,怎么在分割视频的基础上,分离视频中的音频呢?下面一起来试试. 预览视频效果 先预览一下用媒体梦工厂在批量分割视频的基础上,分割视频中的音频效果 一组视频一个 ...

  2. html javascript 音频、视频、 mp3 、mp4 的播放、暂停、重新播放、获取音频时长、视频自动全屏播放

    html javascript 音频.视频. mp3 .mp4 的播放.暂停.重新播放.获取音频时长 视频 https://www.bilibili.com/video/BV1WE411o7Ft?fr ...

  3. multipartfile 获取音频时长_我在音频平台日赚150元的正确打开方式。或许适合你...

    听一本书,比看一本书让我们获取知识变得更加的容易和方便,随时随地都可以进行学习,不论是躺在床上,还是在开车都可以随时收听,音频不同于图文,我们不需要聚精会神的看,音频他特有的属性,能在各种场景中发挥最 ...

  4. android获取小程序音频时长,最新微信小程序获取音频时长与实时获取播放进度...

    #微信小程序获取音频时长与实时获取播放进度 在小程序官方文档中 audio 注意:1.6.0 版本开始,该组件不再维护.建议使用能力更强的 wx.createInnerAudioContext 接口 ...

  5. android获取小程序音频时长,微信小程序获取音频时长与实时获取播放进度

    首先在没有播放音频之前,居然拿不到总时长 但是在播放之后也需要设置setTimeout来获取 所以在监听音频播放进度更新事件中获取.顺便获取当前播放进度 按照官方的写法 audioPlayed: fu ...

  6. multipartfile 获取音频时长_抖音音频下载捷径:一键提取音频,安卓+ios全通用,完全免费...

    本文相关:抖音音频提取.抖音音频快捷指令.捷径怎么获取抖音音乐- 昨天有抖友分享了一个抖音短视频链接,告诉我,她很喜欢这个视频里的歌曲,但是在很多歌曲app上面却找不到相同的版本,然后就问我,有没有什 ...

  7. js 获取视频,者音频时长

    js 获取视频,者音频时长 let fileUrl = URL.createObjectURL(file) let audioElement = new Audio(fileUrl) let time ...

  8. psychopy 音频时长代码_多媒体之音频输入1

    点击上方"Qt学视觉",选择"星标"公众号重磅干货,第一时间送达 共同学习共同进步 音频输入可以使用QAudioRecorder或QAudioInput两个类实 ...

  9. 最新微信小程序获取音频时长与实时获取播放进度

    #微信小程序获取音频时长与实时获取播放进度 在小程序官方文档中 audio 注意:1.6.0 版本开始,该组件不再维护.建议使用能力更强的 wx.createInnerAudioContext 接口 ...

最新文章

  1. 给出一种符号表的组织方式和结构设计,要考虑数组类型和函数(不得与课件上的雷同)
  2. webBrowser自动填充、抓取网页数据
  3. python 网盘多帐号_CuteOne:一款基于Python3的OneDrive多网盘挂载程序,带会员/同步等功能...
  4. Keras【Deep Learning With Python】实现多元线性回归
  5. js简单的条件语句判断
  6. Docker 部署ELK 日志分析
  7. SQL Server中的查询优化技术:基础
  8. MVC中的cshtml与ASPX的区别
  9. 【Linux】基于Openfile的multipath测试
  10. 语音识别kaldi该如何学习?
  11. mysql建立聚族索引语句,MySQL学习教程之聚簇索引
  12. shell中txt转EXCEL
  13. 计算机硬盘使用率,硬盘占用率和速度
  14. 探索的乐趣(物理笔记)
  15. Markdown强行换页
  16. Jenkins-cents7.6 rpm安装
  17. 常用github开源地址
  18. javaweb简单的外卖平台系统(一)
  19. v20超级计算机,荣耀v20正式发布 成为首款通过泰尔实验室的综合游戏体验五星手机...
  20. pace.js网页自动加载进度条插件-好东西

热门文章

  1. 第十五届全国大学生智能汽车竞赛人工智能创意赛
  2. 第十五届智能车竞赛芯片选型浅析
  3. python打砖块游戏算法设计分析_python实现打砖块游戏
  4. 队列判空_数据结构与算法——队列的C语言实现
  5. 小端模式和大端模式_计算机字节顺序(大端法和小端法)详解
  6. linux下如何删除整行文本格式,Shell中如何删除文本比较长的行的实现方法
  7. linux配置文件语法错误,linux vim配置文件(语法高亮)
  8. Python3 基础语法(笔记2)
  9. Win 10 源码一览:0.5T 代码、400 万文件、50 万文件夹
  10. 聊聊RibbonLoadBalancerClient的choose方法