2016-12-25 5 views
0

사전에 단어를 기록하고 파이썬 스크립트에 동일한 암호를 말하면 음성 암호가 이전에 기록 된 파일과 일치하면 프로그램을 실행해야합니다. 비밀번호가 적절한 단어가 아니지만 완전한 횡설수설 일 수 있으므로 음성 인식 툴킷을 사용하고 싶지 않습니다. 나는 이전에 녹음 된 파일과 새롭게 발음 된 소리를 질적 인 배열로 저장하는 것으로 시작했다. 이제 두 배열이 서로 '가까이'있는지 확인하는 방법이 필요합니다. 누군가가 이것을 위해 올바른 방향으로 나를 가리킬 수 있습니까?파이썬에서 음성으로 활성화 된 암호 구현

답변

1

샘플 레벨 (또는 시간 도메인)에서 음성 샘플과 비교할 수 없습니다. 말한 단어의 각 부분은 길이가 다를 수 있으므로 일치하지 않을 것이며 각 부분의 수준도 달라질 것입니다. 또 다른 문제는 사운드 신호가 구성하는 개별 구성 요소의 위상도 변경 될 수 있으므로 동일한 사운드를 갖는 두 개의 신호가 시간 영역에서 매우 다르게 보일 수 있다는 것입니다. 그래서 가장 좋은 해결책은 신호를 주파수 영역으로 옮기는 것입니다. 이를 수행하는 일반적인 방법 중 하나는 FFT (Fast Fourier Transform)를 사용하는 것입니다. 당신은 그것을 볼 수 있고, 이것에 관한 많은 자료가 그물에 있고, 파이썬에서 그것을 잘 지원합니다.

다음과 같이 진행 할 수 있었다 :

  • 나누기 소리 샘플을 몇 밀리 초 단위의 작은 세그먼트로.

  • 세그먼트의 FFT의 주요 계수를 찾아라.

  • 일부 주요 계수의 순서를 비교합니다.