MacOS安装PyAudio

news2025/1/10 21:13:29
brew install portaudio
pip install pyaudio

docs:https://people.csail.mit.edu/hubert/pyaudio/docs/

pyaudio对象的open()方法:

  • rate:取样频率
  • channels:声道数
  • format:取样值的量化格式 (paFloat32, paInt32, paInt24, paInt16, paInt8 …)
  • input:输入流标志,如果为True的话则开启输入流
  • output:输出流标志,如果为True的话则开启输出流
  • input_device_index:输入流所使用的设备的编号,如果不指定的话,则使用系统的缺省设备
  • output_device_index:输出流所使用的设备的编号,如果不指定的话,则使用系统的缺省设备
  • frames_per_buffer:底层的缓存的块的大小,底层的缓存由N个同样大小的块组成
  • start:指定是否立即开启输入输出流,缺省值为True

pyaudio.paFloat32:每帧4个字节,如果channels=2,那么wave_write()应该设置setsampwidth(8)

pyaudio.paInt16每帧2个字节,如果channels=2,那么wave_write()应该设置setsampwidth(4);若channels=1,setsampwidth(2)


音频信号是模拟信号,我们需要将其保存为数字信号,才能对语音进行算法操作,WAV是Microsoft开发的一种声音文件格式,通常被用来保存未压缩的声音数据。

  • 通道数:同时有个几个设备在进行音频的采样;
  • 采样频率: 每秒从连续信号中提取并组成离散信号的采样个数,用赫兹(Hz)来表示。每秒内对声音信号采样样本的总数目,44100Hz采样频率意味着每秒钟信号被分解成44100份。换句话说,每隔1/144100秒就会存储一次,如果采样率高,那么媒体播放音频时会感觉信号是连续的;
  • 量化位数(Bit depth):也称为“位深”,每个采样点中信息的比特(bit)数。1 byte等于8 bit;
  • 比特率(Bit rate): 每秒处理多少个Bit。比如一个单声道,用44.1KHz/16Bit的配置来说,它的比特率就为44100161=705600,单位是bit/s(或者bps)。在对音频进行压缩时,越高的比特率,其音质也就越好;
  • 采样位数(采样格式):如何描述每个采样点呢?用什么方法独立每个采样点值的区别呢?也就是如何度量每个采样点,而这正是采样格式出现的意义。通常使用16bit(2字节),也就是2的16次方,共有65536个不同的度量值,这样采样位数越高,音频度量化的就越精细,音质同样也就越高;
  • 采样个数,对于采样频率,采样频率是一秒采样的个数,例如48000HZ,每秒采样个数为48000,44100HZ,每秒采样个数为44100;(从一帧音频帧的播放时长中就可以看出,范围在21ms,24ms,26ms范围左右,而视频一帧的时长一般是40ms,人体对图片变化的感知也在20-60ms内感知良好,采样数固定,是在考虑人眼,与音视频同步的方便程度,音频压缩的质量等方面因素后,最终确定下来的采样数。)
  • 例如1s采样了10个采样点,那么需要区分这10个采样点,就需要给它一个范围值区分,一般以2字节16位的来保存这个值,所以既然每个采样点占2字节,那么所有采样点的总字节=采样个数 x 其所占字节数。即10 x 2 = 20。若为双通道采样,那么就是2 x 10 x 2 = 40。
  • 一帧音频的大小(字节) = 通道数 x 采样个数 x 采样位数
  • 一帧播放时间(毫秒) = sample样本数 * 1000 / 采样率 

语音信号是一个非平稳的时变信号,但语音信号是由声门的激励脉冲通过声道形成的,而声道(人的口腔、鼻腔)的肌肉运动是缓慢的,所以“短时间”(10~30ms)内可以认为语音信号是平稳时不变的。由此构成了语音信号的“短时分析技术”。在短时分析中,将语音信号分为一段一段的语音帧,每一帧一般取10~30ms,研究就建立在每一帧的语音特征分析上。

通常对信号截断、分帧需要加窗,因为截断都有频域能量泄露,而窗函数可以减少截断带来的影响。

在分帧中,相邻两帧之间会有一部分重叠,帧长(wlen) = 重叠(overlap)+帧移(inc),如果相邻两帧之间不重叠,那么由于窗函数的形状,截取到的语音帧边缘会出现损失,所以要设置重叠部分。

 

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

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

相关文章

Node.js Event Loop 的三大常见理解误区和正确概念辨析

Node.js Event loop 监控器。高的 frequency 和低的持续时间是最理想的 event loop 状态。 上图显示三点半到五点半之间,event loop 的 frequency 骤降,然后 duration 居高不下。 Node.js 是一个基于事件的平台。 这意味着在 Node 中发生的一切都是对…

Windows无法读取驱动器中的光盘

一. 问题 在网上搜索了很多方法来解决下图的问题,一直失败。浪费了很多时间。后来发现,网上的方案可能恰恰是相反的思路。所以,留下个笔记吧。 二. 方法 1.打开本地服务管理器。按键盘的”WinR"组合键 打开“运行”窗口。输入“Serv…

汽车美容店会员管理系统开发步骤_分享会员系统小程序的优势

