python音频处理
第一步:先下载ffmpeg--》下载链接
下载好解压到某个文件夹,并将该文件夹中的bin目录添加到系统path。
第二步:安装pydub
pip3 install pydub
# -*- coding: utf-8 -*-
# @Author : FELIX
# @Date : 2018/5/18 15:13 from pydub import AudioSegment sound=AudioSegment.from_file("aaa.mp3","mp3")
sound2=AudioSegment.from_file('bbb.mp3','mp3')
# 把一个多声道音频分解成两个单声道
# index[0]为左声道
# index[1]为右声道
# sounds=sound.split_to_mono()
# print(sounds) # 将两个单声道合并成多声道
# stereo_sound = AudioSegment.from_mono_audiosegments(sounds[0], sounds[1]) # # 取得音频的分贝数
# loudness = sound.dBFS
# print(loudness)
# # 获取音频音量大小,该值通常用来计算分贝数(dB= 20×lgX)
# loudness = sound.rms
# print(loudness)
# # 取得音频的声道数
# channel_count = sound.channels
# print(channel_count)
# # 取得音频文件采样宽度
# bytes_per_sample = sound.sample_width
# print(bytes_per_sample)
#
# # 取得音频文件采样频率
# frames_per_second = sound.frame_rate
# print(frames_per_second)
# #取得音频文件帧宽度
# bytes_per_frame = sound.frame_width
# print(bytes_per_frame)
#
# #取得音频中的最大振幅
# normalized_sound = sound.apply_gain(-sound.max_dBFS)
# print(normalized_sound)
# #取得音频的持续时间,同 len()
# print(sound.duration_seconds)
# print((len(sound) / 1000.0))
# #取得音频数据
# raw_audio_data = sound.raw_data
# # print(raw_audio_data)
# #取得音频的frame数量
# number_of_frames_in_sound = sound.frame_count()
# number_of_frames_in_200ms_of_sound = sound.frame_count(ms=200)
# print(number_of_frames_in_sound)
# print(number_of_frames_in_200ms_of_sound) # 拼接sound1与sound2,返回一个新的AudioSegment实例
# cossfade:交叉渐变间隔 ms
# no_crossfade1 = sound.append(sound2, crossfade=5000)
# print(no_crossfade1)
# no_crossfade1.export(r'cc.wav',format='wav') # 输出 # 把sound2覆盖在sound1上,两个音频文件会叠加,如果sound2较长,则会被截断。
# 参数:
# position:覆盖起始位置(毫秒)
# loop:是否循环覆盖(true/false)
# times:重复覆盖次数(默认1)
# gain_during_overlay:调整被覆盖音频的音量(eg,-6.0)
# played_togther = sound.overlay(sound2)
# # sound2_starts_after_delay = sound.overlay(sound2, position=5000)
# # volume_of_sound1_reduced_during_overlay = sound.overlay(sound2, gain_during_overlay=-8)
# # sound2_repeats_until_sound1_ends = sound.overlay(sound2, loop=True)
# # sound2_plays_twice = sound.overlay(sound2, times=2)
# played_togther.export(r'dd.wav',format='wav') # 输出 #调整音量大小
# louder_via_method = sound.apply_gain(+3.5) # 提高
# quieter_via_method = sound.apply_gain(-5.7) # 减小 #淡出
# 参数:
# to_gain:淡出结束时音频音量下降到的分贝数
# from_gain:设置淡出前的所有音频分贝数
# start:淡出的起始位置
# end:淡出的结束位置
# duration:淡出持续时间
# fade_in_the_hard_way = sound.fade(from_gain=-120.0, start=0, duration=5000)
# fade_out_the_hard_way = sound.fade(to_gain=-120.0, end=0, duration=5000) # 反向输出
# sound.reverse().export(r'ee.wav',format='wav') # 输出 # 调整多声道音频的左右声道音量
# 如果单声道音频调用此方法,它将先被转换为多声道
# stereo_balance_adjusted = sound.apply_gain_stereo(-6, +2)
#
# #左右声道平衡,按百分比增大一边,减小另一边
# # pan the sound 15% to the right
# panned_right = sound.pan(+0.15)
# # pan the sound 50% to the left
# panned_left = sound.pan(-0.50)
#
#
# # 基于DSP的渲染
# # 产生一个反向信号的副本,来消除反相位波,或者降低噪音
# sound.invert_phase()
python音频处理的更多相关文章
- 『开发技巧』Python音频操作工具PyAudio上手教程
『开发技巧』Python音频操作工具PyAudio上手教程 0.引子 当需要使用Python处理音频数据时,使用python读取与播放声音必不可少,下面介绍一个好用的处理音频PyAudio工具包. ...
- < python音频库:Windows下pydub安装配置、过程出现的问题及常用API >
< python音频库:Windows下pydub安装配置.过程出现的问题及常用API > 背景 刚从B站上看过倒放挑战之后也想体验下,心血来潮一个晚上完成了基本的实现.其中倒放与播放部分 ...
- Python音频操作+同时播放两个音频
对于python而言,音频的操作可以使用pygame包中的sound 和 music对象,本博客主要讲解这两个对象. 1.sound对象 Sound对象适合处理较短的音乐,如OGG和WAV格式的音频文 ...
- python音频处理用到的操作
作者:桂. 时间:2017-05-03 12:18:46 链接:http://www.cnblogs.com/xingshansi/p/6799994.html 前言 本文主要记录python下音频 ...
- Python音频处理(一)音频基础知识-周振洋
1.声音音频基础知识 (1)声音是由震动产生,表现为波的形式.波有频率,振幅等参数.对于声波而言:频率越大,音调越高,反之越低.振幅越大,声音越大,反之越小. (2)采样率,帧率:波是连续(无穷)的, ...
- python音频处理相关类库
一.eyeD3 以下是eyed3的官方介绍 eyeD3 is a Python tool for working with audio files, specifically mp3 files co ...
- 使用Python音频双通道分离
某些音频是双方对话,有可能需要对音频作通道的分离. 示例代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- """ 音 ...
- python 音频可视化
代码整理好放在 github 上了: https://github.com/darkchii/visualize bilibili 演示视频:https://www.bilibili.com/vide ...
- Python音频处理基础知识,这不是轻轻松松~~~
大家好鸭,我是小熊猫 咱今天来讲一讲音频处理的基础知识上才艺~~~ 1.声音的基础 2.python读取.wav音频 欢迎加入白嫖Q群:660193417### import wave import ...
- python这不是有手就行?——python音频处理基础知识
大家应该都知道声音的基础吧? 啊不知道当我没说吧~~~ 1.声音的基础 2.python读取.wav音频 Python学习交流Q群:660193417#### import wave import s ...
随机推荐
- shell使用ps -ef|grep xxx时不显示grep xxx进程的方法
在使用ps -ef|grep xxx时会将grep xxx的进程也带出来, 而在脚本中如果想要截取此命令结果的一部分,则grep xxx的进程会显得多余,如下: [root@localhost ~]# ...
- servlet报错“严重: Allocate exception for servlet 类名java.lang.ClassNotFoundException: 路径. 类名”可能原因
1.WEB-INF下web.xml中<servlet-class>路径错误,正确路径为 <servlet-class>包名.类名</servlet-class> 2 ...
- 验证组件FluentValidation的使用示例
官方文档:https://fluentvalidation.net/start#complex-properties 示例Demo:https://github.com/DavideYang125/F ...
- vue项目,子页面刷新404问题
翻车事故分析: 因需对项目整体优化,调整过程,采用了路由的history模式,本地项目运行,刷新子页面都是OK的. 部署到测试服务器,正常跳转都ok,但刷新子页面就会出现404,请求变成了get,没有 ...
- vue打包dist文件时,图片找不到
1.vue打包dist文件时,图片找不到,无法像在本地一样查看 问题描述: 本地代码:<div class="icon"><img :src="'../ ...
- db2数据库的备份与还原
前言: 数据备份的重要性: 提高系统的高可用性和灾难可恢复性:(在数据库系统崩溃的时候,没有数据库备份怎么办!) 使用数据库备份还原数据库是数据库系统崩溃时提供数据恢复最小代价的最优方案:(总不能让客 ...
- 自己手写实现Dubbo
目录 dubbo 简单介绍 为什么手写实现一下bubbo? 什么是RPC? 接口抽象 服务端实现 注册中心 消费者端: dubbo 简单介绍 dubbo 是阿里巴巴开源的一款分布式rpc框架. 为什么 ...
- DataSnap初步二
转:https://blog.csdn.net/a00553344/article/details/51670486 1. 一个典型的DataSnap服务器至少需要三个控件: TDSServer: D ...
- 遍历二叉树 - 基于栈的DFS
之前已经学过二叉树的DFS的遍历算法[http://www.cnblogs.com/webor2006/p/7244499.html],当时是基于递归来实现的,这次利用栈不用递归也来实现DFS的遍历, ...
- Python单例模式(Singleton)的N种实现
很多初学者喜欢用全局变量,因为这比函数的参数传来传去更容易让人理解.确实在很多场景下用全局变量很方便.不过如果代码规模增大,并且有多个文件的时候,全局变量就会变得比较混乱.你可能不知道在哪个文件中定义 ...