SoundCard
SoundCard copied to clipboard
Wav file is empty after recording is saved to file
import soundcard as sc
import numpy
import soundfile
# get a list of all speakers:
speakers = sc.all_speakers()
# get the current default speaker on your system:
default_speaker = sc.default_speaker()
# get a list of all microphones:
mics = sc.all_microphones()
# get the current default microphone on your system:
default_mic = sc.default_microphone()
one_speaker = sc.get_speaker('IEC958')
# record and play back one second of audio:
data = default_mic.record(samplerate=48000, numframes=48000)
default_speaker.play(data/numpy.max(data), samplerate=48000)
# alternatively, get a `Recorder` and `Player` object
# and play or record continuously:
with default_mic.recorder(samplerate=48000) as mic, \
default_speaker.player(samplerate=48000) as sp:
for _ in range(400):
data = mic.record(numframes=1024)
sp.play(data)
soundfile.write("x.wav", data, 1024)
soundfile.read("x.wav")
I got few seconds of wav file but can't hear anything. I tried to change numframes, no luck
What sound card are you using? Is it the correct one?
Not sure which one, but recording and playing is working
@bastibe
This is what I get when I print all_speakers() and all_microfons()
<Speaker Logi USB Headset Analog Stereo (2 channels)> [<Microphone Logi USB Headset Analog Mono (1 channels)>, <Microphone HD-Audio Generic Analog Stereo (2 channels)>]
It might be that the sample rates of your sound cards are out-of-sync. Try reversing the order of play and record.