洗车店/汽车维修保养带店如何打开线上市场,获得更多目标用户呢? 除了服务的内容足够专业、优质以外,引入会员系统小程序就是关键一步。 汽修店为什么要做会员系统小程序?来看看行业现状: 1.竞争激烈:到处都…

Spring Boot与Web开发

Spring Boot与Web开发 SpringMVC快速使用 1.基于restful http接口 的CURD 2.调用rest http接口 通过RestTemplate调用 3.通过postman调用 通过MockMvc测试 4.通过swagger调用 添加依赖 添加swagger配置类 注意:访问的地址是:http://localhost:80…

【Java基础篇】基础知识易错集锦

在学习的路上,我们只记得学习新的知识,却忽略了一切新知识都是在旧知识的基础上;努力奔跑的过程中,也要记得常回头看看; 题目展示: 解析: abstract是抽象的意思,在java中&#xff0…

Python爬虫实战,requests+pyecharts模块,Python实现新冠疫情数据可视化(附源码)

前言 今天给大家介绍的是Python爬取新冠疫情数据并实现数据可视化,在这里给需要的小伙伴们代码,并且给出一点小心得。 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样的纯文本数据爬取的…

牛客网Mysql题目-SQL进阶篇 SQL 126-155

前言 这篇是进阶sql题目的记录,由于上一篇文章已经写将近一万字,有点长,就把剩下的再开一篇,免得总是重新发布 SQL126 平均活跃天数和月活人数 本题目要求统计,并且是多行,就需要使用group by查询 首先需…

kafka可靠性保证

1、概念 创建Topic的时候可以指定--replication-factor 3 ,表示分区的副本数,不要超过broker的数量。Leader是负责读写的节点,而其他副本则是Follower。Producer只把消息发送到Leader,Follower定期地到Leader上Pull数据。ISR是Le…

基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

[附源码]计算机毕业设计的家政服务平台Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Linux系统(Centos7)了解DNS服务

配置与管理DNS服务器 项目导入 某高校组建了校园网,为了使校园网中的计算机简单快捷地访问本地网络及Intemet上的资源,需要在校园网中架设 DNS 务器,用来实现将域名转换成IP地址的功能。在完成该项目之前,首先应当确定网络中D…

基于多目标优化算法的电力系统分析(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🎉作者研究:🏅🏅🏅主要研究方向是电力系统和智能算法、机器学…

Volatile关键字的作用

专栏链接:多线程相关知识详解 编译器有优化功能,会对写好的代码进行优化,在多线程里面可能就会对代码的执行逻辑进行修改,就可能会产生bug 例如下面这个代码: import java.util.Scanner;class Counter{public static int count 0; }public class Demo {public static void …

RK3568平台开发系列讲解(系统优化篇)系统卡顿了怎么办

🚀返回专栏总目录 文章目录 一、卡顿问题分析指标二、Android 卡顿排查工具沉淀、分享、成长,让自己和他人都能有所收获!😄 📢对用户来说,内存占用高、耗费电量、耗费流量可能不容易被发现,但是用户对卡顿特别敏感,很容易直观感受到。另一方面,对于开发者来说,卡顿…

windows vs2019 编译glib2

1、安装meson pip install meson 确认是否安装成功,命令行输入: meson --version 0.60.0 2,安装ninja 先下载ninja:Releases ninja-build/ninja GitHub 加压后,把ninja.exe所在目录加入环境变量 确认是否安装成功&#xf…

英文外链怎么做效果好?

google英文外链怎么做效果好? 答案是:建设GPB外链 正确的外链建设行为追求的是高质量的外链。 对于高质量外链的定义:优质的外链是来自搜索引擎和搜索者都信任的权威网站,网站越值得信赖、越权威,链接质量就越好 网…

【ElementUI】树形控件 el-tree

目录 公共参数 基础用法 最后一层不可选择 思路一:第三层设置disable 思路二:利用样式隐藏掉第三层的选框 最后一层展示复选框 转载请注明:宾果的救星的博客_CSDN博客 公共参数 treeContent:[{name: 1,id: 1,level: 1,children: [{na…

HPPH偶联金属/小分子抑制剂/上转换纳米颗粒/点击化学/核壳磁性纳米粒子的方法

小编这里分享了科研内容HPPH偶联金属/小分子抑制剂/上转换纳米颗粒/点击化学/核壳磁性纳米粒子的方法,来看! 点击输入图片描述(最多30字) 制备光敏剂HPPH的方法: (1) 叶绿素-a的提取;(2)脱镁叶绿酸-a甲酯的制备;(3)焦…

ADI Blackfin DSP处理器-BF533的开发详解20:4.3寸LCD液晶屏的设计与应用(含源码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 ADSP-EDU-BF53x 开发板上的液晶屏为 480*272 尺寸真彩 TFT 液晶屏,其型号为 WXCAT43-TG3#001R。 WXCAT43-TG3#001R 为 24B…

C#开发如何加载64位版本易景地球 EviaEarth的三维控件

易景地球6.1.x后续的版本不再出32位的系统,只有64位版本的系统。 在c#开发中,form又如何将EviaEarth三维视窗控件放到上去呢? 有办法 以vs2019开发环境为例,新建工程后,添加引用文件:AxInterop.EviaEart…