使用Python完成音频提取

前言

在日常生活中,有好听的翻唱视频或音乐视频可以将其音频分离保存到网易云或QQ音乐中随时听,然而大部分的音频分离软件需要下载和安装,使用起来极其笨重,本文提供了一种提取音频的简便方法。


提示:本文出现的代码在Python环境下安装完相应的库后可以直接使用

一、🎋环境准备以及编写其核心代码

1.安装第三方库moviepy

打开Cmd或者PowerShell输入一下命令安装库

shell 复制代码
pip install moviepy

2.核心代码

代码如下(示例):可直接使用

python 复制代码
import moviepy.editor as mp
my_clip = mp.VideoFileClip("C:\\Users\\ME08I\\Desktop\\1.mp4")#ci此处为视频的绝对路径。
my_clip.audio.write_audiofile('./test.mp3')#此处为输出的音频名称和格式

注意:Python中'\'符号会被识别为转义字符,所以要使用'\\'

二、🎠代码改进

提示:代码中引入的库,除了moviepy库,其它的都是python3自带的库,直接引入就好

1.引入tkinter

过后在启动脚本时可以直接使用窗口来选择文件,而不需要修改代码中的路径,同时直接使选择的视频文件名为抽离的音频文件名。

python 复制代码
import os
import moviepy.editor as mp
import tkinter as tk
from tkinter import filedialog

#关闭黑窗口
root = tk.Tk()
root.withdraw()

def divest() -> None:
    """
    音频分离核心功能
    :return: None
    """
    try:
        filePath = select_single_file()
        my_clip = mp.VideoFileClip(filePath)
        # 切割文件名和后缀名
        fileName = os.path.basename(filePath).split(".")[0]
        if os.path.exists(f'{fileName}.mp3'):
            print("文件已存在于当前目录,请重新选择!")
            divest()
        else:
            my_clip.audio.write_audiofile(f'{fileName}.mp3')
    except Exception as e:
        print(e)


def select_single_file() -> str:
    """
    选择一个文件
    :return: 所选文件的绝对路径
    """
    filePath = filedialog.askopenfilename()
    return filePath

if __name__ == '__main__':
    divest()

2.实现效果

  1. 执行脚本文件
  2. 选择视频文件
  3. 完成分离
  4. 生成的音频文件在脚本的路径下,路径完全可以自己修改,比如将生成的音频文件生成在与视频文件相同的目录下。

总结

现如今大部分的视频剪辑软件都有一键音频分离的功能,但是,视频软件都极其的笨重,从打开到初始化都可能需要几十秒,而使用Python的moviepy库仅需3行代码便可完成分离,改进后的代码在加入了抓错和窗口选择后,完全可以当作一款小工具使用,望收藏

相关推荐
hef2882 小时前
如何生成特定SQL的AWR报告_@awrsqrpt.sql深度剖析单条语句性能
jvm·数据库·python
Jinkxs3 小时前
从语法纠错到项目重构:Python+Copilot 的全流程开发效率提升指南
python·重构·copilot
技术专家3 小时前
Stable Diffusion系列的详细讨论 / Detailed Discussion of the Stable Diffusion Series
人工智能·python·算法·推荐算法·1024程序员节
段一凡-华北理工大学3 小时前
【大模型+知识图谱+工业智能体技术架构】~系列文章01:快速了解与初学入门!!!
人工智能·python·架构·知识图谱·工业智能体
IT小Qi3 小时前
iperf3网络测试工具
网络·python·测试工具·信息与通信·ip
以神为界3 小时前
Python入门实操:基础语法+爬虫入门+模块使用全指南
开发语言·网络·爬虫·python·安全·web
xcjbqd03 小时前
Python API怎么加Token认证_JWT生成与验证拦截器实现
jvm·数据库·python
io_T_T3 小时前
如何调用google api 进行开发(使用免费版本)
python
广师大-Wzx4 小时前
一篇文章看懂MySQL数据库(下)
java·开发语言·数据结构·数据库·windows·python·mysql
hef2885 小时前
golang如何使用range over func_golang range over func迭代器使用方法
jvm·数据库·python