tensorflow 음성 예제

주의해야 할 한 가지 문제는 데이터 집합에서 동일한 사운드가 매우 유사한 반복을 가질 수 있으며 교육, 유효성 검사 및 테스트 집합에 분산되어 있는 경우 오해의 소지가 있는 메트릭을 제공할 수 있다는 것입니다. 예를 들어 음성 명령 집합에는 동일한 단어를 여러 번 반복하는 사람이 있습니다. 이러한 반복의 각각은 다른 것과 매우 가깝기 때문에 교육이 과도하게 적합하고 암기하는 경우 테스트 세트에서 매우 유사한 복사본을 보았을 때 비현실적으로 잘 수행 될 수 있습니다. 이러한 위험을 피하기 위해 음성 명령은 한 사람이 말한 것과 동일한 단어가 포함된 모든 클립을 동일한 파티션에 넣도록 합니다. 클립은 파일 이름의 해시를 기반으로 학습, 테스트 또는 유효성 검사 세트에 할당되어 새 클립이 추가되는 경우에도 할당이 안정적으로 유지되고 다른 집합으로 마이그레이션되는 교육 샘플을 방지합니다. 지정된 스피커의 모든 단어가 동일한 버킷에 있는지 확인하기 위해 해시 함수는 할당을 계산할 때 `nohash` 다음의 파일 이름에 있는 모든 것을 무시합니다. 즉, pete_nohash_0.wav 및 pete_nohash_1.wav와 같은 파일 이름이 있는 경우 동일한 집합에 있어야 합니다. 나는 다양한 병 모양 (예 : 128)과 함께 간단한 너무 깊지 않은 2d cnn 인코더 디코더 아키텍처로 이것을 구현했습니다. 그것은 내 초기 1d conv 앙상블에 0.01 부스트처럼 준 우리는 우리의 최종 lightgbm 스태커에 사용. 여기에 확실히 더 많은 것을 얻을 수 있고 난 확실히 내 자동 엔코더 아키텍처 향상 될 수 있습니다 확신-특히 웨이브 넷 autoencoder 같은 관련 작업을 읽은 후. 이 부분은 또한 훈련속도가 매우 느렸고, 제가 생각할 수 있는 가장 간단한 접근법에 의지했습니다.

예를 들어, 데톤볼루션 레이어를 간단한 업샘플링 레이어로 대체합니다. 잠시 뒤로 나는 Kaggle과 구글 브레인에 의해 조직 키워드 탐지 도전에 참여했다. 문제는 Siri 또는 alexa와 같은 음성 인터페이스에서 “Call Brad”라고 말할 때 키워드 감지 정확도를 어떻게 향상시킬 수 있는지입니다. 음성 분류 모델을 빌드하려면 다음 단계를 따르십시오. 일부 단어의 철자가 틀리는 것을 즉시 확인할 수 있습니다. 이것은 CTC 알고리즘 자체의 특성에서 비롯됩니다. 여기서는 단어 대신 문자를 예측합니다. 좋은 점은 어휘외의 문제가 줄어든다는 점입니다. 더 나쁜 부분은 예를 들어 `sek`을 때로는 `추구`하는 대신얻을 수 있다는 것입니다. 각 예제에 대한 로그 출력을 출력하기 때문에 CTCWordBeamSearch와 같은 사용하여 출력의 토큰을 모음 내에 알려진 토큰으로 제한하여 대신 단어를 예측할 수 있습니다.

MFCC는 분광에 또 다른 변화이며(예를 들어 음악에 비해) 인간의 음성의 특성을 더 잘 포착하기 위한 것입니다. MFCC 위에델타 및 델타 델타 변환도 있으며, 이는 아마도 첫 번째 및 두 번째 파생 상품으로 생각할 수 있습니다. 이것은 같은 샘플의 MFCC가 어떻게 생겼는지입니다 : 대부분의 경우 당신이 걱정하는 소리가 간헐적이므로 일치하는 오디오가 없을 때 아는 것이 중요합니다. 이를 지원하기 위해 모델이 흥미로운 것을 감지하지 못하는 시기를 나타내는 특수 _silence_ 레이블이 있습니다. 실제 환경에서 완전한 침묵이 없기 때문에, 우리는 실제로 조용하고 관련이없는 오디오예제를 제공해야합니다. 이를 위해 실제 클립에 혼합된 _background_noise_ 폴더를 다시 사용하여 오디오 데이터의 짧은 부분을 끌어당기고 _silence_의 기본 진실 클래스로 이를 공급합니다. 기본적으로 학습 데이터의 10%는 다음과 같이 제공되지만 –silence_percentage을 사용하여 비율을 제어할 수 있습니다.