Last active
June 8, 2025 04:43
-
-
Save felipebastosweb/aca62e8ac6708a8be292eacf23028cfa to your computer and use it in GitHub Desktop.
Grava audio do microfone para juntar no vídeo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sounddevice as sd | |
import numpy as np | |
# Define as configurações do microfone (ajuste conforme necessário) | |
sample_rate = 44100 # Taxa de amostragem padrão | |
channels = 1 # 1 para mono, 2 para estéreo | |
# Inicia a gravação de áudio | |
def audio_callback(indata, frames, time, status): | |
# Adiciona o áudio a um array (usando NumPy para facilidade) | |
global audio_data | |
audio_data = np.append(audio_data, indata, axis=0) | |
# Define um flag para controlar a gravação | |
recording = True | |
# Inicializa o fluxo de áudio | |
with sd.InputStream(callback=audio_callback, | |
samplerate=sample_rate, | |
channels=channels) as stream: | |
# Inicia a gravação | |
audio_data = np.array([]) # Inicializa o array de áudio | |
while recording: | |
# (Potencialmente) pode fazer outras operações aqui, como | |
# - Processar o vídeo capturado e mostrar na tela | |
# - Checar se o usuário quer parar a gravação | |
# (Parar a gravação) | |
# Para parar a gravação, você pode definir a variável 'recording' como False | |
# e o loop `while` irá se interromper. | |
# Após a gravação, você tem o áudio em `audio_data`. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pyaudio | |
import wave | |
# Defina os parâmetros de gravação | |
FORMAT = pyaudio.paInt16 # Tipo de dados (16 bits) | |
CHANNELS = 1 # Mono | |
RATE = 44100 # Taxa de amostragem | |
CHUNK = 1024 # Tamanho do buffer | |
DURATION = 5 # Duração da gravação | |
# Cria uma instância do PyAudio | |
p = pyaudio.PyAudio() | |
# Abre a stream de áudio | |
stream = p.open(format=FORMAT, | |
channels=CHANNELS, | |
rate=RATE, | |
input=True, | |
frames_per_buffer=CHUNK) | |
# Inicia a gravação | |
print("Começando a gravar...") | |
frames = [] | |
for _ in range(0, int(RATE / CHUNK * DURATION)): | |
data = stream.read(CHUNK) | |
frames.append(data) | |
# Termina a gravação | |
print("Gravando o áudio...") | |
stream.stop_stream() | |
stream.close() | |
p.terminate() | |
# Salva o áudio em um arquivo WAV | |
wf = wave.open('gravacao_pyaudio.wav', 'wb') | |
wf.setnchannels(CHANNELS) | |
wf.setsampwidth(p.get_sample_size(FORMAT)) | |
wf.setframerate(RATE) | |
wf.setnframes(0) | |
wf.writeframes(b''.join(frames)) | |
wf.close() | |
print("Gravacao salva em gravacao_pyaudio.wav") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment