当前位置: 首页 > news >正文

php短视频系统,视频静音的一种检测方案

php短视频系统,视频静音的一种检测方案

利用AudioSegment库抽出音轨,一定时间段间隔采样音频的dBFS,如果小于阈值(一般认为小于-50为静音),当然还存在负无穷的现象需要判断。

defaudio_silence_check_service(video_location):download_video_to_local(location=video_location,video_filename=video_filename)extract_audio_result=extract_audio_from_video(video_filename,audio_filename)is_exist_silence=Falsesilence_desc='' silence_detect_result=[]ifextract_audio_result:silence_detect_result=silence_detect(audio_filename)forsilence_chunkinsilence_detect_result.get('silence_result'):ifint(silence_chunk[1])-int(silence_chunk[0])>int(int(silence_detect_result.get('audio_duration'))/3):silence_desc+=f'{silence_chunk[0]}~{silence_chunk[1]},'ifsilence_desc:silence_desc+='ms存在静音' is_exist_silence=Trueelse:is_exist_silence=Truesilence_desc=f'{qipuid}未获取到音轨'logger_error(silence_desc)returnis_exist_silence,silence_desc,silence_detect_resultdefsilence_detect(audio_file,silence_threshold=-50,chunk_size=10):sound=AudioSegment.from_file(audio_file,format="wav")assert chunk_size>0silence_chunks=list()silence_chunks_start_ms=-1sound_duration=len(sound)forcurrent_msinrange(0,sound_duration,chunk_size):current_ms_chunks_dBFS=sound[current_ms:current_ms+chunk_size].dBFSifcurrent_ms_chunks_dBFS<silence_thresholdorcurrent_ms_chunks_dBFS==-inf:ifsilence_chunks_start_ms==-1:silence_chunks_start_ms=current_mselse:ifcurrent_ms<=sound_duration<=current_ms+chunk_size:silence_chunks.append([silence_chunks_start_ms,sound_duration])silence_chunks_start_ms=-1else:ifsilence_chunks_start_ms!=-1:silence_chunks.append([silence_chunks_start_ms,current_ms])silence_chunks_start_ms=-1return{'audio_duration':sound_duration,'silence_result':silence_chunks}defdownload_video_to_local(location,video_filename):res=get(location)withopen(video_filename,r'wb')asf:f.write(res.content)

以上就是php短视频系统,视频静音的一种检测方案, 更多内容欢迎关注之后的文章

http://www.cnnetsun.cn/news/36831.html

相关文章:

  • 计算机视觉新突破:OpenCV 5.0新特性解析与软件测试实战
  • 基于SpringBoot + Vue的新能源汽车销售数据分析系统
  • Pock:MacBook Touch Bar Widget管理器的终极解决方案
  • 为什么Hubot Sans成为数字产品设计的颠覆性选择?
  • 基于SpringBoot + Vue的重型机械管理平台
  • Moveable DOM操作库:5个核心场景解决前端交互难题
  • ComfyUI与Zapier集成:触发式自动生产业务流
  • 10、Linux 高级访问控制:ACL 深度解析
  • 12、手动配置 Linux 网络:从路由设置到工具使用的全面指南
  • Walrus去中心化存储系统:新手快速上手指南
  • 30、Python并发编程:线程、进程与调度全解析
  • 34、Python数据持久化:简单与关系序列化的全面解析
  • GPS测量工具终极指南:从零开始掌握精准定位分析
  • 3 SQL注入|数据类型与提交方式|笔记
  • 3D架构设计新体验:iCraft Editor快速上手攻略
  • 25、树莓派多媒体应用全攻略
  • 敏捷开发实战指南:从思维到落地的渐进式掌握
  • 中文词典数据库完整使用指南:解锁中华语言文化宝藏
  • 3D建模革命:5步掌握多视角智能生成技术实战指南
  • 振动信号数据集:工业设备故障诊断的终极指南
  • MATLAB实现基于黏菌优化算法(SMA)进行无人机三维路径规划
  • WindowResizer:5分钟学会窗口尺寸强制调整的终极解决方案
  • [Windows] Adobe Acrobat Pro DC 绿色精简版(PDF核心功能工具包)
  • Rust包管理器Cargo的7大核心功能:从零开始构建高效开发环境
  • 轻松上手深林算法:从零开始的深度随机森林实战指南 [特殊字符]
  • 西安电子科技大学数字图像处理完整教学资源包
  • 伺服系统设计完整指南:从理论到实战的深度解析
  • Freeze:三步实现EDR绕过的零检测Shellcode执行方案
  • 基于微信小程序的学习复习小程序(源码+lw+部署文档+讲解等)
  • PaperAI终极指南:如何用AI快速分析医学论文