Как я могу добавить WAV-файл, используя scipy.io.wavfile? - PullRequest
0 голосов
/ 13 февраля 2020

Я создаю простую программу, которая генерирует файлы WAV из нескольких синусоидальных волн. Таким образом, файл wav будет перезаписан, а не добавлен, но я не смог найти приложение в документации scipy.io.wavfile. Я нашел еще одного пользователя, который спрашивал об этом здесь на SO, но был дан ответ, что это поведение по умолчанию, но у меня это не работает. Любая помощь будет принята с благодарностью!

import numpy as np
from scipy.io import wavfile


duration = 10  # in seconds, may be float
f = 200  # sine frequency, Hz, may be float
fs=48000
samples = (np.sin(2 * np.pi * np.arange(fs * duration) * f / fs)).astype(np.float32)

wavfile.write('Sine.wav', 48000, samples)


duration = 10  # in seconds, may be float
f = 100  # sine frequency, Hz, may be float
fs=48000
samples = (np.sin(2 * np.pi * np.arange(fs * duration) * f / fs)).astype(np.float32)

wavfile.write('Sine.wav', 48000, samples)

Этот код приводит к 10-секундному 100-Гц синус-WAV-файлу, где я хочу 20-секундный WAV-файл с 10 секундами 200 Гц, а затем 10 секундами 100 Гц

1 Ответ

1 голос
/ 14 февраля 2020

Вы можете добавить 2 сэмпла вместе, я использовал 400 Гц для второго сэмпла, потому что 100 Гц не слышно на динамиках моего компьютера.

import numpy as np
from scipy.io import wavfile


duration = 10  # in seconds, may be float
f = 200  # sine frequency, Hz, may be float
fs=48000
samples1 = (np.sin(2 * np.pi * np.arange(fs * duration) * f / fs)).astype(np.float32)

#wavfile.write('Sine.wav', 48000, samples)


duration = 10  # in seconds, may be float
f = 400  # sine frequency, Hz, may be float
fs=48000
samples2 = (np.sin(2 * np.pi * np.arange(fs * duration) * f / fs)).astype(np.float32)
samples=np.append(samples1,samples2)
wavfile.write('Sine.wav', 48000, samples)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...