-
-
Save mabdrabo/8678538 to your computer and use it in GitHub Desktop.
import pyaudio | |
import wave | |
FORMAT = pyaudio.paInt16 | |
CHANNELS = 2 | |
RATE = 44100 | |
CHUNK = 1024 | |
RECORD_SECONDS = 5 | |
WAVE_OUTPUT_FILENAME = "file.wav" | |
audio = pyaudio.PyAudio() | |
# start Recording | |
stream = audio.open(format=FORMAT, channels=CHANNELS, | |
rate=RATE, input=True, | |
frames_per_buffer=CHUNK) | |
print "recording..." | |
frames = [] | |
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): | |
data = stream.read(CHUNK) | |
frames.append(data) | |
print "finished recording" | |
# stop Recording | |
stream.stop_stream() | |
stream.close() | |
audio.terminate() | |
waveFile = wave.open(WAVE_OUTPUT_FILENAME, 'wb') | |
waveFile.setnchannels(CHANNELS) | |
waveFile.setsampwidth(audio.get_sample_size(FORMAT)) | |
waveFile.setframerate(RATE) | |
waveFile.writeframes(b''.join(frames)) | |
waveFile.close() |
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:869:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:869:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:869:(find_matching_chmap) Found no matching channel map
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused
ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
python3.6: src/hostapi/alsa/pa_linux_alsa.c:3636: PaAlsaStreamComponent_BeginPolling: Assertion `ret == self->nfds' failed.
Aborted (core dumped)
I may not have the easy_install. Is that the problem?
Thanks in advance,
Chris Pappas
Hi, it just worked like a charm. :) I am new to sound features. If I want to record a wave file as described below:
Each utterance is stored as a one-second (or less)
WAVE format file, with the sample data encoded as
linear 16-bit single-channel PCM values, at a 16 KHz
rate.
Should I change the Constants like:
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 16000
CHUNK = 1024
RECORD_SECONDS = 1
WAVE_OUTPUT_FILENAME = "file.wav"
how should I reflect the 16-bit?
Thank yo for yo code, ma man (or woman).
Sorry but the code won't work
Sorry but the code won't work
What's the error?
Sorry but the code won't work
I think I know the problem, you may have a python3 interpreter while this code is written in python2. You need to delete the spaces after any print and turn it into print(...)
Hi, I got this error when I tried to record audio
Traceback (most recent call last): File "listen.py", line 23, in <module> data = stream.read(CHUNKSIZE) File "/.../python/venv/lib/python3.5/site-packages/pyaudio.py", line 608, in read return pa.read_stream(self._stream, num_frames, exception_on_overflow) OSError: [Errno -9981] Input overflowed
Why it is happening?
How can I fix that?same here, did you find the fix ?
I had same issue on RPi3b+ and fixed it with picking up input device:
stream = self.audio.open(format=FORMAT, input_device_index = 2, channels=CHANNELS, rate=RATE, input=True, # Save the recorded data in a .wav format
frames_per_buffer=CHUNK)
I achieved a much better stability by setting CHUNK to an integer fraction of RATE, e.g. CHUNK = int(RATE/10), otherwise still had same exception mostly already in 10s to 80s after starting the loop with stream.read(chunk). And anyway for such data sources it is a good approach to use "try" and be ready for exceptions and know how much gets lost:)
Hi,thanks good
How can I add timestamp on the recorded audio?
I mean like putting current time on each frame in opencv:
cv2.putText(frame, str(datetime.now()), (20, 40), font, 2, (255, 255, 255), 2, cv2.LINE_AA)
You can use pydub module for this i think.
For example
from pydub import AudioSegment
...
...
...
data = stream.read(CHUNK)
slice = AudioSegment(data, sample_width=???, frame_rate=???, channels=???)
slice_len = len(slice) #slice_len is the duration of data frame in milliseconds
hey all, i know this is too old a gist, but i came here from nvidia forum. Any help is appreciated.
This script is assuming i physically have the jetson right and using its microphone? because i'm connected to it via ssh on my macbook & physically very far. So, i guess I somehow need to send the audio packets/bytes to it?
and does pyaudio help with that? anyone has clues how to proceed? thanks :)
cc @mabdrabo @el07694 @deluxerootit @sinanaybar @bg172 @TheEccentricDuck @shilan @kongkip @YveOms @creboy @jdelange @muthiyanbhushan @Raman99444 @soni30 @Shinoy-12 @salilsaxena @davekimble2 @ajfarkas @kanik9 @progware @ecambronero @ClaudiaMarchPiris @PiepsC @Skykiller664 @pomarec @s1st3r @morenol @sharpriy @riadibadulla @marijnruyts @Dinesh2903 @danidz @HarrisMx @maelfosso @xe1gyq @rdhara @MihailRis @Akshay0724 @nmnhut2010 @ashishmd @rachit1994 @kevinmgamboa
How do you read this file after writing?