python 中的声音 (conda)

Sound in python (conda)

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

例如:

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

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

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

print ("\a")

但他们都没有在 conda 中工作(ipython 笔记本)

你知道在 conda 中做这件事的任何方法吗? 理想的是不使用音乐文件,使用系统声音中的东西,但这没关系。重要的是快速执行。

我在 windows 10 上使用 Python 3。

谢谢

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

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

希望对您有所帮助....编码愉快

在同一个 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")