Respostas no Fórum
- AutorPosts
Olá Murilo,
Tente instalar esta versão que está sendo indicada na própria mensagem de erro:
pip install tensorflow==2.16.1
25 de março de 2024 às 08:21 em resposta a: AttributeError – ld.waveplot(y = mono_data, sr = sample_rate) #44111Olá David,
Se estiver utilizando a versão 0.10 da biblioteca librosa, é necessário ajustar o script. Aqui está um exemplo retirado da documentação para referência:
import matplotlib.pyplot as plt
y, sr = librosa.load(librosa.ex(‘choice’), duration=10)
fig, ax = plt.subplots(nrows=3, sharex=True)
librosa.display.waveshow(y, sr=sr, ax=ax[0])
ax[0].set(title=’Envelope view, mono’)
ax[0].label_outer()25 de março de 2024 às 08:15 em resposta a: AttributeError: No librosa.util attribute example_audio_file. #44110Olá David,
Como mencionado em nossas mensagens anteriores, a função example_audio_file foi retirada das versões mais recentes da biblioteca librosa. Então se você pretende utilizar os exemplos da biblioteca com a função example_audio_file, será necessário utilizar a versão 0.8.1.
Perfeito Beckert, que bom que deu certo!
Olá Beckert,
A mensagem de erro indica que o caminho para os arquivos .prototxt e .caffemodel estão incorretos.
Verifique se o caminho está correto e que você tenha permissão para acessar os arquivos. Se ainda estiver enfrentando problemas, verifique se os arquivos .prototxt e .caffemodel estão presentes nos locais especificados.
Também identifiquei que você está usando uma versão do OpenCV diferente da sugerida no curso (3.4.3), então provavelmente você terá que ajustar o seu script de acordo com a versão que você está utilizando.
Certo Mateus, obrigado por compartilhar o código.
No seu script, você está comparando a variável result (que armazena a transcrição da fala) e comparando com o path onde está seu arquivo de áudio de notificação ‘n2.mp3‘ (não consegui entender a lógica desta condição):
while (1):
result = listen_microphone()if meu_nome in result:
result = str(result.split(meu_nome + ‘ ‘)[1])
result = result.lower()
print(‘Acionou a assistente!’)
print(‘Após o processamento: ‘, result)if result == ‘C:\\Repositorios\\Pessoal\\IA Expert\\Assistente_Virtual\\Audio\\n2.mp3’:
playsound(‘n2.mp3’)Não consegui entender muito bem seu objetivo, mas seguem algumas sugestões:
- você pode remover a comparação do resultado (result) com o caminho do arquivo de áudio e passar diretamente o caminho do arquivo como argumento para a função playsound. Assim, a linha ficaria assim:
- restante do código permanece o mesmo;
- é sempre uma boa ideia revisar as aulas e comparar seu script com os exemplos disponibilizados no curso. Isso pode ajudar a identificar discrepâncias e garantir que seu código siga as melhores práticas e padrões demonstrados nas aulas.
- Esta resposta foi modificada 1 mês, 2 semanas atrás por Dalton Vargas.
- Esta resposta foi modificada 1 mês, 2 semanas atrás por Dalton Vargas.
Olá Mateus,
Em uma das linhas da mensagem de erro, identifiquei um problema na função playsound. Ao passar o parâmetro, você está utilizando o arquivo n3 como argumento, mas o correto seria fornecer o caminho completo do arquivo entre aspas:
playsound(‘caminho_completo\\para\\o_arquivo\\n3.mp3’)
Este ajuste deve resolver o erro.
- Esta resposta foi modificada 1 mês, 2 semanas atrás por Dalton Vargas.
Olá Mateus,
Parece que este problema está relacionado a biblioteca PyAudio, algum problema em acessar o microfone ou configurar o fluxo de áudio corretamente. Seguem algumas etapas que você pode tentar resolver o problema:
- Verifique as dependências do PyAudio: Certifique-se de que todas as dependências do PyAudio estão instaladas corretamente. O PyAudio geralmente requer algumas bibliotecas do sistema para funcionar corretamente, dependendo do SO que você está usando.
- Atualize o PyAudio: Tente remover a instalação atual do PyAudio e instalar a versão mais recente, pois isso pode corrigir problemas conhecidos.
- Verifique outros programas que acessam o microfone: Se você tiver outros programas em execução que possam estar usando o microfone, isso pode causar conflitos com o PyAudio. Tente fechar outros aplicativos que possam estar usando o microfone e veja se isso resolve o problema.
- Reinicie o computador: Às vezes, simplesmente reiniciar o computador pode resolver problemas temporários de acesso ao dispositivo de áudio.
- Tente usar/executar este script de amostra do PyAudio:
- import pyaudio
import waveFORMAT = 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()
- import pyaudio
Perfeito Mateus, que bom que deu certo! Sigo a disposição 😉
Bons estudos!
Olá Mateus,
Conforme a documentação, este erro está relacionado a uma mudança na biblioteca NumPy, na qual o alias np.complex foi descontinuado e agora você deve usar complex diretamente. Isso está afetando a biblioteca librosa.
Para corrigir isso, você pode editar o arquivo constantq.py na pasta onde o módulo librosa está instalado e substituir todas as ocorrências de np.complex por complex.
No seu caso, o arquivo está localizado em C:\Users\mqjmarques\AppData\Local\Programs\Python\Python39\lib\site-packages\librosa\core\constantq.py. Você pode abri-lo em um editor de texto e fazer essa substituição manualmente.
19 de fevereiro de 2024 às 08:05 em resposta a: AttributeError: No librosa.util attribute example_audio_file. #43911Olá Fernando,
Sugiro usar a mesma versão do librosa que utilizamos nos exemplos do curso: librosa==0.8.1
Seguem os comandos para remover a versão instalada e instalar a 0.8.1:
<p style=”padding-left: 80px;”>!pip uninstall librosa</p>
<p style=”padding-left: 80px;”>!pip install librosa==0.8.1</p>Entendi,
Considerando que o processamento da detecção ocorre a cada frame, é possível que o algoritmo de processamento de áudio possa interromper o fluxo de processamento do vídeo. Para solucionar esse problema, sugiro a implementação de variáveis de controle para alterar seu estado quando o movimento é detectado, permitindo a execução do áudio somente quando um estado específico for identificado.
Sugiro utilizar uma variável booleana inicializada como ‘False’ e alterá-la para ‘True’ apenas quando houver detecção de movimento. Também seria útil ter uma segunda variável para registrar o tempo entre detecções consecutivas, permitindo que o valor da variável booleana seja redefinido para ‘False’ após um determinado intervalo de tempo
Olá Abraão,
Sugiro combinar os algoritmos de rastreamento de objetos com estes de detecção de movimentos. Sobre emitir um som ao detectar o movimento, existem algumas bibliotecas do python para isso, como por exemplo a playsound. Segue um exemplo utilizando a playsound para reproduzir um som:
from playsound import playsound
playsound(‘path/to/audio/file/audio.mp3’)
- Esta resposta foi modificada 2 meses, 1 semana atrás por Dalton Vargas.
Certo, apenas precisa ajustar o carregamento do vídeo:
* ao invés de passar como parâmetro para a função cv2.VideoCapture a variável VIDEO_SOURCE (caminho até um vídeo):
VIDEO_SOURCE = “videos/Cars.mp4”
cap = cv2.VideoCapture(VIDEO_SOURCE)
hasFrame, frame = captura.read()* você passa a ID da câmera:
cap = cv2.VideoCapture(0)
hasFrame, frame = captura.read()Se você tiver mais de uma webcam conectada, pode ser necessário testar qual é a sua webcam identificada pelo número zero e alterar o valor sequencialmente para encontrar a webcam que se deseja utilizar na captura. Com uma única webcam, o valor zero irá funcionar.
Caso você necessite conectar a uma câmera IP, ai você passa o URL de streaming como parâmetro. Normalmente, o protocolo RTSP ou HTTP é usado pela câmera para transmitir vídeo. Por exemplo:
cap = cv2.VideoCapture(‘rtsp://192.168.1.1/1’)A maioria das câmeras IP possui um nome de usuário e senha para acessar o vídeo. Nesse caso, as credenciais devem ser fornecidas no URL de streaming da seguinte forma:
cap = cv2.VideoCapture(‘rtsp://username:password@192.168.1.1/1’)
Também seguem alguns artigos que podem lhe ajudar:- Integrate Your Android Phone Camera with IP Webcam and OpenCV Using Python
- Python-Based Method for Connecting to IP Cameras
- Esta resposta foi modificada 2 meses, 1 semana atrás por Dalton Vargas.
Olá Abraão,
Conforme a mensagem de erro, você escreveu waitkey errado (k = cv2.waiteKey(1) & 0XFF AttributeError: module ‘cv2’ has no attribute ‘waiteKey’). Ajustanto isso deve funcionar.
- AutorPosts