重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
sound-effects-generator by dkyazzentwatwa/chatgpt-skills
npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill sound-effects-generator生成程序化音频:纯音、噪声类型、DTMF 信号和简单音效。非常适合测试、警报、音频提示和占位音效。
from scripts.sfx_generator import SoundEffectsGenerator
# 生成一个音调
sfx = SoundEffectsGenerator()
sfx.tone(440, duration=1000).save("a440.wav")
# 生成白噪声
sfx.noise("white", duration=2000).save("whitenoise.wav")
# 创建蜂鸣序列
sfx.beep_sequence([440, 880, 440], durations=200, gap=100).save("alert.wav")
sfx = SoundEffectsGenerator(sample_rate=44100)
# 纯正弦波
sfx.tone(frequency=440, duration=1000)
# 不同波形
sfx.tone(440, duration=1000, waveform="sine") # 默认
sfx.tone(440, duration=1000, waveform="square")
sfx.tone(440, duration=1000, waveform="sawtooth")
sfx.tone(440, duration=1000, waveform="triangle")
# 带音量控制 (0.0 到 1.0)
sfx.tone(440, duration=1000, volume=0.5)
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
# 白噪声 (所有频率能量相等)
sfx.noise("white", duration=2000)
# 粉红噪声 (1/f,听起来更自然)
sfx.noise("pink", duration=2000)
# 布朗噪声 (1/f^2,更深沉)
sfx.noise("brown", duration=2000)
# 带音量控制
sfx.noise("white", duration=1000, volume=0.3)
# 单个数字
sfx.dtmf("5", duration=200)
# 序列 (电话号码)
sfx.dtmf_sequence("5551234", tone_duration=150, gap=50)
# 单次蜂鸣
sfx.beep(frequency=800, duration=200)
# 多次蜂鸣 (相同频率)
sfx.beep_sequence([800, 800, 800], durations=100, gap=100)
# 旋律 (不同频率)
sfx.beep_sequence([523, 659, 784, 1047], durations=200, gap=50)
# 可变持续时间
sfx.beep_sequence(
frequencies=[440, 880],
durations=[300, 500],
gap=100
)
# 生成静音
sfx.silence(duration=1000)
# 淡入/淡出
sfx.tone(440, 2000).fade_in(200).fade_out(500)
# 音量调整
sfx.tone(440, 1000).volume(0.5)
# 组合多个声音
sfx.tone(440, 500) \
.silence(200) \
.tone(880, 500) \
.save("two_tones.wav")
# 保存为 WAV
sfx.save("output.wav")
# 保存为 MP3 (需要 pydub)
sfx.save("output.mp3", bitrate=192)
# 生成音调
python sfx_generator.py --tone 440 --duration 1000 --output tone.wav
# 生成噪声
python sfx_generator.py --noise white --duration 2000 --output noise.wav
# 生成 DTMF
python sfx_generator.py --dtmf "5551234" --output phone.wav
# 生成蜂鸣模式
python sfx_generator.py --beeps "800,800,800" --duration 100 --gap 100 --output alert.wav
# 指定波形
python sfx_generator.py --tone 440 --waveform square --duration 1000 --output square.wav
| 参数 | 描述 | 默认值 |
|---|---|---|
--tone | 频率 (Hz) | - |
--noise | 噪声类型 (white, pink, brown) | - |
--dtmf | DTMF 数字 | - |
--beeps | 逗号分隔的频率 | - |
--duration | 持续时间 (毫秒) | 1000 |
--gap | 声音间隔 (毫秒) | 100 |
--waveform | 音调波形 | sine |
--volume | 音量 (0.0-1.0) | 0.8 |
--sample-rate | 采样率 | 44100 |
--output | 输出文件 | 必需 |
sfx = SoundEffectsGenerator()
sfx.beep_sequence(
frequencies=[880, 1100, 880, 1100],
durations=150,
gap=50
)
sfx.fade_out(100)
sfx.save("alert.wav")
sfx = SoundEffectsGenerator()
# C-E-G 和弦进行
notes = [523, 659, 784] # C5, E5, G5
for freq in notes:
sfx.tone(freq, 200)
sfx.silence(50)
sfx.fade_out(200)
sfx.save("chime.wav")
sfx = SoundEffectsGenerator()
sfx.noise("brown", duration=60000) # 1 分钟
sfx.volume(0.3) # 安静
sfx.fade_in(2000)
sfx.fade_out(2000)
sfx.save("background.mp3", bitrate=128)
sfx = SoundEffectsGenerator()
sfx.dtmf_sequence("18005551234", tone_duration=180, gap=80)
sfx.save("phone_dial.wav")
sfx = SoundEffectsGenerator()
# 生成从 100Hz 到 1000Hz 的音调
for freq in range(100, 1001, 100):
sfx.tone(freq, 200)
sfx.silence(50)
sfx.save("sweep.wav")
| 名称 | 频率 (Hz) |
|---|---|
| A4 (标准音高) | 440 |
| 中央 C (C4) | 261.63 |
| C5 | 523.25 |
| 标准拨号音 | 350 + 440 |
| 忙音信号 | 480 + 620 |
| 音符 | 频率 |
|---|---|
| C4 | 261.63 |
| D4 | 293.66 |
| E4 | 329.63 |
| F4 | 349.23 |
| G4 | 392.00 |
| A4 | 440.00 |
| B4 | 493.88 |
| C5 | 523.25 |
numpy>=1.24.0
scipy>=1.10.0
soundfile>=0.12.0
可选 : pydub (用于 MP3 导出)
每周安装量
49
代码仓库
GitHub 星标数
23
首次出现
2026年1月24日
安全审计
已安装于
claude-code40
opencode36
gemini-cli35
codex34
cursor33
github-copilot30
Generate programmatic audio: pure tones, noise types, DTMF signals, and simple sound effects. Perfect for testing, alerts, audio cues, and placeholder sounds.
from scripts.sfx_generator import SoundEffectsGenerator
# Generate a tone
sfx = SoundEffectsGenerator()
sfx.tone(440, duration=1000).save("a440.wav")
# Generate white noise
sfx.noise("white", duration=2000).save("whitenoise.wav")
# Create a beep sequence
sfx.beep_sequence([440, 880, 440], durations=200, gap=100).save("alert.wav")
sfx = SoundEffectsGenerator(sample_rate=44100)
# Pure sine wave
sfx.tone(frequency=440, duration=1000)
# Different waveforms
sfx.tone(440, duration=1000, waveform="sine") # Default
sfx.tone(440, duration=1000, waveform="square")
sfx.tone(440, duration=1000, waveform="sawtooth")
sfx.tone(440, duration=1000, waveform="triangle")
# With volume (0.0 to 1.0)
sfx.tone(440, duration=1000, volume=0.5)
# White noise (equal energy all frequencies)
sfx.noise("white", duration=2000)
# Pink noise (1/f, natural sounding)
sfx.noise("pink", duration=2000)
# Brown noise (1/f^2, deeper)
sfx.noise("brown", duration=2000)
# With volume
sfx.noise("white", duration=1000, volume=0.3)
# Single digit
sfx.dtmf("5", duration=200)
# Sequence (phone number)
sfx.dtmf_sequence("5551234", tone_duration=150, gap=50)
# Single beep
sfx.beep(frequency=800, duration=200)
# Multiple beeps (same frequency)
sfx.beep_sequence([800, 800, 800], durations=100, gap=100)
# Melody (different frequencies)
sfx.beep_sequence([523, 659, 784, 1047], durations=200, gap=50)
# Varying durations
sfx.beep_sequence(
frequencies=[440, 880],
durations=[300, 500],
gap=100
)
# Generate silence
sfx.silence(duration=1000)
# Fade in/out
sfx.tone(440, 2000).fade_in(200).fade_out(500)
# Volume adjustment
sfx.tone(440, 1000).volume(0.5)
# Combine multiple sounds
sfx.tone(440, 500) \
.silence(200) \
.tone(880, 500) \
.save("two_tones.wav")
# Save to WAV
sfx.save("output.wav")
# Save to MP3 (requires pydub)
sfx.save("output.mp3", bitrate=192)
# Generate tone
python sfx_generator.py --tone 440 --duration 1000 --output tone.wav
# Generate noise
python sfx_generator.py --noise white --duration 2000 --output noise.wav
# Generate DTMF
python sfx_generator.py --dtmf "5551234" --output phone.wav
# Generate beep pattern
python sfx_generator.py --beeps "800,800,800" --duration 100 --gap 100 --output alert.wav
# With waveform
python sfx_generator.py --tone 440 --waveform square --duration 1000 --output square.wav
| Argument | Description | Default |
|---|---|---|
--tone | Frequency in Hz | - |
--noise | Noise type (white, pink, brown) | - |
--dtmf | DTMF digits | - |
--beeps | Comma-separated frequencies | - |
--duration | Duration in ms | 1000 |
sfx = SoundEffectsGenerator()
sfx.beep_sequence(
frequencies=[880, 1100, 880, 1100],
durations=150,
gap=50
)
sfx.fade_out(100)
sfx.save("alert.wav")
sfx = SoundEffectsGenerator()
# C-E-G chord progression
notes = [523, 659, 784] # C5, E5, G5
for freq in notes:
sfx.tone(freq, 200)
sfx.silence(50)
sfx.fade_out(200)
sfx.save("chime.wav")
sfx = SoundEffectsGenerator()
sfx.noise("brown", duration=60000) # 1 minute
sfx.volume(0.3) # Quiet
sfx.fade_in(2000)
sfx.fade_out(2000)
sfx.save("background.mp3", bitrate=128)
sfx = SoundEffectsGenerator()
sfx.dtmf_sequence("18005551234", tone_duration=180, gap=80)
sfx.save("phone_dial.wav")
sfx = SoundEffectsGenerator()
# Generate tones from 100Hz to 1000Hz
for freq in range(100, 1001, 100):
sfx.tone(freq, 200)
sfx.silence(50)
sfx.save("sweep.wav")
| Name | Frequency (Hz) |
|---|---|
| A4 (Concert pitch) | 440 |
| Middle C (C4) | 261.63 |
| C5 | 523.25 |
| Standard dial tone | 350 + 440 |
| Busy signal | 480 + 620 |
| Note | Frequency |
|---|---|
| C4 | 261.63 |
| D4 | 293.66 |
| E4 | 329.63 |
| F4 | 349.23 |
| G4 | 392.00 |
| A4 | 440.00 |
| B4 | 493.88 |
| C5 | 523.25 |
numpy>=1.24.0
scipy>=1.10.0
soundfile>=0.12.0
Optional : pydub (for MP3 export)
Weekly Installs
49
Repository
GitHub Stars
23
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
claude-code40
opencode36
gemini-cli35
codex34
cursor33
github-copilot30
agent-browser 浏览器自动化工具 - Vercel Labs 命令行网页操作与测试
169,700 周安装
--gap | Gap between sounds (ms) | 100 |
--waveform | Tone waveform | sine |
--volume | Volume (0.0-1.0) | 0.8 |
--sample-rate | Sample rate | 44100 |
--output | Output file | Required |