python-如何生成带有蜂鸣声的WAV文件?

对我来说

python中有没有一种方法可以生成一系列振幅不断增大的连续哔哔声并将其导出到WAV文件中?

杰克斯

我基于上一个问题的答案,并添加了很多评论。希望这一点可以弄清楚。您可能需要引入一个for循环来控制蜂鸣声的数量和增加的音量。

#!/usr/bin/python 
# based on : www.daniweb.com/code/snippet263775.html
import math
import wave
import struct

# Audio will contain a long list of samples (i.e. floating point numbers describing the
# waveform).  If you were working with a very long sound you'd want to stream this to
# disk instead of buffering it all in memory list this.  But most sounds will fit in 
# memory.
audio = []
sample_rate = 44100.0


def append_silence(duration_milliseconds=500):
    """
    Adding silence is easy - we add zeros to the end of our array
    """
    num_samples = duration_milliseconds * (sample_rate / 1000.0)

    for x in range(int(num_samples)): 
        audio.append(0.0)

    return


def append_sinewave(
        freq=440.0, 
        duration_milliseconds=500, 
        volume=1.0):
    """
    The sine wave generated here is the standard beep.  If you want something
    more aggresive you could try a square or saw tooth waveform.   Though there
    are some rather complicated issues with making high quality square and
    sawtooth waves... which we won't address here :) 
    """ 

    global audio # using global variables isn't cool.

    num_samples = duration_milliseconds * (sample_rate / 1000.0)

    for x in range(int(num_samples)):
        audio.append(volume * math.sin(2 * math.pi * freq * ( x / sample_rate )))

    return


def save_wav(file_name):
    # Open up a wav file
    wav_file=wave.open(file_name,"w")

    # wav params
    nchannels = 1

    sampwidth = 2

    # 44100 is the industry standard sample rate - CD quality.  If you need to
    # save on file size you can adjust it downwards. The stanard for low quality
    # is 8000 or 8kHz.
    nframes = len(audio)
    comptype = "NONE"
    compname = "not compressed"
    wav_file.setparams((nchannels, sampwidth, sample_rate, nframes, comptype, compname))

    # WAV files here are using short, 16 bit, signed integers for the 
    # sample size.  So we multiply the floating point data we have by 32767, the
    # maximum value for a short integer.  NOTE: It is theortically possible to
    # use the floating point -1.0 to 1.0 data directly in a WAV file but not
    # obvious how to do that using the wave module in python.
    for sample in audio:
        wav_file.writeframes(struct.pack('h', int( sample * 32767.0 )))

    wav_file.close()

    return


append_sinewave(volume=0.25)
append_silence()
append_sinewave(volume=0.5)
append_silence()
append_sinewave()
save_wav("output.wav")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用python生成带有传递参数的文件

来自分类Dev

安装Windows NT 4.0时垂直的蓝线带有长蜂鸣声

来自分类Dev

当我在Python的注释块中键入end parathetheses时,Mac发出蜂鸣声

来自分类Dev

如何使用python无限播放“.wav”文件

来自分类Dev

带有文件的Python For循环

来自分类Dev

如何使用Python搜索带有最近时间戳记的文件?

来自分类Dev

带有括号的Python python解析文件

来自分类Dev

带有括号的Python python解析文件

来自分类Dev

在Python中生成一个带有当前时间名称的文本文件

来自分类Dev

Python脚本生成带有漏洞利用代码的文件-unicodeescape Unicode错误

来自分类Dev

python3使用生成器过滤带有多行记录的文件

来自分类Dev

如何在Java中播放蜂鸣声以外的声音?

来自分类Dev

如何解释华硕主板的LED和蜂鸣声模式?

来自分类Dev

如何使我的PC扬声器发出蜂鸣声

来自分类Dev

如何在系统范围内禁用蜂鸣声

来自分类Dev

如何使用python批量/批处理转录wav文件?

来自分类Dev

如何在Python中创建多通道.WAV文件?

来自分类Dev

当我将带有ffmpeg的numpy数组转换为音频文件(python)时,mp3 / wav持续时间为何不同?

来自分类Dev

如何在Python中生成带有重复数字的随机列表

来自分类Dev

如何在Python中生成带有大量小数的随机数?

来自分类Dev

如何从带有连接的数据库查询中生成嵌套的 JSON?使用 Python/SQLAlchemy

来自分类Dev

Python Django:如何根据实例pk上传带有文件名的文件

来自分类Dev

如何通过带有文件夹名称正则表达式的python打开文件?

来自分类Dev

带有多个python文件的Hadoop流

来自分类Dev

python flask浏览带有文件的目录

来自分类Dev

带有Python文件的奇怪IDE行为

来自分类Dev

使用python下载带有URL的文件

来自分类Dev

带有CSV文件的怪异python索引

来自分类Dev

带有大文件的Python 2.5 MemoryError

Related 相关文章

  1. 1

    使用python生成带有传递参数的文件

  2. 2

    安装Windows NT 4.0时垂直的蓝线带有长蜂鸣声

  3. 3

    当我在Python的注释块中键入end parathetheses时,Mac发出蜂鸣声

  4. 4

    如何使用python无限播放“.wav”文件

  5. 5

    带有文件的Python For循环

  6. 6

    如何使用Python搜索带有最近时间戳记的文件?

  7. 7

    带有括号的Python python解析文件

  8. 8

    带有括号的Python python解析文件

  9. 9

    在Python中生成一个带有当前时间名称的文本文件

  10. 10

    Python脚本生成带有漏洞利用代码的文件-unicodeescape Unicode错误

  11. 11

    python3使用生成器过滤带有多行记录的文件

  12. 12

    如何在Java中播放蜂鸣声以外的声音?

  13. 13

    如何解释华硕主板的LED和蜂鸣声模式?

  14. 14

    如何使我的PC扬声器发出蜂鸣声

  15. 15

    如何在系统范围内禁用蜂鸣声

  16. 16

    如何使用python批量/批处理转录wav文件?

  17. 17

    如何在Python中创建多通道.WAV文件?

  18. 18

    当我将带有ffmpeg的numpy数组转换为音频文件(python)时,mp3 / wav持续时间为何不同?

  19. 19

    如何在Python中生成带有重复数字的随机列表

  20. 20

    如何在Python中生成带有大量小数的随机数?

  21. 21

    如何从带有连接的数据库查询中生成嵌套的 JSON?使用 Python/SQLAlchemy

  22. 22

    Python Django:如何根据实例pk上传带有文件名的文件

  23. 23

    如何通过带有文件夹名称正则表达式的python打开文件?

  24. 24

    带有多个python文件的Hadoop流

  25. 25

    python flask浏览带有文件的目录

  26. 26

    带有Python文件的奇怪IDE行为

  27. 27

    使用python下载带有URL的文件

  28. 28

    带有CSV文件的怪异python索引

  29. 29

    带有大文件的Python 2.5 MemoryError

热门标签

归档