Wykrywanie skoku w czasie rzeczywistym

Próbuję wykryć skoki w czasie rzeczywistym użytkowników śpiewających, ale napotykam na wiele problemów. Próbowałem wielu metod, w tym FFT (Problem z FFT (zwraca wyniki losowe)) i autokorelacja (Detekcja skoku autokorelacji zwraca losowe wyniki z wejściem mikrofonowym), ale wydaje mi się, że nie mogę uzyskać żadnych metod, aby uzyskać dobry wynik. Czy ktoś może zaproponować metodę śledzenia wysokości tonu w czasie rzeczywistym lub jak ulepszyć metodę, którą już mam? Nie mogę znaleźć żadnych dobrych metod C / C ++ do wykrywania skoku w czasie rzeczywistym.

Dzięki,

Niall.

Edycja: Aby zauważyć, sprawdziłem, czy dane wejściowe mikrofonu są poprawne i czy przy korzystaniu z fali sinusoidalnej wyniki są mniej więcej poprawne.

Edycja: Niestety, jest późno, ale w tej chwili, wizualizuję autolokalizację, pobierając wartości z tablicy wyników i każdego indeksu, i wykreślając indeks na osi X i wartość na osi Y (obie są podzielone przez 100000 lub coś w tym stylu i im używam OpenGL), podłączanie danych do hosta VST i używanie wtyczek VST nie jest dla mnie opcją. W tej chwili wygląda to na kilka przypadkowych kropek. Czy robię to poprawnie, czy możesz mi wskazać jakiś kod do zrobienia tego lub pomóc mi zrozumieć, jak wizualizować surowe dane audio i dane autokorelacji.

questionAnswers(4)

yourAnswerToTheQuestion