(Python) Python语音处理工具包AudioSegment的基本使用

1. AudioSegment库的使用

from pydub import AudioSegment
# 可以看到读取文件有很多方式
# 有直接from_file(),也有from_mp3()、from_wav()
# 下面的两个读取语句是等价的:
sound=AudioSegment.from_file("aaa.mp3","mp3")
sound=AudioSegment.from_mp3("aaa.mp3")

2. 获取音频文件信息

  #取得音频的声道数channel_count = sound.channelsprint(channel_count)#取得音频文件采样频率frames_per_second = sound.frame_rateprint(frames_per_second)#取得音频的持续时间,同 len()print(sound.duration_seconds)print((len(sound) / 1000.0))#取得音频数据raw_audio_data = sound.raw_data   #这是bytes类型的wav_data=sound.get_array_of_samples()   #这是array类型的数据print(raw_audio_data)#取得音频文件帧宽度bytes_per_frame = sound.frame_widthprint(bytes_per_frame)#取得音频中的最大振幅normalized_sound = sound.apply_gain(-sound.max_dBFS)print(normalized_sound)#取得音频的分贝数loudness = sound.dBFSprint(loudness)#获取音频音量大小,该值通常用来计算分贝数(dB= 20×lgX)loudness = sound.rmsprint(loudness)

3. 音频文件修改

# 语音切割,以毫秒为单位
start_time=0
end_time=2000
part = sound[start_time:end_time]
#调整音量大小
louder_via_method = sound.apply_gain(+3.5) # 提高
quieter_via_method = sound.apply_gain(-5.7) # 减小
#调整多声道音频的左右声道音量
#如果单声道音频调用此方法,它将先被转换为多声道
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)

4. 文件保存

#语音文件切割
part = sound[start_time:end_time]
#定义切割文件名称
data_split_filename='save.wav')
#保存切割文件
part.export(data_split_filename, format="wav")

5.  AudioSegment中mp3转wav文件并转换采样频率fs

from pydub import AudioSegmentdef mp3_to_wav(mp3_filename,wav_filename,frame_rate):'''调整语音文件的编码  mp3 --> wav:param mp3_filename: mp3文件名称:param wav_filename: wav文件名称:param frame_rate: 采样频率:return:'''mp3_file = AudioSegment.from_mp3(file=mp3_filename)mp3_file.set_frame_rate(frame_rate).export(wav_filename,format="wav")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/161442.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JUC】原子操作类及LongAddr源码分析

文章目录 1. 十八罗汉2. 原子类再分类2.1 基本类型原子类2.2 数组类型原子类2.3 引用类型原子类2.4 对象的属性修改原子类2.5 原子操作增强类 3. 代码演示及性能比较:4. LongAddr原理5. LongAddr源码分析5.1 add()5.2 longAccumulate()5.3 sum() 6. 小总结6.1 Atomi…

C++算法前缀和的应用:分割数组的最大值的原理、源码及测试用例

分割数组的最大值 相关知识点 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例:付视频课程 二分 过些天整理基础知识 题目 给定一个非负整数数组 nums 和一个整数 m ,你需要将这个数组分成 m 个非空的连续子数组。 设计一个算法…

VsCode通过Git History插件查看某个页面的版本修改记录

首先需要安装插件Git History 方式一:通过 点击File History 查看某个文件变更;即通过commit的提交记录去查看某个文件的修改 方式二:通过点击选择toggle File Blame 查看当前页面每一行所有提交修改记录

基于nodejs+vue小型企业银行账目管理系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

毫米波雷达模块技术革新:在自动驾驶汽车中的前沿应用

随着自动驾驶技术的快速发展,毫米波雷达模块的技术革新成为推动这一领域的关键因素之一。本文将深入研究毫米波雷达模块技术的最新进展,并探讨其在自动驾驶汽车中的前沿应用。 毫米波雷达模块的基本原理 解释毫米波雷达模块的基本工作原理,强…

springboot+html实现简单注册登录

前端&#xff1a; register.html <!DOCTYPE html> <html lang"en" > <head><meta charset"UTF-8"><title>register</title><link rel"stylesheet" type"text/css" href"/css/style.css&…

Unity Ugui 顶点颜色赋值

一、效果图 如下图&#xff1a;图片和文字的颜色都可以渐变&#xff0c;透明度也可以渐变。 原理分析&#xff1a; 不管是图片Image或是文本Text&#xff0c;它们都是网络Mesh来渲染网格是由很多三角形组成&#xff0c;那么我们根据坐标修改三角形的颜色即可实现。 工程源码…

嵌入式面试经典30问

嵌入式面试经典30问 很多同学说很害怕面试&#xff0c;看见面试官会露怯&#xff0c;怕自己的知识体系不完整&#xff0c;怕面试官考的问题回答不上了&#xff0c;所以今天为大家准备了嵌入式工程师面试经常遇到的30个经典问题&#xff0c;希望可以帮助大家提前准备&#xff0…

