2013-07-23 3 views
1

pfcalc를 사용하여 사운드 클립에서 오디오 지문을 가져오고 있습니다. 그들은 다음과 같이 : 이제 필자는 다음과 같이 levenshtein 거리를 사용하여 가장 가까운 것을 찾아 내 데이터베이스에서 찾고오디오 지문 일치 - 가장 가까운 일치 찾기

AQAAE5ISLVOkTEF-QfURpkGZHHeeIpehB3HMoRKaikbTKHvQNnlwpIdOxNHHY_IPJttlAECEI8BBAAgFAiigAA 

을 :

AQAAE9GSKVOkLEOy5PlQE0d9fId7HD-aHD_xhMeRrKORLseX44etHD8AYcAgSrEjDKFAsIGIFAJZ 

AQAAE1M9RUkW1NGFH0d4HcnyJIlw4UW17HiyPMHt4B18EX2go9qJTz_eJzgBgBg4CphigUCMGCWFAcAw 

AQAAAA 

지금은 그것과 같을 수 있습니다, 소리를 녹음하고 지문 :

def levenshtein_distance(first, second): 
    """Find the Levenshtein distance between two strings.""" 
    if len(first) > len(second): 
     first, second = second, first 
    if len(second) == 0: 
     return len(first) 
    first_length = len(first) + 1 
    second_length = len(second) + 1 
    distance_matrix = [[0] * second_length for x in range(first_length)] 
    for i in range(first_length): 
     distance_matrix[i][0] = i 
    for j in range(second_length): 
     distance_matrix[0][j]=j 
    for i in xrange(1, first_length): 
     for j in range(1, second_length): 
      deletion = distance_matrix[i-1][j] + 1 
      insertion = distance_matrix[i][j-1] + 1 
      substitution = distance_matrix[i-1][j-1] 
      if first[i-1] != second[j-1]: 
       substitution += 1 
      distance_matrix[i][j] = min(insertion, deletion, substitution) 
    return distance_matrix[first_length-1][second_length-1] 

소리가 내가주는 샘플과 잘 맞지 않아 좋은 결과를 얻지 못합니다.

제대로하고 있습니까? 밖에있는 지문 인식 라이브러리가 있습니까? 파이썬이나 루비를 사용하는 임 ..

임 새 호출에 맞추기 위해 노력하고 있습니다.

답변

0

필요한 방식으로 지문 방법이 잘 작동하지 않습니다!

나는 ... 멜 주파수 켑 스트 럼 계수 (MFFCs)는 이런 종류의 문제를 해결하기 위해 본

기술자 세트 (평균을 추출하는 방법을 다른 방법이있다 불규칙성, 평균 무게 중심, 표준 편차 불규칙성, MFCC) 그리고 하나의 분류 방법 (무작위 숲, MLP)을 사용하십시오!

1

먼저 코드 문자열을 직접 비교하면 안됩니다. 나는 어떤 알고리즘을 기반으로 pfcalc 알고리즘을 알지는 못하지만 오디오 입력의 각 프레임에서 일부 오디오 기능 (예 : 에너지, mfcc ... 등)을 측정 할 가능성이 높습니다. 이러한 기능은 문자열 값 (또는 base64 문자열)으로 변환되는 정수 값일 수 있습니다. 따라서 이러한 문자열의 값을 비교하는 것은 의미가 없습니다 (동일한 오디오 콘텐츠를 식별하려는 경우 제외).

나는 "새가 부르짖는 소리에 맞추기 위해 노력하는 중"이라고 생각하는 것이 무엇인지 잘 모르겠지만, 인식 할 수 있도록 설계 되었기 때문에 오디오 핑거링을 사용하여 해결되지 않을 것이라고 생각합니다. "거의 비슷한"오디오 컨텐츠.

1

비교할 32 비트 정수를 제공하기 위해 -raw 옵션을 사용하여 fpcalc를 실행하십시오.

파이썬 예

fps_20 = [x >> 12 for x in fps] 

과의 차이를 계산 : 매우 비교가 용이

./fpcalc -raw audio.wav 

, 20 비트로 각 지문 변환한다.