使用Python,提取视频文件中的音频
目录
====
■前言
一些好的视频,我们只需要其中的声音就够了。
(抖音上的一首,五十音图的儿歌)
■提取音频具体实现
实现
===
■Step1
安装Python
Python 语言 Hello world_sun0322的博客-CSDN博客
■Step2:下载工具包
pip install moviepy -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
---以下命令不需要执行(放在这里,只是作为比较,Python如何安装【扩展程序库】 )
pip install plotSpiral --default-timeout=100 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install matplotlib --default-timeout=100 -i https://pypi.tuna.tsinghua.edu.cn/simple
---以上命令不需要执行
■Step3:代码实现
C:\test\python\mp3.py
import moviepy.editor as mpy
audio_background = mpy.AudioFileClip(r'C:\test\python\aiu.mp4').subclip(1, 60)
audio_background.write_audiofile(r'C:\test\python\aiu.mp3')
// 上面,第三行中的,subclip(1, 60) 代表 提取 1 到 60 秒
■提取前后文件大小比较
-a---- 2021/5/9 19:07 425317 aiu.mp3
-a---- 2021/5/9 19:04 1627550 aiu.mp4

---
■扩展
使用FTP在手机和电脑直接传送文件
FTP相关命令(手机FTP服务启动应用)_sun0322的博客-CSDN博客
---
■闪退问题解决
写上phthon.exe的全路径
"C:\Program Files\Python38\python.exe" mp3.py
===2024/10/06 再次使用 ,此工具, 截取音频代码,从149秒到208秒
import moviepy.editor as mpy
audio_background = mpy.AudioFileClip(r'C:\test\python\tool\小诗仙.mp4').subclip(149, 208)
audio_background.write_audiofile(r'C:\test\python\小诗仙.mp3')
==
@echo off
rem pause
echo waiting...
"C:\Program Files\Python38\python.exe" ./mp3.py
pause
===

====
■扩展:音频去除杂音
代码以及原理说明
python 音频去除噪音_mob649e8163af7d的技术博客_51CTO博客
==不安装报错
No module named ‘librosa‘
==
先安装 (晚上安装时速度很慢,简易早上6点半左右安装,速度超快)
pip install librosa
--

===
出现问题解决
==

===
===
已经解决
(在另外一个Python 相关 目录下面进行安装)
c:\Users\UserName\AppData\Roaming\Python\Python38>pip install librosa
===只是一个相关的目录

==
再运行
import librosa
import numpy as np
audio_file = './小诗仙.mp3'
audio_signal, sample_rate = librosa.load(audio_file )
spectrum = np.fft.fft(audio_signal)
threshold = 0.1
spectrum_filtered = spectrum * (np.abs(spectrum) >= threshold)
audio_signal_filtered = np.fft.ifft(spectrum_filtered)
output_file = './new_output.mp3'
librosa.output.write_wav(output_file, audio_signal_filtered.real, sample_rate)
===
==

====

==

===
运行报错

Traceback (most recent call last):
File "./test.py", line 15, in <module>
librosa.output.write_wav(output_file , audio_signal.real, sample_rate)
File "C:\Users\xxxxxxxxxx\AppData\Roaming\Python\Python38\site-packages\lazy_loader\__init__.py", line 94, in __getattr__
raise AttributeError(f"No {package_name} attribute {name}")
AttributeError: No librosa attribute output
===
====
===
最新有效代码
===
import librosa
import soundfile as sf
import numpy as np
audio_file = './小诗仙.mp3'
audio_signal, sample_rate = librosa.load(audio_file )
spectrum = np.fft.fft(audio_signal)
threshold = 0.1
spectrum_filtered = spectrum * (np.abs(spectrum) >= threshold)
audio_signal_filtered = np.fft.ifft(spectrum_filtered)
output_file = './new_output.mp3'
sf.write(output_file, audio_signal_filtered.real, sample_rate)
===
去掉杂音后,大小变小

==
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)