在 pyo 和 python 中播放声音

2023-12-19

我正在尝试pyo https://github.com/belangeo/pyo对于蟒蛇。我使用主页中的以下命令安装了 ubuntu 的 pyo:

sudo apt-get install libjack-jackd2-dev libportmidi-dev portaudio19-dev liblo-dev
sudo apt-get install libsndfile-dev python-dev python-tk
sudo apt-get install python-imaging-tk python-wxgtk3.0
git clone https://github.com/belangeo/pyo.git
cd pyo
sudo python setup.py install --install-layout=deb --use-jack --use-double

但是,当我尝试第一个示例来播放声音时:

>>> from pyo import *
>>> s = Server().boot()
>>> s.start()
>>> sf = SfPlayer("path/to/your/sound.aif", speed=1, loop=True).out()

我收到这些错误:

>>> from pyo import *
pyo version 0.7.9 (uses single precision)

>>> s = Server().boot()
ALSA lib pcm_dsnoop.c:614:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1024:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2267:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_dmix.c:1024:(snd_pcm_dmix_open) unable to open slave
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
Expression 'parameters->channelCount <= maxChans' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1514
Expression 'ValidateParameters( inputParameters, hostApi, StreamDirection_In )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2818
portaudio error in Pa_OpenStream: Invalid number of channels
Portaudio error: Invalid number of channels
Server not booted.

有人可以帮忙吗? PS:我运行的是ubuntu 15.10


步骤 1. 您应该列出您的音频硬件:

from pyo import *

print("Audio host APIS:")
pa_list_host_apis()
pa_list_devices()
print("Default input device: %i" % pa_get_default_input())
print("Default output device: %i" % pa_get_default_output())

在我的系统上结果是:

Audio host APIS:
index: 0, id: 8, name: ALSA, num devices: 10, default in: 9, default out: 9
index: 1, id: 7, name: OSS, num devices: 0, default in: -1, default out: -1
AUDIO devices:
0: OUT, name: HDA Intel HDMI: 0 (hw:0,3), host api index: 0, default sr: 44100 Hz, latency: 0.005805 s
1: OUT, name: HDA Intel HDMI: 1 (hw:0,7), host api index: 0, default sr: 44100 Hz, latency: 0.005805 s
2: OUT, name: HDA Intel HDMI: 2 (hw:0,8), host api index: 0, default sr: 44100 Hz, latency: 0.005805 s
3: OUT, name: HDA Intel HDMI: 3 (hw:0,9), host api index: 0, default sr: 44100 Hz, latency: 0.005805 s
4: OUT, name: HDA Intel HDMI: 4 (hw:0,10), host api index: 0, default sr: 44100 Hz, latency: 0.005805 s
5: IN, name: HDA Intel PCH: CS4208 Analog (hw:1,0), host api index: 0, default sr: 44100 Hz, latency: 0.005805 s
6: OUT, name: HDA Intel PCH: CS4208 Digital (hw:1,1), host api index: 0, default sr: 44100 Hz, latency: 0.005805 s
7: OUT, name: hdmi, host api index: , default sr: 44100 Hz, latency: 0.005805 s
8: IN, name: pulse, host api index: 0, default sr: 44100 Hz, latency: 0.008707 s
8: OUT, name: pulse, host api index: 0, default sr: 44100 Hz, latency: 0.008707 s
9: IN, name: default, host api index: 0, default sr: 44100 Hz, latency: 0.008707 s
9: OUT, name: default, host api index: 0, default sr: 44100 Hz, latency: 0.008707 s
Default input device: 9
Default output device: 9

步骤 2. 选择首选设备。就我而言设备9 is ok.

from pyo import *

s = Server(duplex=0)
s.setOutputDevice(9) # Use device from the previous step
s.boot()
s.start()
# Try to play sound
a = Sine(mul=0.01).out()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 pyo 和 python 中播放声音 的相关文章