使用navicat查看类型颜色

问题描述&#xff1a; 最近遇到一个mongodb的数据问题。 在date日期数据中&#xff0c;混入了string类型的数据&#xff0c;导致查询视图报错&#xff1a; $add only supports numeric or date types解决办法&#xff1a; 使用类型颜色工具。 找到在last_modified_date字段中…

iOS 中,isa 指针

每个对象都有 isa 指针&#xff0c;指向对象所属的类。例如类 NSString 其实是类对象。 类对象产生于编译期&#xff0c;单例。 类对象有 isa 指针指向对应元类&#xff0c;元类&#xff08;metaclass&#xff09;中保存了创建类对象以及类方法所需的所有信息。 struct objc_…

Qt事件传播机制 day8

Qt事件传播机制 day8 事件的接受和忽略 当空间忽略事件时&#xff0c;事件会继续往上传播&#xff0c;这里的传播指传播给父组件QEvent有accept()函数与ignore()函数 accept()&#xff1a;本组件处理该事件&#xff0c;这个事件就不会被继续传播给其父组件ignore()&#xff1…

C/C++文件操作(细节满满,part2)

该文章上一篇&#xff1a;C/C文件操作&#xff08;细节满满&#xff0c;part1&#xff09;_仍有未知等待探索的博客-CSDN博客 个人主页&#xff1a;仍有未知等待探索_C语言疑难,数据结构,小项目-CSDN博客 专题分栏&#xff1a;C语言疑难_仍有未知等待探索的博客-CSDN博客 目录 …

儿童口腔卫生:建立健康微笑的基石

引言 儿童口腔卫生是维护健康的关键部分&#xff0c;它不仅影响口腔健康&#xff0c;还对全身健康产生必然影响。本文将探讨一些儿童口腔卫生的重要性以及儿童的关键注意事项&#xff0c;以帮助家长和监护人确保儿童拥有健康的口腔。 第一部分&#xff1a;儿童口腔卫生的重要性…

【LeetCode热题100】--31.下一个排列

31.下一个排列 思路&#xff1a; 方法&#xff1a;两遍扫描 注意到下一个排列总是比当前排列要大&#xff0c;除非该排列已经是最大的排列。我们希望找到一种方法&#xff0c;能够找到一个大于当前序列的新序列&#xff0c;且变大的幅度尽可能小。具体地&#xff1a; 我们需要…

GEO生信数据挖掘(九)WGCNA分析

第六节&#xff0c;我们使用结核病基因数据&#xff0c;做了一个数据预处理的实操案例。例子中结核类型&#xff0c;包括结核&#xff0c;潜隐进展&#xff0c;对照和潜隐&#xff0c;四个类别。第七节延续上个数据&#xff0c;进行了差异分析。 第八节对差异基因进行富集分析。…

智慧渔业方案:AI渔政视频智能监管平台助力水域禁渔执法

一、方案背景 国内有很多水库及河流设立了禁渔期&#xff0c;加强渔政执法监管对保障国家渔业权益、维护渔业生产秩序、保护渔民群众生命财产安全、推进水域生态文明建设具有重要意义。目前&#xff0c;部分地区的监管手段信息化水平低下&#xff0c;存在人员少、职责多、任务…

JavaScript反爬虫技巧详细攻略

目录 1、动态生成内容 2、使用JavaScript混淆和压缩 3、使用CORS策略 4、检测用户行为 5、利用用户代理标识符 6、图片替代和隐藏字段 7、使用反爬虫服务 在当今的web开发中&#xff0c;JavaScript已经成为了一个不可或缺的部分。然而&#xff0c;这也引发了一个问题&am…

老师如何发布考试成绩?

成绩查询页面是什么&#xff1f;如何用各种代码、Excel来实现让学生自助查询成绩&#xff1f; 作为老师&#xff0c;发布考试成绩是教学过程中的一个重要环节。传统的做法是&#xff0c;老师手动计算每个学生的分数&#xff0c;然后将成绩单打印出来并逐个发放给学生。这种方式…

MyBatisPlus(二十)防全表更新与删除

说明 针对 update 和 delete 语句&#xff0c;阻止恶意的全表更新和全表删除。 实现方式 配置BlockAttackInnerInterceptor拦截器 代码 package com.example.core.config;import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.p…

JVM第七讲:JVM 基础 - Java 内存模型详解

JVM 基础 - Java 内存模型详解 本文是JVM第七讲&#xff0c;JVM 基础 - Java 内存模型详解。主要转载自 Info 上深入理解Java内存模型, 作者程晓明。这篇文章对JMM讲的很清楚了&#xff0c;大致分三部分&#xff1a;1、重排序与顺序一致性&#xff1b;2、三个同步原语&#xff…