我正在寻找一种在完成代码后播放任何声音的方法。 我已经尝试了很多方法来做到这一点。
例如:
os.system('say "your program has finished"')
sys.stdout.write('\a')
sys.stdout.flush()
winsound.PlaySound('SystemAsterisk', winsound.SND_ALIAS)
print ("\a")
但他们都没有在conda(ipython notebook)中工作
你知道如何在康达,任何声音中做到这一点 理想的是不使用音乐文件,使用来自系统声音的东西,但这并不重要。重要的是快速执行。
我在Windows 10上使用Python 3.
由于
答案 0 :(得分:1)
您是否尝试过使用IPython.display.Audio? 这是在ipython笔记本中播放声音的正确方法。
您可以使用numpy从数据生成声音,例如
# Generate a sound
import numpy as np
framerate = 44100
t = np.linspace(0,5,framerate*5)
data = np.sin(2*np.pi*220*t) + np.sin(2*np.pi*224*t))
Audio(data,rate=framerate)
答案 1 :(得分:1)
conda中有一个speech
库,可以解决您的查询并提供额外的功能集:
首先,您需要安装包:
pip install -i https://pypi.anaconda.org/pypi/simple speech
之后只需尝试:
import speech
speech.say('Completed coding', 'es_ES')
在Windows 10上,它包含一个语音引擎。
安装module win32com
,然后您可以使用以下代码:
import win32com.client as wincl
speak = wincl.Dispatch("SAPI.SpVoice")
speak.Speak("Finished coding")
有关详细信息,请查看:https://anaconda.org/pypi/speech
希望它有所帮助....快乐编码
答案 2 :(得分:0)
在同一个winsound模块中,有一个名为Beep(Hz,ms)的方法,当以赫兹写入的频率调用时,以及以毫秒为单位的时间内调用正弦波
您的代码可以是这样的:
os.system('say "your program has finished"')
sys.stdout.write('\a')
sys.stdout.flush()
winsound.Beep(440, 150) # A sine wave of 440Hz will be heard by your
# speakers for 150ms
print ("\a")