随机推荐

  • 存储使用 Atlassian SourceTree 所做的更改

    我的项目中更改了很多文件 我想隐藏 2 个文件 但我有点害怕犯错误 因为我从未这样做过 If i would stash now will it only stash the 2 staged files 如果我不标记 保留分阶段更改 它会
  • 如何在 MongoDB 上按字符串长度对结果进行排序

    我可以在mysql上轻松完成 select from TABLE order by length FIELD asc 我怎样才能在 MongoDB 上做到这一点 MongoDB 3 4 引入了 strLenCP https docs mon
  • 配置“--prefix”选项进行交叉编译

    我应该通过哪条路径 prefix进行交叉编译时的选项 我应该指定构建机器上的路径还是目标平台上的路径 假设我将代码构建到 home me arm build target fs usr 之后我将文件复制到我的目标平台 它们将位于 usr 我
  • 通过 AJAX 的跨源资源共享 (CORS)

    我知道关于这个主题有很多问题 一段时间以来我一直在努力解决这个问题 请让我了解一下这个具体案例 My Goal 我正在尝试从以下 URL 获取 JSON 数据 https www icims com bellworks https www
  • 纯 JavaScript 中的 jQuery live() ?

    我正在尝试用纯 JavaScript 实现 jQuery live 函数的功能 这里有人可以帮忙吗 Thanks 这是一个启动的小例子 document onclick function evt evt evt window event v
  • JS 代理模式

    我使用此代码来覆盖 window alert 函数 该函数用 r n 替换中断 它在 Firefox 中运行良好 但在 IE 中当然不行 我收到错误 不支持属性或方法 function var proxied window alert wi
  • CMake检查主项目是否被调用

    我有这样的项目目录设计 Main CMakeLists txt subproject1 CMakeLists txt subproject2 CMakeLists txt 如果 subproject1 cmake 被主项目调用 或者作为独立
  • 根据字段值增量并创建记录

    访问2003 最终 我需要创建一个用于打印标签 样品 ID 罐 x of x 的报告 我的桌子上有样品 ID 和罐子数量 是否可以创建一个查询 为我提供 3 个字段 样品 ID 罐号 罐数 其中罐号根据罐数以增量方式创建记录 Query S
  • Java - 编译错误方法无法调用

    我必须使用测试工具编译我的代码 但是 当该测试工具调用我的方法时 我收到此错误 Course 类中的 getCourseDetails 方法不能应用于给定类型 必需 java lang String int java lang String
  • Typescript 将元组的类型元组转换为元组(展平元组)

    我有这个 Type T Params lt Tuple1 Tuple2 gt eg string number 制作方法 压扁 Type Flatten
  • 如何锁定 cytoscape.js 节点在其父节点内的位置

    我想锁定节点相对于其父复合节点的位置 这样 如果我抓取并拖动父节点 子节点会随之移动 但子节点不能单独抓取 如果我将子项设置为不可抓取和 或锁定 那么它不会与其父项一起移动 但如果我不这样做 它可以被单独拖动 这是我不想要的 这可以做到吗
  • 如何将参数(名称)传递给函数工厂?

    我需要构建许多带有许多不同参数的函数 尽管它们共享许多代码和结构 为了避免重复 我想我应该聪明地为自己构建一个函数工厂 又名闭包 我不知道如何在函数工厂内传递函数参数 我的用例是一堆 S3 构造函数 所有这些函数都共享相同的验证机制 所以我
  • 如何将测试用例从 Excel 导入到 VSTS/Azure DevOps

    我有很多测试用例当前位于 Excel 中 我需要将它们迁移到 VSTS Azure DevOps 有人可以推荐我一个好方法吗 这是一种手动方式 但也许对您有用 在 IE 或 Edge 上 您可以在测试计划中尝试网格视图 然后复制 粘贴测试用
  • Java LibGDX 如何解析 JSON?

    我有一个 json 文件 内容如下 players name hp 100 name hp 120 weapons name Desert Eagle price 100 name AK 47 price 150 如何将其解析为武器数组 我
  • 获取和转换与条件格式

    我正在尝试使用conditional formatting的输出Get Transform询问 Office 365 Excel 2016 32 位 Windows 10 专业版 64 位 但是 当刷新查询时 条件格式不仅仅是扩展 收缩以影
  • 如何将 pandas DataFrame 表保存为 png

    我构建了一个结果的 pandas 数据框 该数据框充当表格 有 MultiIndexed 列 每行代表一个名称 即index name1 name2 创建 DataFrame 时 我想显示这个表格并将其保存为 png 或任何图形格式 目前
  • Angular ui grid双击事件设置

    所以我试图让我的 Angular UI 网格在整行上注册双击事件以打开模式 我可以从烤面包开始 然后从那里开始 这是我根据在线各种演示和示例得出的最接近的结果 但我似乎无法让它发挥作用 控制器 scope gridHandlers onDb
  • 为什么我不能在 Java 中声明同一个变量两次?

    这里有类似的问题 但他们并没有真正回答我的问题 所以我很好奇为什么我们不能在Java中声明同一个变量两次 例如 int a 4 int a 6 这在 Java 中实际上行不通 然而在 javascript 中 这实际上是有效的 var a
  • Angular 1 材料设计在 Firefox 中关闭对话框后滚动到顶部

    您好 当我在 Firefox 中使用 Angular 材质打开对话框窗口时 对话框关闭后页面滚动到顶部 任何人都可以解释为什么会发生这种情况或有解决方法 See https codepen io WitteStier full EmzKQb
  • 在 pyo 和 python 中播放声音

    我正在尝试pyo https github com belangeo pyo对于蟒蛇 我使用主页中的以下命令安装了 ubuntu 的 pyo sudo apt get install libjack jackd2 dev libportmi