声音.wav文件的读取与保存

 声音.wav文件的读取与保存-示例代码:

import librosa
import librosa.display
import numpy as np
from scipy.io.wavfile import writedef split_wav():# 读取音频文件audio_data, sample_rate = librosa.load(input_file, sr=None)  # sr不指定为None,就会读取为22050Hzprint("文件的采样率为: {}Hz".format(sample_rate))# 计算音频时长total_duration = len(audio_data) / sample_rateprint("文件的总时长为: {}S".format(total_duration))# 分割点位置start_time = 90  # 录音开始的时长minend_time = 120  start_sample = int(start_time * 60 * sample_rate)end_sample = int(end_time * 60 * sample_rate)# 分割音频audio_part = audio_data[start_sample:end_sample]# 保存分割后的音频文件# 为了符合 WAV 文件的格式,我们需要将浮点数表示的归一化音频数据转换为整数。乘以 32767 是为了将范围从 [-1, 1] 映射到 [-32767, 32767],并且将浮点数转换为整数。write(output_file1, sample_rate, np.int16(audio_part * 32767.0))write(output_file2, sample_rate, audio_part)return audio_part# 文件地址
input_file = r"C:\Users\85007\Desktop\test_wave\yaofeijie_20231101210759.wav"
output_file1 = r"C:\Users\85007\Desktop\test_wave\yaofeijie_20231101210759_part1.wav"
output_file2 = r"C:\Users\85007\Desktop\test_wave\yaofeijie_20231101210759_part2.wav"audio_part = split_wav()
print("切割音频文件结束")# 对比实验
print("读取原始文件的数值为: {}".format(audio_part[:5]))
temp_data1, sample_rate = librosa.load(output_file1, sr=None)
print("乘了32767文件的数值为: {}".format(temp_data1[:5]))
temp_data2, sample_rate = librosa.load(output_file2, sr=None)
print("未乘32767文件的数值为: {}".format(temp_data2[:5]))

ChatGPT声称:为了符合 WAV 文件的格式,我们需要将浮点数表示的归一化音频数据转换为整数。乘以 32767 是为了将范围从 [-1, 1] 映射到 [-32767, 32767],并且将浮点数转换为整数。

后续实验证明,GPT是错误的!

上述代码的运行结果

 测试结论

(1)通过librosa.load读取wav文件,会自动把数值缩放到【-1,1】。

(2)不要听ChatGPT胡说八道,乘了32767后反而把新保存的结果和原始结果不一样。

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

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

相关文章

Ubuntu 常用命令之 gunzip 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 gunzip是一个在Ubuntu系统下用于解压缩文件的命令。它主要用于解压.gz格式的文件。这个命令是gzip命令的反向操作,gzip用于压缩文件,而gunzip则用于解压缩文件。 gunzip命令的参数有 -c 或 --stdout 或 -…

算法专题三:二分算法

二分法 零.二分查找1.思路一:朴素二分 一.在排序数组中第一个和最后一个数:1.思路一:GIF题目解析 二.算法X的平方根:1.思路一:暴力哈希2.思路二:二分区间GIF题目解析 三.搜索插入位置:1.思路一&…

中国防风固沙量数据

中国防风固沙量数据 防风固沙是生态系统(如森林、草地等)通过其结构与过程减少由于风蚀所导致的土壤侵蚀的作用,是生态系统提供的重要调节服务之一。防风固沙功能主要与风速、降雨、温度、土壤、地形和植被等因素密切相关。以防风固沙量&…

vue创建项目

