2011-05-16 3 views
2

마이크에서 바이너리로 사운드를 변환하고 데이터베이스 (음성 인식 프로그램 유형이지만 일치하지 않는 방법을 알고 싶습니다. ?. 내가 이진로 변환 할 수 있습니다 직접 있도록 또한 가능 여부입니다 마이크에서 소리를 얻을마이크에서 바이너리로 사운드를 변환하고 데이터베이스에서 일치 시키려합니다.

+0

ASP.net에서 하시겠습니까? ActiveX를 작성해야 할 수도 있습니다. 또는 일부 클라이언트 쪽 컨트롤 .. as ASP.net에서 직접 클라이언트 컴퓨터에서이 작업을 수행 할 수 없습니다. –

답변

1

당신은 할 수있을 않을거야 사운드 데이터에 대해 이진 비교를 수행하여 음성을 식별합니다. 특정 사운드의 바이너리는 거의 모든 것의 사소한 변형으로 인해 문자 그대로 동일한 파일이 아니면 해당 사운드의 모방과 동일하지 않습니다. 데이터의 퍼지 비교를 수행하려면 신호 처리가 필요합니다. wikipedia에서 신호 처리에 관해 읽을 수 있습니다.

타사 라이브러리를 사용하여 사운드를보다 쉽게 ​​처리 할 수 ​​있습니다. this과 같은 것으로 시작하는 것이 좋습니다.

1

두 가지 매우 다른 문제가 있습니다.

첫 번째는 기술적 인 부분입니다. 마이크에서 사운드를 디지털 파형으로 변환하는 것입니다. 이 작업을 수행하는 방법은 사용중인 OS 및 API에 따라 다릅니다 (Windows에서는 DirectX 오디오 또는 사용 가능한 경우 ASIO). 통상적으로,이를 수행 할 방법이다

  1. 적합 파라미터 (채널 번호, 사운드 카드의 물리적 입력 샘플 레이트, 비트 깊이 버퍼 사이즈)
  2. 함께 마이크의 기록 버퍼를 설정
  3. 녹음을 시작하십시오. 이것은 보통 녹음 된 버퍼를 처리하기 위해 콜백 함수에 사운드 라이브러리를 가리키는 것을 포함합니다.
  4. 콜백에서 버퍼를 읽고 적절한 형식으로 변환 한 다음 원하는 오디오 파일에 추가합니다. (또한 RAM에만 기록 할 수는 있지만 긴 기록은 사용 가능한 저장 용량을 초과 할 수 있습니다).
  5. 스토어 적절한 데이터베이스 필드에서 녹음 된 오디오 (바이너리 덩어리의 일종)

이 비록 쉬운 부분이다; 더 어려운 부분은 다른 청크와 오디오 데이터 청크를 일치시키는 것입니다. 순진한 접근법은 정확한 일치를 찾으려고 시도하는 것이지만 그다지 도움이되지는 않을 것입니다. 하나를 찾는 기회가 실질적으로 제로이기 때문에 최상의 장비 라 할지라도 약간의 잡음이 발생하고 녹음 설정이 다양합니다 약간 원하든 원하지 않든간에, 그래서 누군가 두 번 완전하고 똑같은 것을 말하더라도, 녹음 된 오디오의 차이점을 여전히 볼 수 있습니다.

그러면 수행해야 할 작업은 파형의 특정 특성을 찾는 것입니다. 당신이 볼 수있는 것들이다 :이 비 사소한 꽤 심각한 수학을 포함 추출

  • 전체 진폭 모양
  • 자료 주파수
  • 선정 고조파 (포먼트)

; 그런 다음 지문을 일종의 지문으로 응축하고 모호한 부분과 비교하는 방법을 찾아야합니다 (정확한 일치가 필요한 것보다는 일치하는 것이 적절합니다).올바른 매개 변수와 비교 알고리즘을 찾는 것은 쉽지 않으며 많은 조정과 테스트가 필요합니다. 가장 좋은 방법은이 작업을 수행하는 라이브러리를 찾는 것입니다.

관련 문제