Измеренная частота не соответствует ожидаемойPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Измеренная частота не соответствует ожидаемой

Сообщение Anonymous »

У меня возникла проблема с pyaudio. Я постоянно печатаю частоту микрофонного входа. Однако когда я воспроизвожу тон 400 Гц, он обнаруживает тон 387 Гц, и когда я перемещаю источник звука к микрофону, частота не меняется, хотя она должна быть выше 400 Гц из-за эффекта Доплера.
Это мой код.

Код: Выделить всё

import pyaudio
import numpy as np

def get_microphone_frequency(rate=44100, chunk_size=1024):
p = pyaudio.PyAudio()

stream = p.open(
format=pyaudio.paFloat32,
channels=1,
rate=rate,
input=True,
frames_per_buffer=chunk_size
)

while True:
data = stream.read(chunk_size)

audio_data = np.frombuffer(data, dtype=np.float32)

fft_result = np.fft.fft(audio_data)

peak_index = np.argmax(np.abs(fft_result))

frequency = peak_index * rate / len(audio_data)

print(f"Microphone frequency: {frequency} Hz")

get_microphone_frequency()
Я пробовал изменить размер фрагмента, искал решения в Google, но не нашел. Заранее спасибо.
С уважением,
Кевин

Подробнее здесь: https://stackoverflow.com/questions/785 ... s-expected
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»