1、配置node环境 Node.js 安装配置-----菜鸟教程 npm 使用介绍-----菜鸟教程 淘宝镜像 淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。 可以使用淘宝定制的 cnpm (gzip …

21 Vue3中使用v-for遍历对象数组

概述 使用v-for遍历对象数组在真实的开发中也属于非常常见的用法,需要重点掌握。 因为目前流行的是前后端分离开发,在前后端分离开发中,最常需要处理的就是对象数组类型的数据了。 比如,将员工信息渲染到表格中。 这节课我们就…

3d max高质量渲染时,硬件的要求有什么?

渲染过程中,想要追求,效果图高质量渲染,高效率渲染的过程中,3d max高清渲染不只是三维软件的一个要求,对于本地计算机的硬件要求配置也是很重要的。 今天,小编带大家来聊聊3d max高质量渲染过程中&#xff…

solidity 重入漏洞

目录 1. 重入漏洞的原理 2. 重入漏洞的场景 2.1 msg.sender.call 转账 2.2 修饰器中调用地址可控的函数 1. 重入漏洞的原理 重入漏洞产生的条件: 合约之间可以进行相互间的外部调用 恶意合约 B 调用了合约 A 中的 public funcA 函数,在函数 funcA…

使用 Node.js 删除文件 - 完整步骤教程

引言 在 Node.js 中处理文件尤其是移除文件,对于维护高效应用程序至关重要。储存和秩序当道的今天,删除不必要或冗余的文件能力显得尤为关键。本文深入探讨你会想要使用这个强大功能的时刻和原因,并通过各种案例展示了这个概念,同…

【C#】.net core 6.0 通过依赖注入注册和使用上下文服务

给自己一个目标,然后坚持一段时间,总会有收获和感悟! 请求上下文是指在 Web 应用程序中处理请求时,包含有关当前请求的各种信息的对象。这些信息包括请求的头部、身体、查询字符串、路由数据、用户身份验证信息以及其他与请求相关…

案例系列:营销模型_客户细分_无监督聚类

案例系列:营销模型_客户细分_无监督聚类 import numpy as np # 线性代数库 import pandas as pd # 数据处理库,CSV文件的输入输出(例如pd.read_csv)/kaggle/input/customer-personality-analysis/marketing_campaign.csv在这个项…

KoPA: Making Large Language Models Perform Better in Knowledge Graph Completion

本来这个论文用来组会讲的,但是冲突了,没怎么讲,记录一下供以后学习。 创新点 按照我的理解简单概述一下这篇论文的创新点 提出使用大模型补全知识图谱,并且融合知识图谱的结构信息提出一个新的模型KoPA模型,采用少…

JavaCV音视频开发宝典:UDP局域网组播推流,多播推流,局域网多网段推流,使用UDP方式推送TS组播流,实现UDP一对多组播

《JavaCV音视频开发宝典》专栏目录导航 《JavaCV音视频开发宝典》专栏介绍和目录 ​ 前言 在之前文章中我们已经实现rtp点到点传输JavaCV音视频开发宝典:rtp点到点音视频传输(一对一音视频直播)和rtp广播JavaCV音视频开发宝典:rtp广播方式发送TS流音视频传输(一对多音视…

Linux宝塔面板本地部署Discuz论坛发布到公网访问【无需公网IP】

文章目录 前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 前言 Crossday Discuz! Board(以下简称 Discuz!)是一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上&a…

算法训练营Day23(二叉树)

669. 修剪二叉搜索树 669. 修剪二叉搜索树 - 力扣(LeetCode) 这里本身不难,更多的是递归的技巧,在脑子里模拟一遍递归逻辑,记忆好模板就好了。 class Solution {public TreeNode trimBST(TreeNode root, int low, int…

uni-app学习记录

uni-app官网学习记录 uni-app注意点记录 页面跳转注意事项 navigateTo, redirectTo 只能打开非 tabBar 页面。switchTab 只能打开 tabBar 页面。reLaunch 可以打开任意页面。不能在首页 onReady 之前进行页面跳转。 页面通讯 // 发起页面uni.$emit(update,{msg:页面更新})//…

软件设计模式:六大设计原则

文章目录 前言一、开闭原则二、里氏替换原则三、依赖倒转原则四、接口隔离五、迪米特法则六、合成复用原则总结 前言 在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据6条原则来开发程序&am…

爬虫scrapy中间件的使用

爬虫scrapy中间件的使用 学习目标: 应用 scrapy中使用间件使用随机UA的方法应用 scrapy中使用代理ip的的方法应用 scrapy与selenium配合使用 1. scrapy中间件的分类和作用 1.1 scrapy中间件的分类 根据scrapy运行流程中所在位置不同分为: 下载中间件…

idea好用的十个插件分享,用后敲代码的速度提升好几倍,亲测有效

简介: 在日常的开发工作中,我发现了一些非常实用的 IntelliJ IDEA 插件,它们能够显著提升开发效率,让编码变得更加轻松愉快。今天,我想分享给大家我的个人推荐,希望对你的开发工作有所帮助! L…

Postman调用HTTPS需要配置

1、配置—Settings 2、General—SSL cert…:改成OFF 3、添加请求IP 欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感谢。觉得本文章有帮助到的,点个赞呗

P4316 绿豆蛙的归宿

题意:给出一个有向无环图,对于每个点,一共有k条出边,则选择每条边的概率相等,都为1/k,问从点1走到点n的期望路径长度 思路:有向无环图,考虑拓扑,本题不同于P6154 游走&a…