【问题标题】:How to make a sound in OSX using python 3如何使用 python 3 在 OSX 中发出声音
【发布时间】:2017-02-10 02:04:50
【问题描述】:

所以我试图在我的代码完成后播放一个简单的哔声,因为处理大量数据需要一段时间。我在网上尝试了其他示例,但似乎没有任何效果。我试过了:

import sys
sys.stdout.write('\a')
sys.stdout.flush()

它在 IDE shell 中输出单词 bel,但没有其他内容

我也试过了:

import os
print('\a')

输出完全相同的东西。

我试过了

import os
os.system('play --no-show-progress --null --channels 1 synth %s sine %f' % (   4, 4))

简单的输出:

sh: play: command not found

有人有什么想法吗?

这里还有一个包含单词 bell 的 jpg。看起来很好笑...

我还确保我的音量已调高

更新:它可能只是我的 IDE。我尝试直接从终端启动 python 并使用 write('\a') 并且它有效。它只是在 101 翼不起作用

【问题讨论】:

  • sys.stdout.write('\a') 对我有用,至少在 macOS Sierra 10.12.3 上

标签: python macos


【解决方案1】:

实际上,sys.stdout.write('\a') 对我有用,但不是在 IDE 中,请尝试在 Terminal 中运行此代码。您会听到系统声音。

你也可以试试这两个命令:

  • say

  • afplay


例如

import os
os.system('say "Beer time."')

import os
os.system('afplay /System/Library/Sounds/Sosumi.aiff')

运行man say 以查看更多详细信息。

说你好,世界。
说 -v Alex -o hi -f hello_world.txt。
比如说 --interactive=/green 每天花费叶子的颜色。
说 -o hi.aac '你好,[[slnc 200]] 世界'。
say -o hi.m4a --data-format=alac 你好,世界。

希望这会有所帮助。

【讨论】:

  • 这行得通。碰巧,您知道如何发出通用的铃声或口哨声而不是人类讲话吗?
  • 真棒。我们如何使文本成为变量?说txt =“啤酒时间”。和 os.system('say txt')
  • @chikitin os.system(f"say {txt}")
【解决方案2】:

在 Mac 中,您可以:

# List of voices: say -v ?
import os
def say(msg = "Finish", voice = "Victoria"):
    os.system(f'say -v {voice} {msg}')

用法:

# Run your program/experiment...
say() # say finish at the end

# Or say something more exciting
say("Great! Finally finished, please check the result!") 

# Or switch to another voice
say("Great!", "Alex")

您还可以在我的 GitHub 存储库中找到其他人类语言示例:https://github.com/hkpeterpeter/finish_alert

【讨论】:

    【解决方案3】:

    安装pygamehttps://www.pygame.org/

    那就去看看这里的答案:Simple Pygame Audio at a Frequency

    【讨论】:

      猜你喜欢
      • 2017-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-16
      • 1970-01-01
      相关资源
      最近更新 更多