在python中生成正弦波声音

2023-12-06

我一直在尝试使用以下代码生成正弦波并在我的扬声器中播放它,但这听起来很糟糕。有人知道为什么吗?听起来不像正弦波。

       dur = int(FS * float(duration) / 1000)
       for i in range(dur):
         a = frequency * i * 2 * math.pi / FS
         y = math.sin(a)
         outbuf[i] = y * 0.2

p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paFloat32, channels=1, rate=44100, output=True)
stream.write(outbuf)
stream.stop_stream()
stream.close()
p.terminate()

play_sound("sine", 1000, 1, 1000)

音频缓冲区必须打包成二进制,以供 python3 使用b''.join(struct.pack还通过将角度 theta 增量常数移至循环外部来简化正弦曲线合成

import pyaudio
import numpy as np
import math
import struct

FS = 44100  #  frames per second, samples per second or sample rate

def play_sound(type, frequency, volume, duration):

   generate_sound(type, frequency, volume, duration)

def generate_sound(type, frequency, volume, duration):

    outbuf = np.random.normal(loc=0, scale=1, size=int(float(duration / 1000.0)*FS))

    if type == "sine":
        dur = int(FS * float(duration / 1000.0))
        theta = 0.0
        incr_theta = frequency * 2 * math.pi / FS # frequency increment normalized for sample rate
        for i in range(dur):
            outbuf[i] = volume * math.sin(theta)
            theta += incr_theta

    p = pyaudio.PyAudio()
    stream = p.open(format=pyaudio.paFloat32, channels=1, rate=FS, output=True)
    data = b''.join(struct.pack('f', samp) for samp in outbuf) # must pack the binary data
    stream.write(data)
    stream.stop_stream()
    stream.close()
    p.terminate()

play_sound("sine", 220, 0.8, 1000)  #  duration in milliseconds

上面的 python 在我的 Ubuntu 笔记本电脑上在各种版本(包括 ubuntu 20.04)上执行得很好...但是下面是当我运行上面的代码时输出到终端的...只是忽略下面的消息,遗憾的是这些都是正常的

python generate_sin_wave_sound.py 

ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:869:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:869:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:869:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:869:(find_matching_chmap) Found no matching channel map
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在python中生成正弦波声音 的相关文章

  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • 将 saxon 与 python 结合使用

    我需要使用 python 处理 XSLT 目前我正在使用仅支持 XSLT 1 的 lxml 现在我需要处理 XSLT 2 有没有办法将 saxon XSLT 处理器与 python 一起使用 有两种可能的方法 设置一个 HTTP 服务 接受
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • ipython/ pylab/ matplotlib安装和初始化错误

    我在 OS X El Captain 上安装了 matplotlib anaconda ipython 然而 即使在尝试以所有可能的方式设置环境变量之后 我仍无法启动 ipython shell pylab 版本 这是错误 ImportEr
  • AWS EMR Spark Python 日志记录

    我正在 AWS EMR 上运行一个非常简单的 Spark 作业 但似乎无法从我的脚本中获取任何日志输出 我尝试过打印到 stderr from pyspark import SparkContext import sys if name m
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • BeautifulSoup 中的嵌套标签 - Python

    我在网站和 stackoverflow 上查看了许多示例 但找不到解决我的问题的通用解决方案 我正在处理一个非常混乱的网站 我想抓取一些数据 标记看起来像这样 table tbody tr tr tr td td td table tr t
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • Pandas:merge_asof() 对多行求和/不重复

    我正在处理两个数据集 每个数据集具有不同的关联日期 我想合并它们 但因为日期不完全匹配 我相信merge asof 是最好的方法 然而 有两件事发生merge asof 不理想的 数字重复 数字丢失 以下代码是一个示例 df a pd Da
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • Conda SafetyError:文件大小不正确

    使用创建 Conda 环境时conda create n env name python 3 6 我收到以下警告 Preparing transaction done Verifying transaction SafetyError Th
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • 使用 Python 的 matplotlib 选择在屏幕上显示哪些图形以及将哪些图形保存到文件中

    我想用Python创建不同的图形matplotlib pyplot 然后 我想将其中一些保存到文件中 而另一些则应使用show 命令 然而 show 显示all创建的数字 我可以通过调用来避免这种情况close 创建我不想在屏幕上显示的绘图
  • Rocket UniData/UniVerse:ODBC 无法分配足够的内存

    每当我尝试使用pyodbc连接到 Rocket UniData UniVerse 数据时我不断遇到错误 pyodbc Error 00000 00000 Rocket U2 U2ODBC 0302810 Unable to allocate
  • neo4j - python 驱动程序,服务不可用

    我对 neo4j 非常陌生 我正在尝试建立从 python3 6 到 neo4j 的连接 我已经安装了驱动程序 并且刚刚开始执行第一步 导入请求 导入操作系统 导入时间 导入urllib 从 neo4j v1 导入 GraphDatabas
  • Statsmodels.formula.api OLS不显示截距的统计值

    我正在运行以下源代码 import statsmodels formula api as sm Add one column of ones for the intercept term X np append arr np ones 50

随机推荐

  • PySide/PyQt 叠加小部件

    我正在尝试在 PySide 中实现这样的目标 https codepen io imprakash pen GgNMXO我想要做的是创建一个无框子窗口 下面有黑色覆盖层 我没有成功创建一个无框子窗口和覆盖层 这是复制 HTML 的基本代码
  • 如何将 Git Bash 添加到 VsCode

    在 VsCode 中选择终端时不显示 Git Bash 选项 确保您已经安装适用于 Windows 的 Git 在 VS Code 中 转到命令面板 P 终端 选择默认配置文件 or 终端 选择默认 Shell在旧版本中 然后在这种情况下选
  • 迭代时擦除集合元素///

    我不明白 为什么会出现运行时错误 迭代时删除集合元素 set
  • JS设置Cookie然后加载页面的方法

    我经常访问一个网站 其中有 点击更改为深色主题 按钮 黑暗主题更容易阅读 所以我每次访问都必须单击链接 关闭时清除历史记录 我在本地 Linux 机器上运行 Firefox 因此 Javascript HTML Python 和 Bash
  • 设置默认文件浏览位置VBA

    我有以下 VBA 代码 用于浏览 MS ACCESS 表单中的文件名 Private Sub Command64 Click Dim dialog As FileDialog Dim filePath As String Dim fileN
  • 使用 Jsoup 删除元素不起作用

    我想删除 html 文件头部的一些元素 CSS 标签 我尝试过这样的 Document doc Jsoup parse htmlString Element head doc head Elements headChildren head
  • 插入文本并将其添加到命名范围以供以后检索

    我正在尝试编写一个用于文档的 Google Apps 脚本 该脚本将插入一些文本 然后将插入的文本添加到命名范围 为了确保插入的文本保存到命名范围 我只想选择插入的文本 这是代码 function insertText var doc Do
  • 实体框架 IDENTITY_INSERT ON 不起作用

    我有这段代码 应该插入带有身份插入的记录 using MCT DB ArchiveEntities ent new MCT DB ArchiveEntities ent ExecuteStoreCommand SET IDENTITY IN
  • 为什么Java中的类是“class”? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 为什么 Java 的创建者对 Java 中的类使用 class 这个名称 这个词从何而来
  • UIKeyboardWillHide 未触发

    我在这里读了很多关于这个主题的帖子 但我无法找到我的问题的答案 所以 希望你不会对另一篇 UIKeyboard 帖子感到无聊 在我的视图控制器的实现中我添加了self作为两个通知的观察员UIKeyboardWillShowNotificat
  • 如何使用RecyclerView构建水平ListView

    我需要在我的 Android 应用程序中实现水平列表视图 我做了一些研究并发现如何在Android中制作水平ListView and Android 中的水平 ListView 然而 这些问题在 Recyclerview 发布之前就被提出了
  • Swift - 将 JSON 日期转换为 Swift 兼容日期

    我正在尝试转换一个日期 其中 javascript 代码使用 Date 函数生成当前日期 但当我打印出来时 我得到的是零 my code let date2 data 0 as String println date2 var str 20
  • 防火墙应允许哪些端口使用 TURN 服务器?

    我想在我们公司的服务器上设置一个turn服务器 coturn 而且我不确定外部访问应该允许哪些端口 8443是必须的 使用WebRTC 3478 是凭证使用的必备条件 但是 TURN 服务器使用的端口有无数个 是否需要在防火墙中允许它们 或
  • SASS:循环内部属性

    我想为单个属性生成多个值 background image radial gradient circle primary 10 transparent 10 radial gradient circle primary 10 transpa
  • Python连续TCP连接

    我是套接字编程新手 并试图重新回到Python 我想编写一个简单的 TCP 程序 它将持续维护连接 直到达到某个结束状态 在这种情况下 客户端发送 关闭 这对于第一次迭代来说效果很好 但是在我发送的第二件事上它冻结了 我不确定为什么 有人可
  • 二进制到 Base64 (Delphi)

    我怎样才能获得内容exe文件并将其转换为Base64编码 Edit I use D2010我想知道这到底是怎么可能的 open an exe file convert its content into base64 在Delphi 2009
  • 无法将“User”分配给 FutureBuilder 中的参数类型“Future

    我试图确定用户是否使用 FirebaseAuth instance currentUser 登录 Flutter Firebase 然后返回 LoginScreen 或 Dashboard 但出现错误 我尝试根据 FirebaseFlutt
  • 在运行时更改 IconTintColorBehavior 的 TintColor 不起作用

    你好 我正在测试新的IconTintColorBehavior在 CommunityToolkit Maui 1 1 0 中 它可以查找 但仅在启动应用程序时有效 如果我改变AppTheme在运行时 它不起作用 还有其他人观察过这种行为吗
  • 滑动功能无法使用 jquerymobile 和 android 的phonegap 工作

    我是phonegap的新手 我正在使用phonegap for android在eclipse中创建应用程序 我在xml文件夹中添加了phonegap jar和插件 我还添加了jquery库和phonegap1 1 0 js 我正在尝试实现
  • 在python中生成正弦波声音

    我一直在尝试使用以下代码生成正弦波并在我的扬声器中播放它 但这听起来很糟糕 有人知道为什么吗 听起来不像正弦波 dur int FS float duration 1000 for i in range dur a frequency i