import matplotlib.pyplot as plt def generate_sine_wave(frequency, duration, sampling_rate): t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False) signal = np.sin(2 * np.pi * frequency * t)
使用Wave进行音频生成 Wave库可以用来生成简单的音频波形。这对于模拟基本声音或创建合成音效非常有用。 import wave import numpy as np def generate_sine_wave(filename, duration, freq, sample_rate=44100, amp=16000): t = np.linspace(0, duration, int(sample_rate * duration), endpoint=False) wave_d...
DURATION = 5 # Seconds def generate_sine_wave(freq, sample_rate, duration): x = np.linspace(0, duration, sample_rate * duration, endpoint=False) frequencies = x * freq # 2pi because np.sin takes radians y = np.sin((2 * np.pi) * frequencies) return x, y # Generate a 2 hertz...
frequency1,play_time):#generate the sine wavenew_wave = [np.sin(2 * np.pi * frequency * x/sampling_rate) + np.sin(2 * np.pi * frequency1 * x/sampling_rate)forxinrange(num_samples *play_time)]
from scipy.io.wavfile import write # 生成正弦波声音 frequency = 440.0 duration = 1.0 wave, sample_rate = generate_sine_wave(frequency, duration) # 保存声音到文件 output_file = 'sine_wave.wav' write(output_file, sample_rate, wave.astype(np.int16)) 同样,对于方波声音,你也可以使用相同的方...
_, noise_tone = generate_sine_wave(4000, SAMPLE_RATE, DURATION) noise_tone = noise_tone * 0.3 mixed_tone = nice_tone + noise_tone 1. 2. 3. 4. 5. 下一步是归一化,或缩放信号以适合目标格式。由于以后将如何存储音频,目标格式为16位整数,范围为-32768到32767: ...
# generate the sine wave new_wave = [np.sin(2 * np.pi * frequency * x/sampling_rate) + np.sin(2 * np.pi * frequency1 * x/sampling_rate) for x in range(num_samples * play_time)] writeWave(new_wave) def createWave(frequency, frequency1, wave_type, play_time): if wave_type...
num_samples=48000sampling_rate=48000.0amplitude=16000comptype='NONE'compname='not compressed'nchannels=1sampwidth=2FILE_NAME=''defcreateSine(frequency,frequency1,play_time):# generate the sine wave new_wave=[np.sin(2*np.pi*frequency*x/sampling_rate)+np.sin(2*np.pi*frequency1*x/sampling_rat...
生成数据** # 创建一个正弦波序列 def generate_sine_wave(seq_length, num_samples): X = [] y = [] for _ in range(num_samples): start = np.random.rand() * 2 * np.pi # 随机起点 seq = np.sin(np.linspace(start, start + seq_length * 0.1, seq_length)) X.append(seq[:-1]) ...
import wave,math from winsound import PlaySound,SND_FILENAME def generate(T,total,volume,sine=False):# T: 周期, total 总长度, 都以帧为单位ifnot sine:h= T /2foriinrange(total):ifi % T >=h: yield volumeelse: yield0else:# 计算方法: sin 的 T = 2*pi / ww =2* math.pi / T...