Wes*_*pse 25 python linux audio macos
如果有人希望在Windows上发出嘟嘟声,那么Python 2显然提供了一个有用的功能:winsound.Beep()
.关于这个函数的巧妙之处在于它需要参数来指定蜂鸣声的确切频率和持续时间.这正是我想要做的,除了我不使用Windows.所以...
winsound.Beep()
Linux和OSX 最接近的等价物是什么,引入尽可能少的依赖项?
请注意,我希望能够直接发出扬声器,而不是播放声音文件.另外,我需要能够控制蜂鸣声的频率和持续时间,所以curses.beep()
并print '\a'
不会做.最后,我知道PyGame提供了广泛的声音功能,但考虑到我不需要任何PyGame的其他功能,这似乎就像使用大锤破解坚果(无论如何,我试图消除依赖性越远越好).
Sha*_*awa 11
我在这里找到了一个潜在的解决方案:http: //bytes.com/topic/python/answers/25217-beeping-under-linux
它涉及直接写入/ dev/audio.不确定它是多么便携,或者它是否甚至可以工作 - 我不是在linux机器上.
def beep(frequency, amplitude, duration):
sample = 8000
half_period = int(sample/frequency/2)
beep = chr(amplitude)*half_period+chr(0)*half_period
beep *= int(duration*frequency)
audio = file('/dev/audio', 'wb')
audio.write(beep)
audio.close()
Run Code Online (Sandbox Code Playgroud)
Max*_*dal 10
winsound仅适用于Windows,除了打印"/ a"之外,我找不到任何跨平台方式来执行此操作.但是,您无法使用此设置频率和持续时间.
但是,您可以尝试使用os.system命令对系统命令蜂鸣声执行相同操作.这是一个片段,它以独立于平台的方式定义函数播放
try:
import winsound
except ImportError:
import os
def playsound(frequency,duration):
#apt-get install beep
os.system('beep -f %s -l %s' % (frequency,duration))
else:
def playsound(frequency,duration):
winsound.Beep(frequency,duration)
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请查看此博客
编辑:你需要在linux上安装beep包来运行beep命令.您可以通过提供命令来安装
sudo apt-get install beep
Run Code Online (Sandbox Code Playgroud)
小智 5
import numpy as np
import simpleaudio as sa
def sound(x,z):
frequency = x # Our played note will be 440 Hz
fs = 44100 # 44100 samples per second
seconds = z # Note duration of 3 seconds
# Generate array with seconds*sample_rate steps, ranging between 0 and seconds
t = np.linspace(0, seconds, seconds * fs, False)
# Generate a 440 Hz sine wave
note = np.sin(frequency * t * 2 * np.pi)
# Ensure that highest value is in 16-bit range
audio = note * (2**15 - 1) / np.max(np.abs(note))
# Convert to 16-bit data
audio = audio.astype(np.int16)
# Start playback
play_obj = sa.play_buffer(audio, 1, 2, fs)
# Wait for playback to finish before exiting
play_obj.wait_done()
sound(300,2)
sound(200,1)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15506 次 |
最近记录: |