2017-08-14 29 views
0

我正在寻找一种方式在完成代码后播放任何声音。 我已经尝试了很多方法来做到这一点。python中的声音(conda)

例如:

os.system('say "your program has finished"') 

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

winsound.PlaySound('SystemAsterisk', winsound.SND_ALIAS) 

print ("\a") 

但他们都不是在畅达(IPython的笔记本)

你知道任何方式做到这一点的畅达的工作,任何声音 理想不会使用的音乐是文件,使用系统声音中的内容,但这并不重要。重要的是快速执行。

我使用Python 3在Windows 10

感谢

+0

你尝试过pygame吗?当我试图用Python播放声音时,它对我来说很方便。但是,我从来没有在ipython笔记本中使用它 – Quba

回答

1

有一个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

希望它可以帮助....快乐编码

0

您是否尝试过使用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) 
0

在同广州市运生模块,有是一种称为Beep(Hz,ms)的方法,当以赫兹写入的频率中调用正弦波时,以及以毫秒为单位提及的时间量

您的代码可能类似于th是:

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")