首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用python生成/合成声音?

用python生成/合成声音?
EN

Stack Overflow用户
提问于 2012-03-19 20:19:58
回答 7查看 90.4K关注 0票数 45

有没有可能让python生成像正弦波这样的简单声音?

有没有这样的模块可用?如果没有,你将如何创建你自己的?

另外,为了播放声音,您是否需要某种类型的主机环境来运行python,或者仅仅通过从终端进行调用就可以实现?

如果答案取决于操作系统,那么我使用的是mac。

EN

回答 7

Stack Overflow用户

发布于 2015-11-24 04:41:09

我也在寻找同样的东西,最后,我写了这段代码,运行良好。

代码语言:javascript
复制
import math        #import needed modules
import pyaudio     #sudo apt-get install python-pyaudio

PyAudio = pyaudio.PyAudio     #initialize pyaudio

#See https://en.wikipedia.org/wiki/Bit_rate#Audio
BITRATE = 16000     #number of frames per second/frameset.      

FREQUENCY = 500     #Hz, waves per second, 261.63=C4-note.
LENGTH = 1     #seconds to play sound

if FREQUENCY > BITRATE:
    BITRATE = FREQUENCY+100

NUMBEROFFRAMES = int(BITRATE * LENGTH)
RESTFRAMES = NUMBEROFFRAMES % BITRATE
WAVEDATA = ''    

#generating wawes
for x in xrange(NUMBEROFFRAMES):
 WAVEDATA = WAVEDATA+chr(int(math.sin(x/((BITRATE/FREQUENCY)/math.pi))*127+128))    

for x in xrange(RESTFRAMES): 
 WAVEDATA = WAVEDATA+chr(128)

p = PyAudio()
stream = p.open(format = p.get_format_from_width(1), 
                channels = 1, 
                rate = BITRATE, 
                output = True)

stream.write(WAVEDATA)
stream.stop_stream()
stream.close()
p.terminate()
票数 38
EN

Stack Overflow用户

发布于 2013-12-06 23:53:04

我知道我在这方面有点晚了,但这是一个非常棒的合成和音频合成的python项目:https://github.com/hecanjog/pippi

它仍在积极开发中,但已经有一段时间了。

票数 17
EN

Stack Overflow用户

发布于 2013-12-17 16:11:43

在一些无法编译或根本不存在的项目上浪费时间后,我发现了python模块wavebender,它提供了单通道或多通道的正弦波、方波和组合波的生成。结果可以写入到一个波形文件或sys.stdout,从那里它们可以被aplay实时地直接解释。在该项目的github page中解释了一些有用的示例。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9770073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档