【问题标题】:Sound in python (conda)python中的声音(conda)
【发布时间】:2017-08-14 06:18:57
【问题描述】:

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

例如:

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) 中工作

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

我在 Windows 10 上使用 Python 3。

谢谢

【问题讨论】:

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

标签: python audio ipython conda


【解决方案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】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-12-23
        • 2015-05-02
        • 1970-01-01
        • 1970-01-01
        • 2010-11-18
        • 2011-01-08
        • 2015-08-22
        相关资源
        最近更新 更多