首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Ruby或Python创建一系列高音调和低音调的嗡嗡声?

如何使用Ruby或Python创建一系列高音调和低音调的嗡嗡声?
EN

Stack Overflow用户
提问于 2010-11-17 05:48:17
回答 5查看 2.3K关注 0票数 5

我想在固定的时间制造一系列低音调和高音调的嗡嗡声。例如:

  • 150毫秒的高音声
  • 151毫秒的低音哔声
  • 200毫秒的低音哔声
  • 在250毫秒的高音声

有没有办法在Ruby或Python中做到这一点?我并不关心输出编码是什么(.wav、.mp3、.ogg等),但我确实想创建一个输出文件。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-11-19 16:34:24

下面是Python中的一个函数,它使用单个正弦波生成一个文件:

代码语言:javascript
复制
# based on : www.daniweb.com/code/snippet263775.html
import math
import wave
import struct

def make_sine(freq=440, datasize=10000, fname="test.wav", framerate=44100.00):
    amp=8000.0 # amplitude
    sine_list=[]
    for x in range(datasize):
        sine_list.append(math.sin(2*math.pi * freq * ( x/frate)))
    # Open up a wav file
    wav_file=wave.open(fname,"w")
    # wav params
    nchannels = 1
    sampwidth = 2
    framerate = int(frate)
    nframes=datasize
    comptype= "NONE"
    compname= "not compressed"
    wav_file.setparams((nchannels, sampwidth, framerate, nframes, comptype, compname))
    #write on file
    for s in sine_list:
        wav_file.writeframes(struct.pack('h', int(s*amp/2)))
    wav_file.close()

frate = 44100.00 #that's the framerate
freq=987.0 #that's the frequency, in hertz
seconds = 3 #seconds of file
data_length = frate*seconds #number of frames
fname = "WaveTest2.wav" #name of file
make_sine(freq, data_length, fname) 

不是最快的code...But,如果你不需要速度,它会工作得很好!

票数 4
EN

Stack Overflow用户

发布于 2010-11-17 06:07:44

试试Ruby音频文件库 (RAFL)。它支持:

写入WAV文件时: 以任意采样率写入任意数量的信道,会在任意幅度或频率产生白噪声、粉红噪声和正弦波。

这是这个项目的GitHub源

票数 2
EN

Stack Overflow用户

发布于 2010-11-17 06:03:59

以下是Ruby的一些帮助:向Ruby应用程序添加声音。从pc的扬声器到wav/mp3 --我不知道这是否可能。

如果您的声卡(不是扬声器)发出嘟嘟声,如果您需要,只需使用随附的Win32API模块即可:

代码语言:javascript
复制
require 'Win32API'
Beep = Win32API.new('kernel32', 'Beep', ['I', 'I'], 'I')
Beep.call(1200,150)
Beep.call(200,150)
Beep.call(300,150)
Beep.call(1400,150)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4201852

复制
相关文章

相似问题

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