Nothing Special   »   [go: up one dir, main page]

KR20200119377A - 화자 식별 뉴럴 네트워크를 구현하는 방법 및 장치 - Google Patents

화자 식별 뉴럴 네트워크를 구현하는 방법 및 장치 Download PDF

Info

Publication number
KR20200119377A
KR20200119377A KR1020190033668A KR20190033668A KR20200119377A KR 20200119377 A KR20200119377 A KR 20200119377A KR 1020190033668 A KR1020190033668 A KR 1020190033668A KR 20190033668 A KR20190033668 A KR 20190033668A KR 20200119377 A KR20200119377 A KR 20200119377A
Authority
KR
South Korea
Prior art keywords
neural network
speaker
speech signal
embedding vector
learning
Prior art date
Application number
KR1020190033668A
Other languages
English (en)
Inventor
강성찬
김남수
김재흥
채석완
Original Assignee
삼성전자주식회사
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, 서울대학교산학협력단 filed Critical 삼성전자주식회사
Priority to KR1020190033668A priority Critical patent/KR20200119377A/ko
Priority to US16/694,333 priority patent/US11694696B2/en
Publication of KR20200119377A publication Critical patent/KR20200119377A/ko

Links

Images

Classifications

    • G06N3/0454
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/18Artificial neural networks; Connectionist approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/065Adaptation
    • G10L15/07Adaptation to the speaker
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/20Speech recognition techniques specially adapted for robustness in adverse environments, e.g. in noise, of stress induced speech
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/04Training, enrolment or model building
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/20Pattern transformations or operations aimed at increasing system robustness, e.g. against channel noise or different working conditions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Circuit For Audible Band Transducer (AREA)
  • Stereophonic System (AREA)

Abstract

화자 식별 뉴럴 네트워크를 구현하는 방법 및 장치는, 클린 환경의 음성 신호에 대한 화자를 식별하도록 학습되는 제1 뉴럴 네트워크를 생성하고, 잡음 환경의 음성 신호에 대한 화자를 식별하기 위한 제2 뉴럴 네트워크를 생성하고, 제1 뉴럴 네트워크 및 제2 뉴럴 네트워크에 관한 교사-학생 학습 모델에 따라 제2 뉴럴 네트워크를 학습시킴으로써 화자 식별 뉴럴 네트워크를 형성할 수 있다.

Description

화자 식별 뉴럴 네트워크를 구현하는 방법 및 장치{METHOD AND APPARATUS FOR IMPLEMENTING NEURAL NETWORK FOR IDENTIFYING SPEAKER}
본 개시는 화자 식별 뉴럴 네트워크를 구현하는 방법 및 장치에 관한 것이다.
뉴럴 네트워크(neural network)는 생물학적 뇌를 모델링하는 컴퓨터 과학적 아키텍쳐(computational architecture)를 참조한다. 최근 뉴럴 네트워크(neural network) 기술이 발전함에 따라, 다양한 종류의 전자 시스템에서 뉴럴 네트워크를 활용하여 입력 데이터를 분석하고 유효한 정보를 추출하는 연구가 활발히 진행되고 있다.
음성 인식 분야 내지 음성에 대한 화자 식별 분야에서도 뉴럴 네트워크가 활용될 수 있다. 뉴럴 네트워크는 반복적인 학습을 통해 음성 신호를 입력받아 음성 신호에 대한 화자가 누구인지를 나타내는 결과물을 출력할 수 있다. 음성 신호에 대한 화자가 식별되기 위해서는 음성 신호에 포함되는 잡음을 처리하는 과정 및 음성 신호로부터 화자를 구별하는 과정이 수반되므로, 양 과정 모두에 대한 높은 성능을 달성하기 위한 기술이 요구될 수 있다.
다양한 실시예들은 화자 식별 뉴럴 네트워크를 구현하는 방법 및 장치를 제공하기 위한 것이다. 본 개시가 이루고자 하는 기술적 과제는 전술한 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
전술한 기술적 과제를 해결하기 위한 수단으로서, 본 개시의 일 측면에 따른 화자 식별 뉴럴 네트워크를 구현하는 방법은, 클린 환경의 음성 신호에 대한 화자를 식별하도록 학습되는 제1 뉴럴 네트워크를 생성하는 단계; 잡음 환경의 음성 신호에 대한 화자를 식별하기 위한 제2 뉴럴 네트워크를 생성하는 단계; 및 상기 제1 뉴럴 네트워크가 교사 뉴럴 네트워크로 설정되고 상기 제2 뉴럴 네트워크가 학생 뉴럴 네트워크로 설정되는 교사-학생 학습 모델에 따라, 상기 제2 뉴럴 네트워크를 학습시킴으로써 상기 화자 식별 뉴럴 네트워크를 형성하는 단계를 포함할 수 있다.
본 개시의 다른 측면에 따른 화자 식별 뉴럴 네트워크를 구현하는 장치는, 적어도 하나의 프로그램을 저장하는 메모리; 및 상기 적어도 하나의 프로그램을 실행함으로써 상기 화자 식별 뉴럴 네트워크를 구현하는 프로세서를 포함하고, 상기 프로세서는, 클린 환경의 음성 신호에 대한 화자를 식별하도록 학습되는 제1 뉴럴 네트워크를 생성하고, 잡음 환경의 음성 신호에 대한 화자를 식별하기 위한 제2 뉴럴 네트워크를 생성하고, 상기 제1 뉴럴 네트워크가 교사 뉴럴 네트워크로 설정되고 상기 제2 뉴럴 네트워크가 학생 뉴럴 네트워크로 설정되는 교사-학생 학습 모델에 따라, 상기 제2 뉴럴 네트워크를 학습시킴으로써 상기 화자 식별 뉴럴 네트워크를 형성할 수 있다.
본 개시의 또 다른 측면에 따른 화자 식별 뉴럴 네트워크를 활용하여 입력 음성 신호에 대한 화자를 식별하는 장치는, 적어도 하나의 프로그램을 저장하는 메모리; 및 상기 적어도 하나의 프로그램을 실행함으로써 상기 입력 음성 신호에 대한 화자를 식별하는 프로세서를 포함하고, 상기 프로세서는, 상기 입력 음성 신호로부터 피쳐(feature)를 추출하고, 상기 피쳐를 상기 화자 식별 뉴럴 네트워크에 입력하여 상기 화자 식별 뉴럴 네트워크로부터 상기 피쳐에 대응되는 임베딩 벡터를 추출하고, 상기 임베딩 벡터에 기초하여 상기 입력 음성 신호에 대한 화자를 식별하고, 상기 화자 식별 뉴럴 네트워크는, 클린 환경의 음성 신호에 대한 화자를 식별하도록 학습되는 제1 뉴럴 네트워크가 교사 뉴럴 네트워크로 설정되고 잡음 환경의 음성 신호에 대한 화자를 식별하기 위한 제2 뉴럴 네트워크가 학생 뉴럴 네트워크로 설정되는 교사-학생 학습 모델에 따라 상기 제2 뉴럴 네트워크가 학습되어 형성될 수 있다.
도 1은 일부 실시예에 따른 화자 식별 뉴럴 네트워크를 활용하여 입력 음성 신호에 대한 화자를 식별하는 장치가 동작하는 과정을 설명하기 위한 도면이다.
도 2는 일부 실시예에 따른 뉴럴 네트워크에서 수행되는 연산을 설명하기 위한 도면이다.
도 3은 일부 실시예에 따른 화자 식별 뉴럴 네트워크를 구현하는 장치를 구성하는 요소들을 나타내는 블록도이다.
도 4는 일부 실시예에 따른 제1 뉴럴 네트워크가 생성되는 과정을 설명하기 위한 도면이다.
도 5는 일부 실시예에 따른 제2 뉴럴 네트워크가 생성되는 과정을 설명하기 위한 도면이다.
도 6은 일부 실시예에 따른 제2 뉴럴 네트워크를 학습시킴으로써 화자 식별 뉴럴 네트워크를 형성하는 과정을 설명하기 위한 도면이다.
도 7은 일부 실시예에 따른 화자 식별 뉴럴 네트워크를 활용하여 입력 음성 신호에 대한 화자를 식별하는 장치가 동작하는 구체적인 예시를 나타내는 도면이다.
도 8은 일부 실시예에 따른 화자 식별 뉴럴 네트워크를 활용하여 문장 단위에 대한 화자를 식별하는 과정을 설명하기 위한 도면이다.
도 9는 일부 실시예에 따른 화자 식별 네트워크를 통해 입력 음성 신호에 대한 화자가 식별되는 성능을 설명하기 위한 표를 나타내는 도면이다.
도 10은 일부 실시예에 따른 화자 식별 뉴럴 네트워크를 구현하는 방법을 구성하는 단계들을 나타내는 흐름도이다.
도 11은 일부 실시예에 따른 화자 식별 뉴럴 네트워크를 활용하여 입력 음성 신호에 대한 화자를 식별하는 방법을 구성하는 단계들을 나타내는 흐름도이다.
이하 첨부된 도면을 참조하면서 오로지 예시를 위한 실시예들을 상세히 설명하기로 한다. 아래의 설명은 실시예들을 구체화하기 위한 것일 뿐 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 상세한 설명 및 실시예로부터 당해 기술분야의 전문가가 용이하게 유추할 수 있는 것은 권리범위에 속하는 것으로 해석된다.
본 명세서에서 사용되는 '구성된다' 또는 '포함한다' 등의 용어는 명세서 상에 기재된 여러 구성 요소들 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수 있고, 또는 추가적인 구성 요소들 또는 단계들이 더 포함될 수 있는 것으로 해석되어야 한다.
본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같은 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있으나, 상기 구성 요소들은 상기 용어들에 의해 한정되지 않아야 한다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소들로부터 구별하기 위한 목적으로만 사용된다.
본 명세서에서 사용되는 용어는 본 발명에서의 기능을 고려하여 가능한 현재 널리 사용되는 일반적인 용어들로 선택되었으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당하는 발명의 설명 부분에서 그 의미가 상세하게 기재될 것이다. 따라서, 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 실시예들은 화자 식별 뉴럴 네트워크를 구현하는 방법 및 장치에 관한 것으로서 이하의 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서는 자세한 설명을 생략한다.
도 1은 일부 실시예에 따른 화자 식별 뉴럴 네트워크를 활용하여 입력 음성 신호에 대한 화자를 식별하는 장치가 동작하는 과정을 설명하기 위한 도면이다.
도 1을 참조하면, 화자 식별 뉴럴 네트워크(30)를 활용하여 입력 음성 신호에 대한 화자를 식별하는 장치(100)에서 화자 식별이 수행되는 과정의 예시가 도시되어 있다. 화자 식별은 장치(100)에 포함되는 메모리(110) 및 프로세서(120)에 의해 수행될 수 있다. 도 1에서는 장치(100)가 모바일 디바이스인 것으로 도시되었으나, 이는 예시에 불과할 뿐, 장치(100)는 메모리(110) 및 프로세서(120)를 구비할 수 있는 다른 형태의 전자 기기에 제한 없이 해당할 수 있다.
화자(speaker)는 음성을 생성하는 주체를 의미할 수 있다. 예를 들면, 화자는 장치(100)의 사용자일 수 있다. 다만 이에 제한되는 것은 아니고, 장치(100)의 사용자가 아닌 다른 인물, 울음 소리를 낼 수 있는 각종 동물들, 녹음된 음성을 재생할 수 있는 전자 기기 및 파도 소리나 바람 소리를 일으키는 자연물 등도 화자에 해당할 수 있다.
화자를 식별(identifying)하는 것은 장치(100)에 입력되는 음성 신호가 어떤 화자에 의한 음성 신호인지를 결정하는 것을 의미할 수 있다. 화자 식별은 입력되는 음성 신호가 무작위한 음성이 아닌 특정한 화자의 음성임을 인식(recognizing)하는 과정 및 특정한 화자가 구체적으로 어떤 화자를 나타내는지를 구별하는 과정을 포함할 수 있다. 따라서, 장치(100)의 화자 식별에 의해 입력되는 음성 신호가 누군가의 음성이라는 점이 인식되더라도, 해당 음성을 발화한 화자가 누구인지가 구별되지 않는 경우도 존재할 수 있다.
장치(100)는 메모리(110) 및 프로세서(120) 외에도, 화자에 의해 발화되는 음성을 장치(100)에서 처리 가능한 음성 신호로 변환하는 음성 센서를 더 포함할 수 있다. 예를 들면, 장치(100)는 마이크로폰(microphone)을 음성 센서로서 포함할 수 있다. 음성 센서는 광대역 마이크로폰, 공진기 마이크로폰 및 협대역 공진기 마이크로폰 어레이 등과 같은 형태, 또는 장치(100) 내에 구현될 수 있는 다른 형태에 제한 없이 해당할 수 있다.
화자 식별 뉴럴 네트워크(30)는 입력 음성 신호에 대한 화자를 식별하기 위한 뉴럴 네트워크(neural network)일 수 있다. 화자 식별 뉴럴 네트워크(30)는 입력 음성 신호에 대한 화자를 식별하도록 학습될 수 있다. 화자 식별 뉴럴 네트워크(30)를 구성하는 레이어(layer), 노드(node) 등에 관한 데이터는 메모리(110)에 저장될 수 있고, 프로세서(120)는 메모리(110)에 저장되는 화자 식별 뉴럴 네트워크(30)를 구성하는 데이터에 대한 연산을 통해 화자 식별을 수행할 수 있다. 뉴럴 네트워크의 구조 및 동작에 대한 구체적인 내용은 도 2를 통해 후술될 수 있다.
화자 식별 뉴럴 네트워크(30)는 임베딩 벡터(embedding vector)에 기초하여 화자 식별을 수행할 수 있다. 화자 식별 뉴럴 네트워크(30)를 구성하는 적어도 하나의 레이어 중 마지막 은닉층(last hidden layer)은 임베딩 레이어(embedding layer)로 지칭될 수 있고, 임베딩 벡터는 임베딩 레이어의 출력을 의미할 수 있다. 서로 다른 화자에 의한 음성 신호는 서로 다른 임베딩 벡터로 출력될 수 있으므로, 프로세서(120)는 임베딩 벡터로부터 그에 대응되는 화자가 누구인지를 식별할 수 있다.
화자의 발화에 의한 음성은 음성 센서에 의해 음성 신호로 변환될 수 있고, 프로세서(120)는 음성 신호를 다시 피쳐(feature)로 변환할 수 있다. 음성 신호의 피쳐는 푸리에 변환(Fourier transform) 등과 같은 연산을 통해 음성 신호로부터 추출될 수 있다. 화자 식별 뉴럴 네트워크(30)에는 음성 신호의 피쳐가 입력될 수 있다. 화자 식별 뉴럴 네트워크(30)는 입력되는 피쳐에 대한 연산을 수행하여 피쳐에 대응되는 임베딩 벡터를 출력할 수 있다.
입력 음성 신호에 대한 임베딩 벡터 및 미리 저장된 임베딩 벡터에 대한 비교를 통해 화자 식별이 수행될 수 있다. 이를 위해, 별도의 등록 절차에 따라 적어도 하나의 화자에 대한 임베딩 벡터가 메모리(110)에 미리 저장될 수 있다. 장치(100)는 미리 저장된 임베딩 벡터와의 비교를 통해 입력 음성 신호가 미리 저장된 적어도 하나의 화자 중 어느 화자에 의한 것인지를 결정할 수 있다.
화자 식별 뉴럴 네트워크(30)를 활용한 화자 식별은 화자 식별 뉴럴 네트워크(30)가 학습을 통해 형성된 이후에 비로소 수행될 수 있다. 화자 식별 뉴럴 네트워크(30)는 교사-학생 학습 모델(teacher-student learning model)에 따라 학습되어 형성될 수 있다. 화자 식별 뉴럴 네트워크(30)의 형성에 대한 구체적인 내용은 도 4 내지 도 6을 통해 후술될 수 있다.
화자 식별 뉴럴 네트워크(30)가 형성된 이후, 장치(100)는 화자 식별 뉴럴 네트워크(30)를 활용하여 입력 음성 신호에 대한 화자를 식별할 수 있다. 도 1에 도시되는 예시와 같이, 장치(100)는 화자_k의 발화에 의한 입력 음성 신호를 수신할 수 있고, 장치(100)는 입력 음성 신호로부터 피쳐를 추출할 수 있고, 장치(100)는 피쳐를 화자 식별 뉴럴 네트워크(30)에 입력할 수 있고, 장치(100)는 화자 식별 뉴럴 네트워크(30)로부터 피쳐에 대응되는 임베딩 벡터를 추출할 수 있고, 장치(100)는 임베딩 벡터를 미리 저장된 화자_1 내지 화자_n에 해당하는 값들과 비교할 수 있고, 장치(100)는 비교 결과 임베딩 벡터가 화자_k를 나타내는 것으로 식별할 수 있다. 장치(100)가 뉴럴 네트워크(30)를 활용하여 화자를 식별하는 구체적인 내용은 도 7 내지 도 8을 통해 후술될 수 있다.
도 2는 일부 실시예에 따른 뉴럴 네트워크에서 수행되는 연산을 설명하기 위한 도면이다.
도 2를 참조하면, 뉴럴 네트워크(1)에 입력 레이어(Layer 1), 하나 이상의 히든 레이어들(Layer 2, Layer 3) 및 출력 레이어(Layer 4)가 포함되는 구조가 도시되어 있다. 뉴럴 네트워크(1)는 입력 데이터(I1, I2)를 수신하여 입력 데이터(I1, I2)에 대한 연산을 수행할 수 있고, 연산 결과에 기초하여 출력 데이터(O1, O2)를 생성할 수 있다.
도 2를 통해 설명되는 뉴럴 네트워크(1)는, 장치(100)에 의해 형성되고 장치(100)에 의해 활용되어 화자 식별을 수행하는 화자 식별 뉴럴 네트워크(30)의 한 예시일 수 있다. 또한, 뉴럴 네트워크(1)는 도 4 내지 도 6을 통해 후술될 제1 뉴럴 네트워크(10) 및 제2 뉴럴 네트워크(20)의 한 예시일 수 있다. 따라서, 제1 뉴럴 네트워크(10), 제2 뉴럴 네트워크(20) 및 화자 식별 뉴럴 네트워크(30)에서 수행되는 연산에 대해서는, 뉴럴 네트워크(1)에서 수행되는 연산에 대한 설명이 동일하게 적용될 수 있다.
뉴럴 네트워크(1)는 2개 이상의 히든 레이어들을 포함하는 딥 뉴럴 네트워크(DNN, deep neural network) 또는 n-계층 뉴럴 네트워크일 수 있다. 도 2에 도시된 예시와 같이, 뉴럴 네트워크(1)는 입력 레이어(Layer 1), 2개의 히든 레이어들(Layer 2, Layer 3) 및 출력 레이어(Layer 4)를 포함할 수 있으므로, 뉴럴 네트워크(1)는 딥 뉴럴 네트워크일 수 있다. 뉴럴 네트워크(1)가 딥 뉴럴 네트워크로 구현되는 경우 데이터에 대한 연산이 처리되는 과정이 보다 심화될 수 있으므로, 단일 레이어만이 형성되는 경우 대비, 딥 뉴럴 네트워크는 더욱 복잡한 데이터 및 연산을 처리할 수 있다. 한편, 뉴럴 네트워크(1)는 4개의 레이어들을 포함하는 것으로 도시되어 있으나, 이는 예시에 불과할 뿐, 뉴럴 네트워크(1)는 더 적거나 더 많은 레이어들을 포함할 수 있고, 더 적거나 더 많은 채널들을 포함할 수 있다. 따라서, 뉴럴 네트워크(1)는 도 2에 도시되는 예시와는 다른 다양한 구조의 레이어들 및 채널들로 구성될 수 있다.
뉴럴 네트워크(1)를 구성하는 레이어들 각각은 복수의 채널들을 포함할 수 있다. 채널은 뉴런(neuron), 프로세싱 엘리먼트(processing element, PE), 유닛(unit) 또는 이와 유사한 용어들로 알려진 인공 노드(artificial node)들에 해당할 수 있다. 도 2에 도시되는 예시와 같이, 입력 레이어(Layer 1)는 2개의 채널들(노드들), 히든 레이어(Layer 2) 및 히든 레이어(Layer 3) 각각은 3개의 채널들을 포함할 수 있다. 다만 이는 예시에 불과할 뿐, 뉴럴 네트워크(1)의 레이어들 각각은 다양한 개수의 채널들(노드들)을 포함할 수 있다.
뉴럴 네트워크(1)의 레이어들 각각에 포함되는 채널들은 서로 연결되어 데이터를 처리할 수 있다. 예를 들면, 뉴럴 네트워크(1)에 포함되는 임의의 한 채널은 이전 레이어의 채널들로부터 데이터를 수신하여 연산할 수 있고, 연산 결과를 출력하여 다음 레이어의 채널들에 제공할 수 있다.
채널들 각각의 입력은 입력 액티베이션으로 지칭될 수 있고, 채널들 각각의 출력은 출력 액티베이션으로 지칭될 수 있다. 채널의 액티베이션은 채널의 출력임과 동시에, 다음 레이어에 포함되는 채널들에 대한 입력에 해당할 수 있다. 임의의 한 채널은 이전 레이어에 포함되는 채널들의 액티베이션들을 입력으로 수신할 수 있고, 입력되는 액티베이션들 각각에 웨이트를 적용하여 자신의 액티베이션을 결정하여 출력할 수 있다. 웨이트는 임의의 한 채널에 입력되는 이전 레이어 채널들의 액티베이션들에 적용되는 가중치를 나타내는 파라미터로서, 채널들 상호간의 연결 관계에 할당되는 값일 수 있다.
채널들 각각은 입력을 수신하여 출력 액티베이션을 출력하는 연산 유닛(computational unit) 또는 프로세싱 엘리먼트(processing element)에 의해 처리될 수 있고, 채널들 각각의 입력-출력은 매핑될 수 있다. 예를 들면, σ는 액티베이션 함수(activation function)이고, wj,k i는 (i-1)번째 레이어에 포함되는 k번째 채널 및 i번째 레이어에 포함되는 j번째 채널 간의 웨이트이고, bj i는 i번째 레이어에 포함되는 j번째 채널의 바이어스(bias)이고, aj i는 i번째 레이어에 포함되는 j번째 채널의 액티베이션을 나타내는 경우, 액티베이션 aj i는 아래의 수학식 1과 같이 계산될 수 있다.
Figure pat00001
도 2에 도시되는 예시와 같이, a1 2는 히든 레이어(Layer 2)의 첫 번째 채널(CH 1)의 액티베이션을 의미할 수 있다. a1 2는 수학식 1에 따라 σ(w1,1 2*a1 1 + w1,2 2*a2 1 + b1 2)와 같을 수 있다. 다만, 수학식 1은 뉴럴 네트워크(1)에서 데이터를 처리하기 위해 이용되는 파라미터로서 웨이트, 바이어스 및 액티베이션을 설명하기 위한 예시일 뿐, 이에 제한되는 것은 아니다. 액티베이션은 이전 레이어로의 채널들로부터 수신되는 액티베이션들의 합산(sum)에 액티베이션 함수가 적용되는 값을 ReLU(rectified linear unit)에 통과시켜 획득되는 값을 의미할 수도 있다.
뉴럴 네트워크(1)는 특정 목적을 달성할 수 있도록 훈련(training) 또는 학습(learning)될 수 있다. 예를 들면, 뉴럴 네트워크(1)에 입력 데이터(I1, I2)가 입력되는 경우, 입력 데이터(I1, I2)에 대응되는 것으로 미리 설정되는 출력 데이터(O1, O2)가 출력되도록 뉴럴 네트워크(1)가 학습될 수 있다. 뉴럴 네트워크(1)의 학습은 뉴럴 네트워크(1)의 파라미터들에 대한 업데이트에 의해 수행될 수 있다. 예를 들면, 뉴럴 네트워크(1)의 노드들 상호간의 연결 관계를 나타내는 웨이트 wj,k i 및 노드들 각각의 출력이 계산되는 과정에 반영되는 바이어스 bj i의 값이 학습 과정에서 반복적으로 업데이트될 수 있다.
뉴럴 네트워크(1)의 파라미터들의 업데이트는 역전파(backpropagation)를 통해 수행될 수 있다. 뉴럴 네트워크(1)에 입력 데이터(I1, I2)가 입력되어, 단계적으로 레이어들을 거치면서 출력 데이터(O1, O2)가 연산되는 피드 포워드(feed forward)가 수행될 수 있고, 피드 포워드 결과로 출력되는 출력 데이터(O1, O2) 및 입력 데이터(I1, I2)에 대응되는 것으로 미리 설정되는 학습 목표 간의 차이가 계산될 수 있다. 이후, 출력 레이어에서 입력 레이어를 향하는 역방향을 따라, 출력 레이어의 현재 출력값 및 학습 목표 간의 차이가 감소하도록, 웨이트 wj,k i 및 바이어스 bj i 등과 같은 파라미터가 수정되어 업데이트되는 역전파가 수행될 수 있다.
피드 포워드 및 역전파가 반복적으로 수행되는 경우, 출력 레이어의 현재 출력값이 학습 목표와 같아질 수 있고, 그 상태의 웨이트 wj,k i 및 바이어스 bj i 등과 같은 파라미터를 고정함으로써 학습이 완료될 수 있다. 학습이 완료되는 경우, 뉴럴 네트워크(1)에 입력 데이터(I1, I2)가 입력되면 뉴럴 네트워크(1)의 출력 레이어로부터 입력 데이터(I1, I2)에 대응되는 것으로 미리 설정되는 학습 목표와 동일한 값이 출력될 수 있다.
화자 식별 뉴럴 네트워크(30)는 학습을 통해 형성될 수 있다. 구체적으로, 화자 식별 뉴럴 네트워크(30)는 교사-학생 학습 모델에 따른 학습에 의해 형성될 수 있다. 교사-학생 학습 모델은 미리 학습이 완료된 교사 뉴럴 네트워크를 참조하여 학생 뉴럴 네트워크를 학습시키는 모델을 의미할 수 있다. 화자 식별 뉴럴 네트워크(30)가 형성되는 구체적인 내용에 대해서는 도 4 내지 도 6을 통해 후술될 수 있다.
도 3은 일부 실시예에 따른 화자 식별 뉴럴 네트워크를 구현하는 장치를 구성하는 요소들을 나타내는 블록도이다.
도 3을 참조하면, 화자 식별 뉴럴 네트워크(30)를 구현하는 장치(100)는 메모리(110) 및 프로세서(120)를 포함할 수 있다. 다만 이에 제한되는 것은 아니고, 도 3에 도시되는 구성 요소들 외에 다른 범용적인 구성 요소들이 장치(100)에 더 포함될 수 있다.
장치(100)는 뉴럴 네트워크(1)를 생성하거나, 뉴럴 네트워크(1)를 훈련(train) 또는 학습(learn)시키거나, 뉴럴 네트워크(1)를 활용하여 음성 신호에 대한 화자를 식별하는 기능과 같은 다양한 프로세싱 기능들을 갖는 컴퓨팅 디바이스에 해당할 수 있다. 예를 들면, 장치(100)는 PC(personal computer), 서버 디바이스, 모바일 디바이스 등의 다양한 종류의 디바이스들로 구현될 수 있다.
메모리(110)는 장치(100) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 장치(100)에서 처리된 데이터들 및 처리될 데이터들을 저장할 수 있다. 메모리(110)는 장치(100)에 의해 구동될 애플리케이션들, 드라이버들 등을 저장할 수 있다. 메모리(110)는 DRAM(dynamic random access memory)일 수 있으나, 이에 제한되는 것은 아니다.
메모리(110)는 휘발성 메모리(volatile memory) 또는 불휘발성 메모리(nonvolatile memory) 중 적어도 하나를 포함할 수 있다. 불휘발성 메모리는 ROM(read only memory), PROM(programmable ROM), EPROM(electrically programmable ROM), EEPROM(electrically erasable and programmable ROM), 플래시 메모리, PRAM(phase-change RAM), MRAM(magnetic RAM), RRAM(resistive RAM), FRAM(ferroelectric RAM) 등을 포함할 수 있다. 휘발성 메모리는 DRAM(dynamic RAM), SRAM(static RAM), SDRAM(synchronous DRAM), PRAM(phase-change RAM), MRAM(magnetic RAM), RRAM(resistive RAM), FeRAM(ferroelectric RAM) 등을 포함할 수 있다. 다른 예시로서, 메모리(110)는 HDD(hard disk drive), SSD(solid state drive), CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital) 또는 메모리 스틱(memory stick) 중 적어도 하나를 포함할 수 있다.
메모리(110)는 화자 식별 뉴럴 네트워크(30)에 관한 데이터를 저장할 수 있다. 예를 들면, 메모리(110)는 화자 식별 뉴럴 네트워크(30)를 구성하는 레이어들 및 채널들에 관한 데이터를 저장할 수 있고, 메모리(110)는 화자 식별 뉴럴 네트워크(30)의 파라미터들로서 채널들 상호간의 웨이트들 및 채널들 각각의 바이어스 등을 저장할 수 있다. 화자 식별 뉴럴 네트워크(30)가 학습 중인 경우, 메모리(110)는 파라미터들의 값들을 업데이트하여 저장하는 과정을 반복할 수 있고, 학습 완료시 메모리(110)는 파라미터들의 값들을 최종값으로서 저장할 수 있다.
프로세서(120)는 다수의 논리 게이트들의 어레이로 구현될 수 있고, 범용적인 마이크로 프로세서와 마이크로 프로세서에서 실행될 수 있는 프로그램이 저장된 메모리의 조합으로 구현될 수도 있다. 프로세서(120)는 복수 개의 프로세싱 엘리먼트들(processing elements)로 구성될 수도 있다. 예를 들면, 프로세서(120)는 장치(100) 내에 구비되는 CPU(central processing unit), GPU(graphics processing unit), AP(application processor) 등으로 구현될 수 있으나, 이에 제한되는 것은 아니다.
프로세서(120)는 장치(100)를 제어하기 위한 전반적인 기능을 수행할 수 있다. 프로세서(120)는 메모리(110)에 저장되는 적어도 하나의 프로그램을 실행함으로써, 장치(100)를 전반적으로 제어하고, 장치(100) 내부에서 수행되는 각종 연산들을 처리할 수 있다. 예를 들면, 프로세서(120)는 메모리(110)에 저장되는 프로그램 및 데이터를 참조하여 뉴럴 네트워크(1)의 생성 및 뉴럴 네트워크(1)에 대한 학습 등을 수행할 수 있고, 화자 식별 뉴럴 네트워크(30)를 구현할 수 있다.
한편, 도 3의 장치(100)는 화자 식별 뉴럴 네트워크(30)를 구현하기 위한 동작들을 수행할 수 있을 뿐만 아니라, 장치(100)는 구현이 완료된 화자 식별 뉴럴 네트워크(30)를 활용하여 입력 음성 신호에 대한 화자를 식별하기 위한 동작들을 수행할 수도 있다. 따라서, 화자 식별 뉴럴 네트워크(30)의 구현 및 화자 식별 뉴럴 네트워크(30)을 통한 화자 식별은 모두 장치(100)에 의해 수행될 수 있다.
도 4는 일부 실시예에 따른 제1 뉴럴 네트워크가 생성되는 과정을 설명하기 위한 도면이다.
도 4를 참조하면, 제1 뉴럴 네트워크(10)를 구성하는 레이어들 및 채널들이 도시되어 있다. 전술한 바와 같이, 제1 뉴럴 네트워크(10)는 도 2의 뉴럴 네트워크(1)의 다른 예시일 수 있다.
프로세서(120)는 클린 환경의 음성 신호에 대한 화자를 식별하도록 학습되는 제1 뉴럴 네트워크(10)를 생성할 수 있다. 클린 환경의 음성 신호는 잡음이 포함되지 않거나, 매우 작은 세기의 잡음을 포함하는 음성 신호를 의미할 수 있다. 예를 들면, 클린 환경의 음성 신호는 잡음대 신호비(SNR, signal to noise ration)가 특정 수치 이상인 음성 신호일 수 있다.
제1 뉴럴 네트워크(10)는 입력 레이어(11), 히든 레이어들(12) 및 출력 레이어(14)를 포함할 수 있다. 제1 뉴럴 네트워크(10)는 히든 레이어들(12)이 둘 이상의 레이어들로 구성되는 딥 뉴럴 네트워크일 수 있다. 다만 이에 제한되는 것은 아니고, 제1 뉴럴 네트워크(10)는 컨볼루셔널 뉴럴 네트워크(convolutional neural network), 리커런트 뉴럴 네트워크(recurrent neural network) 또는 제한 볼츠만 머신(restricted Boltzmann machine) 등과 같은 다른 신경망 구조로 구현될 수 있다.
제1 뉴럴 네트워크(10)의 히든 레이어들(12) 중 가장 마지막에 위치하는 레이어는 임베딩 레이어(13)일 수 있다. 임베딩 레이어(13)는 출력 레이어(14)의 직전에 위치하는 레이어일 수 있고, 임베딩 레이어(13)의 출력을 의미하는 제1 임베딩 벡터에 기초하여 출력 레이어(14)의 출력이 결정될 수 있다. 제1 임베딩 벡터는 임베딩 레이어(13)에 포함되는 채널들로부터 출력되는 액티베이션들을 제1 임베딩 벡터의 각 성분으로 가질 수 있다. 한편, 프로세서(120)는 제1 뉴럴 네트워크(10)의 레이어들, 채널들 및 파라미터들 등에 관한 데이터를 메모리(110)에 저장할 수 있다.
프로세서(120)는 딥 러닝(deep learning) 방식의 학습을 통해 제1 뉴럴 네트워크(10)를 생성할 수 있다. 딥 러닝은 복수의 레이어들을 활용하여 학습 파라미터를 반복적으로 업데이트하는 과정을 의미할 수 있다. 다만 이에 제한되는 것은 아니고, 클린 환경의 음성 신호에 대한 화자를 식별할 수 있도록 하는 다른 학습 방식에 따라 제1 뉴럴 네트워크(10)가 학습될 수도 있다.
프로세서(120)는 손실 함수(loss function)가 최소화되도록 하는 학습을 통해 제1 뉴럴 네트워크(10)를 생성할 수 있다. 예를 들면, 프로세서(120)는 특정 입력에 대한 출력 레이어(14)의 출력 및 특정 입력에 대한 학습 목표 간의 교차 엔트로피(cross entropy)를 손실 함수로 설정할 수 있고, 프로세서(120)는 교차 엔트로피가 최소화될 때까지 학습을 반복하여 제1 뉴럴 네트워크(10)를 생성할 수 있다.
구체적으로, 특정 입력에 대한 학습 목표는 화자 레이블 벡터로서 [1 0 ... 0], [0 1 ... 0], [0 0 ... 1] 등과 같은 원-핫 벡터(one-hot vector)의 형태일 수 있고, 프로세서(120)는 학습 목표 및 특정 입력에 대한 출력 간의 교차 엔트로피가 최소화되어 특정 입력에 대한 출력이 원-핫 벡터의 형태가 될 때까지 학습을 반복할 수 있다. 이와 같은 학습을 통해 생성되는 제1 뉴럴 네트워크(10)는 특정 화자의 클린 환경의 음성 신호가 입력되는 경우, 해당 화자에 대한 레이블을 나타내는 원-핫 벡터를 출력 레이어(14)로 출력할 수 있다.
도 4에 도시되는 예시와 같이, 제1 뉴럴 네트워크(10)를 생성하기 위한 학습의 손실 함수(L1)는 학습 목표 및 출력 간의 교차 엔트로피일 수 있고, 프로세서(120)는 손실 함수(L1)의 최소화를 목적으로 역전파를 반복적으로 수행할 수 있다. 프로세서(120)는 역전파를 반복적으로 수행함으로써 제1 뉴럴 네트워크(10)의 학습 파라미터들을 반복적으로 업데이트할 수 있다. 역전파의 반복을 통해 손실 함수(L1)가 최소화되는 경우, 프로세서(120)는 학습 파라미터들의 값을 고정하여 메모리(110)에 저장할 수 있고, 그에 따라 학습이 완료되어 제1 뉴럴 네트워크(10)가 생성될 수 있다.
학습이 완료되어 제1 뉴럴 네트워크(10)가 생성되는 경우, 임베딩 레이어(13)의 제1 임베딩 벡터에 기초하여 클린 환경의 음성 신호에 대한 화자가 식별될 수 있다. 서로 다른 화자들에 의한 음성 신호들에 대해서는 서로 다른 제1 임베딩 벡터의 값들이 출력되므로, 프로세서(120)는 제1 임베딩 벡터에 기초하여 클린 환경의 음성 신호에 대한 화자를 식별할 수 있다.
제1 뉴럴 네트워크(10)를 학습시키기 위한 데이터는 클린 환경의 음성 신호일 수 있다. 제1 뉴럴 네트워크(10)는 잡음에 의한 영향을 고려하지 않고 클린 환경의 음성 신호만으로 학습되므로, 제1 뉴럴 네트워크(10)는 음성 신호로부터 화자를 식별하는 성능 측면에서 높은 성능을 가질 수 있다. 다만, 장치(100)는 다양한 잡음 환경에서도 동작해야 하므로, 프로세서(120)는 제1 뉴럴 네트워크(10)의 높은 화자 식별 성능에 잡음을 처리하는 능력을 보강하는 방식으로 화자 식별 뉴럴 네트워크(30)를 생성할 수 있다.
잡음을 처리하는 능력을 보강하는 과정은 교사-학생 학습 모델에 따라 수행될 수 있다. 예를 들면, 높은 화자 식별 성능을 갖는 제1 뉴럴 네트워크(10)가 교사 뉴럴 네트워크로 설정될 수 있고, 학생 뉴럴 네트워크는 교사 뉴럴 네트워크의 높은 화자 식별 성능을 채용한 이후 잡음 처리에 관한 추가적인 학습을 수행할 수 있다. 교사-학생 학습 모델에 대한 구체적인 내용은 도 5 내지 도 6을 통해 후술될 수 있다.
도 5는 일부 실시예에 따른 제2 뉴럴 네트워크가 생성되는 과정을 설명하기 위한 도면이다.
도 5를 참조하면, 제1 뉴럴 네트워크(10)를 교사 뉴럴 네트워크로 하는 학생 뉴럴 네트워크로서 제2 뉴럴 네트워크(20)를 구성하는 레이어들 및 채널들이 도시되어 있다. 전술한 바와 같이, 제2 뉴럴 네트워크(20)는 제1 뉴럴 네트워크(10)와 마찬가지로 도 2의 뉴럴 네트워크(1)의 다른 예시일 수 있다.
프로세서(120)는 잡음 환경의 음성 신호에 대한 화자를 식별하기 위한 제2 뉴럴 네트워크(20)를 생성할 수 있다. 잡음 환경의 음성 신호는 음성 신호 외에도 다양한 잡음 신호를 포함하는 신호를 의미할 수 있다. 예를 들면, 잡음 신호의 잡음 유형은 카페 소음, 자동차 소음, 공사장 소음, 공장 소음 및 아이들 소음일 수 있고, 그 외에도 다양한 유형의 소음을 포함할 수 있다. 또한, 잡음 환경의 음성 신호는 잡음대 신호비(SNR, signal to noise ration)가 특정 수치 이하인 음성 신호를 의미할 수 있다.
제2 뉴럴 네트워크(20)는 입력 레이어(21), 히든 레이어들(22) 및 출력 레이어(24)를 포함할 수 있다. 제2 뉴럴 네트워크(20)는 히든 레이어들(22)이 둘 이상의 레이어들로 구성되는 딥 뉴럴 네트워크일 수 있다. 또는, 제2 뉴럴 네트워크(20)는 컨볼루셔널 뉴럴 네트워크, 리커런트 뉴럴 네트워크 및 제한 볼츠만 머신 등과 같은 다른 신경망 구조로 구현될 수 있다.
제2 뉴럴 네트워크(20)의 히든 레이어들(22) 중 가장 마지막에 위치하는 레이어는 임베딩 레이어(23)일 수 있다. 임베딩 레이어(23)는 출력 레이어(24)의 직전에 위치하는 레이어일 수 있고, 임베딩 레이어(23)의 출력을 의미하는 제2 임베딩 벡터에 기초하여 출력 레이어(24)의 출력이 결정될 수 있다. 제2 임베딩 벡터는 임베딩 레이어(23)에 포함되는 채널들로부터 출력되는 액티베이션들을 제2 임베딩 벡터의 각 성분으로 가질 수 있다. 한편, 프로세서(120)는 제2 뉴럴 네트워크(20)의 레이어들, 채널들 및 파라미터들 등에 관한 데이터를 메모리(110)에 저장할 수 있다.
교사-학생 학습 모델에 따라 제2 뉴럴 네트워크(20)를 학습시키기 위해서는, 제1 뉴럴 네트워크(10)의 임베딩 레이어(13) 및 제2 뉴럴 네트워크(20)의 임베딩 레이어(23)가 동일한 크기로 형성될 것이 요구될 수 있다. 예를 들면, 임베딩 레이어(23)에 포함되는 채널들의 개수가 임베딩 레이어(13)에 포함되는 채널들의 개수와 동일할 것이 요구될 수 있다. 임베딩 레이어(13)의 크기 및 임베딩 레이어(23)의 크기가 동일해야 제1 임베딩 벡터 및 제2 임베딩 벡터의 크기가 동일할 수 있고, 그래야만 이후 제1 임베딩 벡터 및 제2 임베딩 벡터 간의 거리가 최소화되도록 하는 학습이 수행될 수 있다.
임베딩 레이어(23)의 크기가 임베딩 레이어(13)의 크기와 동일하게 형성되는 것에 더하여, 제2 뉴럴 네트워크(20) 전체의 크기가 제1 뉴럴 네트워크(10) 전체의 크기와 동일하게 형성될 수도 있다. 예를 들면, 프로세서(120)는 제1 뉴럴 네트워크(10)를 구성하는 레이어들 및 채널들과 동일한 구조로 제2 뉴럴 네트워크(20)를 생성할 수 있다.
제1 뉴럴 네트워크(10) 및 제2 뉴럴 네트워크(20)의 전체 크기가 동일한 경우, 프로세서(120)는 제1 뉴럴 네트워크(10)의 학습 파라미터의 최종값을 제2 뉴럴 네트워크(20)의 학습 파라미터의 초기값으로 설정할 수 있다. 예를 들면, 프로세서(120)는 학습이 완료된 제1 뉴럴 네트워크(10)의 학습 파라미터들로서 채널들 상호간의 웨이트들 및 채널들 각각의 바이어스를 제2 뉴럴 네트워크(20)의 학습 파라미터의 초기값으로 설정할 수 있다. 이와 같은 초기값에 의해 제2 뉴럴 네트워크(20)는 제1 뉴럴 네트워크(10)와 같이 화자 식별 능력을 구비할 수 있고, 추가적인 학습을 통해 잡음 처리 능력을 추가로 구비할 수 있다.
전술한 바와 같이 프로세서(120)는 제2 뉴럴 네트워크(20)를 생성할 수 있고, 선택적으로 제2 뉴럴 네트워크(20)의 학습 파라미터를 초기화할 수 있다. 이후, 프로세서(120)는 제2 뉴럴 네트워크(20)를 학습시킴으로써 화자 식별 뉴럴 네트워크(30)를 형성할 수 있다.
도 6은 일부 실시예에 따른 제2 뉴럴 네트워크를 학습시킴으로써 화자 식별 뉴럴 네트워크를 형성하는 과정을 설명하기 위한 도면이다.
도 6을 참조하면, 프로세서(120)는 교사-학생 학습 모델에 따라 제2 뉴럴 네트워크(20)를 학습시킬 수 있다. 교사-학생 학습 모델에서, 제1 뉴럴 네트워크(10)는 교사 뉴럴 네트워크로 설정될 수 있고, 제2 뉴럴 네트워크(20)는 학생 뉴럴 네트워크로 설정될 수 있다.
전술한 바와 같이, 제1 뉴럴 네트워크(10)는 딥러닝 또는 기타 학습 방식에 따라 클린 환경의 음성 신호에 대한 화자를 식별하도록 학습될 수 있다. 이후, 프로세서(120)가 제2 뉴럴 네트워크(20)를 학습시키는 과정에서는 제1 뉴럴 네트워크(10)는 더 이상 학습되지 않고 고정된 상태를 유지할 수 있고, 그에 따라 제1 뉴럴 네트워크(10)는 제2 뉴럴 네트워크(20)의 학습에 대한 기준이 될 수 있다.
교사-학생 학습 모델에 따른 제2 뉴럴 네트워크(20)의 학습은 두 개의 목표들이 각각 달성될 때까지 수행될 수 있다. 두 개의 목표들은 두 개의 손실 함수들로 표현될 수 있다. 프로세서(120)는 두 개의 손실 함수들로서 제1 손실 함수(L1) 및 제2 손실 함수(L2)가 각각 최소화될 때까지 제2 뉴럴 네트워크(20)를 학습시킬 수 있다.
제1 손실 함수(L1)는 제2 뉴럴 네트워크(20)의 출력 및 제2 뉴럴 네트워크의 학습 목표 간의 교차 엔트로피일 수 있다. 프로세서(120)는 출력 및 학습 목표 간의 교차 엔트로피가 최소화되는 방향으로 제2 뉴럴 네트워크(20)를 학습시킬 수 있다. 제2 뉴럴 네트워크(20)가 제1 손실 함수(L1)에 따라 학습되는 과정은 도 4를 통해 전술된 제1 뉴럴 네트워크(10)가 손실 함수(L1)에 따라 학습되는 과정과 대응되므로, 도 4의 제1 뉴럴 네트워크(10)의 학습에 대한 설명은 제1 손실 함수(L1)에 따른 제2 뉴럴 네트워크(20)의 학습에 대해서도 적용될 수 있다.
제2 손실 함수(L2)는 상호 대응되는 클린 환경의 음성 신호(610) 및 잡음 환경의 음성 신호(620)로부터 도출되는 제1 임베딩 벡터 및 제2 임베딩 벡터 간의 거리일 수 있다. 프로세서(120)는 제1 임베딩 벡터 및 제2 임베딩 벡터 간의 거리가 최소화되도록 제2 뉴럴 네트워크(20)를 학습시킴으로써 화자 식별 뉴럴 네트워크(30)를 형성할 수 있다.
제1 임베딩 벡터 및 제2 임베딩 벡터 간의 거리는 제1 임베딩 벡터와 제2 임베딩 벡터가 서로 어느 정도로 상이한 값을 갖는지를 의미할 수 있다. 예를 들면, 제1 임베딩 벡터 및 제2 임베딩 벡터 간의 거리는, 평균 제곱 오차(MSE, mean square error), 코사인 유사도(cosine similarity) 및 KL 다이버전스(Kullback-Leibler divergence) 중 적어도 하나에 기초하여 산출될 수 있다. 다만 이에 제한되는 것은 아니고, 제1 임베딩 벡터 및 제2 임베딩 벡터가 얼마나 상이한지를 나타내는 다른 지표가 활용될 수도 있다.
상호 대응되는 클린 환경의 음성 신호(610) 및 잡음 환경의 음성 신호(620)는, 동일한 음성 신호를 포함하나, 잡음이 포함되는지 여부만이 상이한 신호들을 의미할 수 있다. 따라서, 잡음 환경의 음성 신호(620)로부터 잡음 성분을 제거하면 클린 환경의 음성 신호(610)와 동일할 수 있다.
도 6에 도시되는 예시와 같이, 프로세서(120)는 클린 환경의 음성 신호(610)로부터 추출되는 피쳐를 제1 뉴럴 네트워크(10)의 입력 레이어(11)에 입력할 수 있고, 잡음 환경의 음성 신호(620)로부터 추출되는 피쳐를 제2 뉴럴 네트워크(20)의 입력 레이어(21)에 입력할 수 있다. 이후, 프로세서(120)는 클린 환경의 음성 신호(610)로부터 도출되는 제1 임베딩 벡터 및 잡음 환경의 음성 신호(620)로부터 도출되는 제2 임베딩 벡터 간의 거리를 계산할 수 있고, 제1 임베딩 벡터 및 제2 임베딩 벡터 간의 거리를 나타내는 제2 손실 함수(L2)가 최소화되도록 역전파를 수행하여 제2 뉴럴 네트워크(20)의 학습 파라미터들을 업데이트할 수 있다.
제1 임베딩 벡터 및 제2 임베딩 벡터 간의 거리를 최소화하는 학습이 반복하여 수행되는 경우, 잡음 환경의 음성 신호(620)에 대한 제2 임베딩 벡터가 클린 환경의 음성 신호(610)에 대한 제1 임베딩 벡터와 실질적으로 동일해질 수 있다. 이는 제2 뉴럴 네트워크(20)가 잡음이 포함되는 신호에 대해서도, 클린 환경에서 학습되어 높은 화자 식별 성능을 구비하는 제1 뉴럴 네트워크(10)와 같은 수준으로 화자를 식별할 수 있음을 의미할 수 있다.
전술한 바와 같이, 제2 뉴럴 네트워크(20)의 학습 파라미터의 초기값이 제1 뉴럴 네트워크(10)의 학습 파라미터의 최종값과 같이 설정되는 경우, 제2 뉴럴 네트워크(20)는 제1 뉴럴 네트워크(10)의 화자 식별 성능을 상속받을 수 있고, 추가적으로 제2 손실 함수(L2)에 따른 학습에 의해 잡음 처리 성능을 구비할 수 있다. 이와 같이, 프로세서(120)는 제2 뉴럴 네트워크(20)의 화자 식별 능력 및 잡음 처리 능력을 분리하여 학습시킴으로써 화자 식별 뉴럴 네트워크(30)를 형성할 수 있다. 그에 따라, 화자 식별 능력 및 잡음 처리 능력을 단일 학습으로 구현하는 경우 대비, 학습에 소요되는 시간이 감소할 수 있고, 화자 식별을 위한 뉴럴 네트워크의 모델 크기가 감소할 수 있다.
한편 도 6에서, 제1 손실 함수(L1) 및 제2 손실 함수(L2)는 두 개의 역전파로 도시되어, 두 개의 역전파가 서로 독립적으로 수행되는 것으로 예시되었으나, 제1 손실 함수(L1) 및 제2 손실 함수(L2)는 단일의 손실 함수로 표현될 수 있고, 단일의 손실 함수를 최소화하는 단일 역전파를 통해 학습이 수행될 수도 있다. 이는 아래의 수학식 2와 같이 표현될 수 있다.
Figure pat00002
수학식 2에서, L은 단일의 손실 함수를 의미할 수 있고, L1은 제2 뉴럴 네트워크(20)의 출력 Ostudent 및 학습 목표 Otarget 간의 교차 엔트로피를 나타내는 제1 손실 함수일 수 있고, L2는 제1 임베딩 벡터 eteacher 및 제2 임베딩 벡터 estudent 간의 거리를 나타내는 제2 손실 함수일 수 있다. λ는 제1 손실 함수 L1 및 제2 손실 함수 L2에 대한 가중치를 조정하기 위한 상수일 수 있다. 프로세서(120)는 단일의 손실 함수 L이 최소화되도록 제2 뉴럴 네트워크(20)를 학습시킴으로써 화자 식별 뉴럴 네트워크(30)를 형성할 수 있다.
다시 도 3을 참조하면, 화자 식별 뉴럴 네트워크(30)를 구현하는 장치(100)는 화자 식별 뉴럴 네트워크(30)를 활용하여 입력 음성 신호에 대한 화자를 식별할 수 있다. 전술한 바와 같이, 화자 식별 뉴럴 네트워크(30)를 활용하여 입력 음성 신호에 대한 화자를 식별하는 장치(100)는 화자 식별 뉴럴 네트워크(30)를 구현하는 장치(100)일 수 있다.
프로세서(120)는 입력 음성 신호로부터 피쳐(feature)를 추출할 수 있다. 입력 음성 신호는 잡음 환경의 음성 신호일 수 있다. 장치(100)는 음성 센서 등을 구비하여 화자의 음성을 입력 음성 신호로 변환할 수 있다. 이후, 프로세서(120)는 입력 음성 신호에 대한 처리 과정을 거쳐 피쳐를 추출할 수 있다.
피쳐는 입력 음성 신호에 대한 FFT(fast Fourier transform) 연산 결과에 따른 FFT 진폭(FFT amplitude), FFT 파워(FFT power) 및 로그 FFT 진폭(log FFT amplitude) 중 어느 하나를 포함할 수 있다. 또한, 입력 음성 신호의 주파수 특성에 관한 지표로서, 피쳐는 로그 밴드 에너지(log band energy), 멜 밴드 에너지(mel band energy) 및 MFCC(mel frequency cepstral coefficients) 중 적어도 하나를 포함할 수 있다. 다만 이에 제한되는 것은 아니고, 입력 음성 신호에 대한 화자를 식별하기 위해 사용될 수 있는 다른 지표들이 활용될 수도 있다.
프로세서(120)는 피쳐를 화자 식별 뉴럴 네트워크(30)에 입력하여 화자 식별 뉴럴 네트워크(30)로부터 피쳐에 대응되는 임베딩 벡터를 추출할 수 있다. 프로세서(120)는 화자 식별 뉴럴 네트워크(30)를 통해 피쳐에 대한 연산을 처리함으로써 임베딩 레이어의 출력에 해당하는 임베딩 벡터를 출력할 수 있다.
프로세서(120)는 임베딩 벡터에 기초하여 입력 음성 신호에 대한 화자를 식별할 수 있다. 임베딩 벡터에 기초하여 입력 음성 신호에 대한 화자가 식별되는 구체적인 내용은 도 7을 참조하여 후술될 수 있다.
도 7은 일부 실시예에 따른 화자 식별 뉴럴 네트워크를 활용하여 입력 음성 신호에 대한 화자를 식별하는 장치가 동작하는 구체적인 예시를 나타내는 도면이다.
도 7을 참조하면, 화자 식별 뉴럴 네트워크(30)를 활용하여 입력 음성 신호에 대한 화자를 식별하는 장치(100)에서 수행되는 등록 프로세스(710) 및 식별 프로세스(720)가 도시되어 있다.
등록 프로세스(710)에서, 프로세서(120)는 특정 화자의 음성 신호에 대한 화자 식별 뉴럴 네트워크(30)의 임베딩 벡터를 메모리(110)에 등록 임베딩 벡터로 저장할 수 있다. 예를 들면, 화자 A, 화자 B, ... , 화자 N은 등록을 위한 복수의 음성 신호를 발화할 수 있고, 프로세서(120)는 복수의 음성 신호에 대한 피쳐를 추출하여 화자 식별 뉴럴 네트워크(30)에 입력할 수 있고, 그로부터 화자 A, 화자 B, ... , 화자 N의 등록 임베딩 벡터를 메모리(110)에 저장할 수 있다.
식별 프로세스(720)에서, 프로세서(120)는 입력 음성 신호에 대한 임베딩 벡터 및 등록 임베딩 벡터 간의 유사도에 기초하여 입력 음성 신호가 특정 화자를 나타내는지 여부를 식별할 수 있다. 예를 들면, 프로세서(120)는 입력 음성 신호에 대한 임베딩 벡터를 화자 A, 화자 B, ... , 화자 N의 등록 임베딩 벡터들과 각각 비교할 수 있고, 유사도가 기준치를 초과하는 경우 입력 음성 신호가 해당 화자를 나타내는 것으로 식별할 수 있다. 한편, 미리 등록되지 않은 화자의 음성 신호가 입력되는 경우, 프로세서(120)의 유사도 비교 결과 기준치를 초과하는 경우가 발생하지 않을 수 있고, 프로세서(120)는 입력 음성 신호에 대응되는 화자가 없는 것으로 식별할 수 있다.
입력 음성 신호에 대한 임베딩 벡터 및 등록 임베딩 벡터 간의 유사도는, 예를 들면, 코사인 유사도(cosine similarity) 및 PLDA(probabilistic linear discriminant analysis) 중 적어도 하나에 기초하여 산출될 수 있다. 다만 이는 예시에 불과할 뿐, 두 벡터들이 유사한 정도를 나타낼 수 있는 다른 다양한 지표들이 제한 없이 활용될 수 있다.
도 8은 일부 실시예에 따른 화자 식별 뉴럴 네트워크를 활용하여 문장 단위에 대한 화자를 식별하는 과정을 설명하기 위한 도면이다.
도 8을 참조하면, 장치(100)에 의해 형성되는 화자 식별 뉴럴 네트워크(30)의 구조에 대한 예시가 도시되어 있다. 화자 식별 뉴럴 네트워크(30)는 제2 뉴럴 네트워크(20)를 학습시킴으로써 형성될 수 있으므로, 화자 식별 뉴럴 네트워크(30)는 제2 뉴럴 네트워크(20)와 마찬가지로 입력 레이어(31), 히든 레이어들(32), 임베딩 레이어(33) 및 출력 레이어(34)를 포함할 수 있다.
프로세서(120)는 입력 음성 신호를 짧은 시간 간격에 해당하는 프레임 단위로 분할할 수 있고, 매 프레임 단위마다 화자 식별 뉴럴 네트워크(30)의 임베딩 벡터를 추출할 수 있다. 다만, 프로세서(120)는 짧은 시간 동안의 음성 신호에 해당하는 단일 프레임 단위에 대한 임베딩 벡터 추출 및 화자 식별을 수행하기보다는, 한 문장 또는 한 번의 발화 단위를 구성하는 프레임들을 묶어 문장 단위로 화자 식별을 수행할 수 있다. 화자 식별이 문장 단위로 수행되는 경우, 극단적인 값을 갖는 이상점(outlier)에 의한 결과 왜곡이 완화되어 화자 식별의 정확도가 개선될 수 있다. 문장 단위의 화자 식별은 아래와 같이 수행될 수 있다.
프로세서(120)는 입력 음성 신호를 시간 간격에 따라 분할하여 복수의 프레임들을 설정할 수 있다. 예를 들면, 프로세서(120)는 입력 음성 신호를 고정된 시간 간격으로 분할하여 복수의 프레임들을 설정할 수 있다. 고정된 시간 간격은 수 ms 단위 내지 수백 ms 단위일 수 있고, 또는 프로세싱 능력에 따라 제한 없이 설정될 수 있다. 또한, 고정된 시간 간격이 아닌 가변 시간 간격도 활용될 수 있다.
프로세서(120)는 복수의 프레임들로부터 문장 단위를 나타내는 적어도 일부를 추출하여 문장 프레임들로 설정할 수 있다. 예를 들면, 프로세서(120)는 하나의 입력 음성 신호로부터 한 문장 단위를 나타내는 하나의 문장 프레임들을 설정할 수 있다. 또는, 프로세서(120)는 하나의 입력 음성 신호로부터 둘 이상의 문장 단위들을 나타내는 둘 이상의 문장 프레임들을 설정할 수 있다. 프로세서(120)는 입력 음성 신호에서 화자의 음성 부분 및 음성 없이 잡음만 존재하는 사일런스 부분을 구별함으로써 입력 음성 신호로부터 문장 단위를 구분할 수 있다.
프로세서(120)는 문장 프레임들에 대응되는 임베딩 벡터들에 대한 통계값을 나타내는 문장 임베딩 벡터를 계산할 수 있다. 예를 들면, 문장 프레임들이 1,000 개의 프레임들로 구성되는 경우, 프로세서(120)는 1,000 개의 프레임들로부터 1,000 개의 임베딩 벡터들을 추출할 수 있고, 1,000 개의 임베딩 벡터들에 대한 통계값을 계산함으로써 문장 임베딩 벡터를 도출할 수 있다. 한편, 임베딩 벡터들에 대한 통계값은 가중 합계(weighted sum) 또는 평균일 수 있다. 다만 그 외에도, 통계값은 임베딩 벡터들에 대한 통계적인 결과를 제공할 수 있는 다른 값일 수 있다.
프로세서(120)는 문장 임베딩 벡터에 기초하여 문장 단위에 대한 화자를 식별할 수 있다. 전술한 바와 같이, 프로세서(120)는 문장 임베딩 벡터 및 등록 임베딩 벡터 간의 유사도를 산출할 수 있고, 그로부터 문장 임베딩 벡터가 어떤 화자를 나타내는지가 식별될 수 있다.
프로세서(120)는 셀프 어텐션(self-attention) 방식으로 문장 임베딩 벡터를 계산하기 위한 통계값을 결정할 수 있다. 이를 위해, 화자 식별 뉴럴 네트워크(30)에는 셀프 어텐션 방식으로 통계값을 결정하기 위한 셀프 어텐션 레이어(35)가 추가적으로 형성될 수 있다. 셀프 어텐션 레이어(35)는 도 8에 도시되는 위치 외에도, 입력 레이어(31), 임베딩 레이어(33) 및 출력 레이어(34)의 위치가 아닌 다른 임의의 위치에 형성될 수 있다.
셀프 어텐션 레이어(35)가 형성되는 경우, 제1 뉴럴 네트워크(10) 및 제2 뉴럴 네트워크(20)에도 셀프 어텐션 레이어(35)에 대응되는 추가적인 레이어가 형성될 수 있고, 프로세서(120)가 교사-학생 학습 모델에 따라 제2 뉴럴 네트워크(20)를 학습시킴으로써 셀프 어텐션 레이어(35)를 포함하는 화자 식별 뉴럴 네트워크(30)가 형성될 수 있다.
셀프 어텐션 레이어(35)는 셀프 어텐션 방식으로 문장 프레임들에 대응되는 임베딩 벡터들에 대한 통계값을 결정하여 문장 임베딩 벡터를 계산할 수 있다. 예를 들면, 문장 프레임들에 대응되는 임베딩 벡터들에 대한 통계값이 가중 합계인 경우, 셀프 어텐션 레이어(35)는 가중 합계의 가중치들을 계산할 수 있다.
구체적으로, 셀프 어텐션 레이어(35)는 문장 프레임들에 대응되는 임베딩 벡터들 중에서, 음성이 존재하는 구간의 임베딩 벡터에 대해서는 높은 가중치를 부여하고, 음성 없이 잡음만이 존재하는 구간의 임베딩 벡터에 대해서는 낮은 가중치를 부여할 수 있다. 이와 같은 셀프 어텐션 레이어(35)의 동작에 의하여, 화자 인식 뉴럴 네트워크(30)는 별도의 음성 전처리 내지 음성 향상(VAD, voice activity detection) 없이도, 음성 구간과 음성 없는 잡음 구간을 구별하여 화자 인식의 정확도를 향상시킬 수 있다.
도 9는 일부 실시예에 따른 화자 식별 네트워크를 통해 입력 음성 신호에 대한 화자가 식별되는 성능을 설명하기 위한 표를 나타내는 도면이다.
도 9를 참조하면, 화자 식별 네트워크(30)를 형성하기 위한 데이터를 나타내는 표(910), 화자 식별 네트워크(30)를 활용하여 화자 식별 성능을 테스트하기 위한 데이터를 나타내는 표(920) 및 화자 식별 네트워크(30)를 통한 화자 식별 결과를 나타내는 표(930)가 도시되어 있다.
표(910)에서, 화자 식별 네트워크(30)는 160명의 화자에 의한 음성 데이터에 대한 학습을 통해 형성될 수 있다. 프로세서(120)는 표(910)의 데이터를 활용하여 교사-학생 학습 모델에 따라 제2 뉴럴 네트워크(20)를 학습시킴으로써 화자 식별 네트워크(30)를 형성할 수 있다. 160명의 화자는 각각 100회의 음성 신호를 생성하여 학습 데이터로 제공할 수 있고, 제공되는 학습 데이터는 -5 내지 20 dB의 신호대 잡음비(SNR)를 갖는 잡음 환경의 음성 신호 및 30 dB의 신호대 잡음비(SNR)를 갖는 클린 환경의 음성 신호일 수 있다. 잡음 유형은 카페, 자동차, 공사장, 공장, 아이들 소음 등일 수 있다.
표(920)에서, 화자 식별 네트워크(30)를 테스트하기 위한 데이터는 40명의 화자에 의한 음성 신호일 수 있고, 5 dB의 잡음대 신호비를 갖는 잡음 환경의 음성 신호일 수 있으며, 자동차 또는 떠드는 소리(babble)의 잡음 유형일 수 있다. 테스트하기 위한 데이터는 60회의 타겟 시도를 포함하는 60*40회의 음성 신호일 수 있다.
표(930)에서, 화자 식별 네트워크(30)를 활용하여 입력 음성 신호에 대한 화자를 식별하는 성능이 동일 오류율(EER, equal error rate)을 통해 제시되어 있다. 동일 오류율(EER)은 오인식률(FAR, false acceptance rate) 및 오거부율(FRR, false rejection rate)이 일치하는 경우의 오류율을 의미할 수 있다. 칼럼(931)은 클린 환경의 음성 신호에 대한 학습만이 수행된 경우를 의미할 수 있고, 칼럼(932)은 잡음 환경의 음성 신호에 대한 학습만이 수행된 경우를 의미할 수 있고, 칼럼(933)은 교사-학생 학습 모델에 따른 학습이 수행된 경우를 의미할 수 있다. '클린' 음성 신호에 대해서는 칼럼(931)의 정확도가 가장 높은 것으로 확인되나, 칼럼(933)의 정확도 또한 칼럼(931)의 정확도에 근접한 수준인 것이 확인될 수 있다. 또한, 제시된 네 종류의 음성 신호 모두에서, 칼럼(933)의 정확도가 칼럼(932)의 정확도보다 높은 것으로 확인될 수 있다.
표(930)의 내용으로부터, 잡음 환경의 음성 신호에 대한 화자를 식별할 수 있는 칼럼(932) 및 칼럼(933)을 비교하면, 교사-학생 학습 모델을 적용하지 않고 단순히 잡음 환경의 음성 신호에 대한 학습만이 수행되는 칼럼(932)의 경우보다, 교사-학생 학습 모델에 따라 화자 식별 능력과 잡음 처리 능력을 구분하여 학습하는 칼럼(933)의 경우에 동일 오류율(EER)이 더 낮을 수 있고, 화자 식별 성능 더 높을 수 있다는 점이 확인될 수 있다.
도 10은 일부 실시예에 따른 화자 식별 뉴럴 네트워크를 구현하는 방법을 구성하는 단계들을 나타내는 흐름도이다.
도 10을 참조하면, 화자 식별 뉴럴 네트워크(30)를 구현하는 방법은 단계 1010 내지 단계 1030을 포함할 수 있다. 다만 이에 제한되는 것은 아니고, 도 10에 도시되는 단계들 외에 다른 범용적인 단계들이 화자 식별 뉴럴 네트워크(30)를 구현하는 방법에 더 포함될 수 있다.
도 10의 화자 식별 뉴럴 네트워크(30)를 구현하는 방법은 도 1 내지 도 9를 통해 설명되는 화자 식별 뉴럴 네트워크(30)를 구현하는 장치(100)에서 시계열적으로 처리되는 단계들로 구성될 수 있다. 따라서, 도 10의 방법에 대해 이하에서 생략되는 내용이라 할지라도, 도 1 내지 도 9의 장치(100)에 대해 이상에서 기술되는 내용은 도 10의 방법에 대해서도 동일하게 적용될 수 있다.
단계 1010에서, 장치(100)는 클린 환경의 음성 신호에 대한 화자를 식별하도록 학습되는 제1 뉴럴 네트워크(10)를 생성할 수 있다.
장치(100)는 제1 뉴럴 네트워크(10)를 구성하는 적어도 하나의 레이어 중 마지막 은닉층의 출력을 나타내는 제1 임베딩 벡터에 기초하여 클린 환경의 음성 신호에 대한 화자가 식별되도록 제1 뉴럴 네트워크(10)를 생성할 수 있다.
장치(100)는 제1 뉴럴 네트워크(10)의 학습 목표 및 제1 뉴럴 네트워크(10)의 출력 간의 교차 엔트로피(cross entropy)가 최소화되도록 학습시킴으로써 제1 뉴럴 네트워크(10)를 생성할 수 있다.
단계 1020에서, 장치(100)는 잡음 환경의 음성 신호에 대한 화자를 식별하기 위한 제2 뉴럴 네트워크(20)를 생성할 수 있다.
장치(100)는 제2 뉴럴 네트워크(20)를 구성하는 적어도 하나의 레이어 중 마지막 은닉층의 출력을 나타내는 제2 임베딩 벡터에 기초하여 잡음 환경의 음성 신호에 대한 화자가 식별되도록 제2 뉴럴 네트워크(20)를 생성할 수 있다.
장치(100)는 제2 뉴럴 네트워크(20)의 학습 목표 및 제2 뉴럴 네트워크(20)의 출력 간의 교차 엔트로피가 최소화되도록 제2 뉴럴 네트워크(20)를 학습시킬 수 있다.
장치(100)는 제1 뉴럴 네트워크(10)를 구성하는 레이어 및 노드의 개수와 동일한 개수의 레이어 및 노드를 갖도록 제2 뉴럴 네트워크(20)를 생성할 수 있다.
단계 1030에서, 장치(100)는 제1 뉴럴 네트워크(10)가 교사 뉴럴 네트워크로 설정되고 제2 뉴럴 네트워크(20)가 학생 뉴럴 네트워크로 설정되는 교사-학생 학습 모델에 따라, 제2 뉴럴 네트워크(20)를 학습시킴으로써 화자 식별 뉴럴 네트워크(30)를 형성할 수 있다.
장치(100)는 상호 대응되는 클린 환경의 음성 신호 및 잡음 환경의 음성 신호로부터 도출되는 제1 임베딩 벡터 및 제2 임베딩 벡터 간의 거리가 최소화되도록 제2 뉴럴 네트워크(20)를 학습시킬 수 있다.
제1 임베딩 벡터 및 제2 임베딩 벡터 간의 거리는 평균 제곱 오차(MSE, mean square error), 코사인 유사도(cosine similarity) 및 KL 다이버전스(Kullback-Leibler divergence) 중 적어도 하나에 기초하여 산출될 수 있다.
장치(100)는 제1 뉴럴 네트워크(10)의 학습 파라미터의 최종값을 제2 뉴럴 네트워크(20)의 학습 파라미터의 초기값으로 설정하여 제2 뉴럴 네트워크(20)를 학습시킬 수 있다.
도 11은 일부 실시예에 따른 화자 식별 뉴럴 네트워크를 활용하여 입력 음성 신호에 대한 화자를 식별하는 방법을 구성하는 단계들을 나타내는 흐름도이다.
도 11을 참조하면, 화자 식별 뉴럴 네트워크(30)를 활용하여 입력 음성 신호에 대한 화자를 식별하는 방법은 단계 1110 내지 단계 1130을 포함할 수 있다. 다만 이에 제한되는 것은 아니고, 도 11에 도시되는 단계들 외에 다른 범용적인 단계들이 화자 식별 뉴럴 네트워크(30)를 활용하여 입력 음성 신호에 대한 화자를 식별하는 방법에 더 포함될 수 있다.
도 11의 화자 식별 뉴럴 네트워크(30)를 활용하여 입력 음성 신호에 대한 화자를 식별하는 방법은 도 1 내지 도 9를 통해 설명되는 화자 식별 뉴럴 네트워크(30)를 활용하여 입력 음성 신호에 대한 화자를 식별하는 장치(100)에서 시계열적으로 처리되는 단계들로 구성될 수 있다. 따라서, 도 11의 방법에 대해 이하에서 생략되는 내용이라 할지라도, 도 1 내지 도 9의 장치(100)에 대해 이상에서 기술되는 내용은 도 11의 방법에 대해서도 동일하게 적용될 수 있다.
단계 1110에서, 장치(100)는 입력 음성 신호로부터 피쳐(feature)를 추출할 수 있다.
피쳐는 입력 음성 신호에 대한 FFT(fast Fourier transform) 연산 결과에 따른 FFT 진폭(FFT amplitude), FFT 파워(FFT power) 및 로그 FFT 진폭(log FFT amplitude), 입력 음성 신호의 로그 밴드 에너지(log band energy), 멜 밴드 에너지(mel band energy) 및 MFCC(mel frequency cepstral coefficients) 중 적어도 하나를 포함할 수 있다.
단계 1120에서, 장치(100)는 피쳐를 화자 식별 뉴럴 네트워크(30)에 입력하여 화자 식별 뉴럴 네트워크(30)로부터 피쳐에 대응되는 임베딩 벡터를 추출할 수 있다.
단계 1130에서, 장치(100)는 임베딩 벡터에 기초하여 입력 음성 신호에 대한 화자를 식별할 수 있다.
장치(100)는 특정 화자의 음성 신호에 대한 화자 식별 뉴럴 네트워크(30)의 임베딩 벡터를 메모리(110)에 등록 임베딩 벡터로 저장할 수 있고, 입력 음성 신호에 대한 임베딩 벡터 및 등록 임베딩 벡터 간의 유사도에 기초하여 입력 음성 신호가 특정 화자를 나타내는지 여부를 식별할 수 있다.
입력 음성 신호에 대한 임베딩 벡터 및 등록 임베딩 벡터 간의 유사도는 코사인 유사도(cosine similarity) 및 PLDA(probabilistic linear discriminant analysis) 중 적어도 하나에 기초하여 산출될 수 있다.
장치(100)는 입력 음성 신호를 시간 간격에 따라 분할하여 복수의 프레임들을 설정하고, 복수의 프레임들로부터 문장 단위를 나타내는 적어도 일부를 추출하여 문장 프레임들로 설정하고, 문장 프레임들에 대응되는 임베딩 벡터들에 대한 통계값을 나타내는 문장 임베딩 벡터를 계산하고, 문장 임베딩 벡터에 기초하여 문장 단위에 대한 화자를 식별할 수 있다.
화자 식별 뉴럴 네트워크(30)에는 셀프 어텐션(self-attention) 방식으로 통계값을 결정하기 위한 셀프 어텐션 레이어가 추가적으로 형성될 수 있다.
한편, 도 10의 화자 식별 뉴럴 네트워크(30)를 구현하는 방법 및 도 11의 화자 식별 뉴럴 네트워크(30)를 활용하여 입력 음성 신호에 대한 화자를 식별하는 방법은 그 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록되는 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다.
컴퓨터로 판독 가능한 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령어의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드가 포함될 수 있다.
이상에서 실시예들에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.

Claims (20)

  1. 화자 식별 뉴럴 네트워크를 구현하는 방법에 있어서,
    클린 환경의 음성 신호에 대한 화자를 식별하도록 학습되는 제1 뉴럴 네트워크를 생성하는 단계;
    잡음 환경의 음성 신호에 대한 화자를 식별하기 위한 제2 뉴럴 네트워크를 생성하는 단계; 및
    상기 제1 뉴럴 네트워크가 교사 뉴럴 네트워크로 설정되고 상기 제2 뉴럴 네트워크가 학생 뉴럴 네트워크로 설정되는 교사-학생 학습 모델에 따라, 상기 제2 뉴럴 네트워크를 학습시킴으로써 상기 화자 식별 뉴럴 네트워크를 형성하는 단계를 포함하는, 방법.
  2. 제 1항에 있어서,
    상기 제1 뉴럴 네트워크를 생성하는 단계는,
    상기 제1 뉴럴 네트워크를 구성하는 적어도 하나의 레이어 중 마지막 은닉층의 출력을 나타내는 제1 임베딩 벡터에 기초하여 상기 클린 환경의 음성 신호에 대한 화자가 식별되도록 상기 제1 뉴럴 네트워크를 생성하는 단계를 포함하고,
    상기 제2 뉴럴 네트워크를 생성하는 단계는,
    상기 제2 뉴럴 네트워크를 구성하는 적어도 하나의 레이어 중 마지막 은닉층의 출력을 나타내는 제2 임베딩 벡터에 기초하여 상기 잡음 환경의 음성 신호에 대한 화자가 식별되도록 상기 제2 뉴럴 네트워크를 생성하는 단계를 포함하는, 방법.
  3. 제 2항에 있어서,
    상기 화자 식별 뉴럴 네트워크를 형성하는 단계는,
    상호 대응되는 클린 환경의 음성 신호 및 잡음 환경의 음성 신호로부터 도출되는 상기 제1 임베딩 벡터 및 상기 제2 임베딩 벡터 간의 거리가 최소화되도록 상기 제2 뉴럴 네트워크를 학습시키는 단계를 포함하는, 방법.
  4. 제 3항에 있어서,
    상기 제1 임베딩 벡터 및 상기 제2 임베딩 벡터 간의 거리는 평균 제곱 오차(MSE, mean square error), 코사인 유사도(cosine similarity) 및 KL 다이버전스(Kullback-Leibler divergence) 중 적어도 하나에 기초하여 산출되는, 방법.
  5. 제 1항에 있어서,
    상기 제1 뉴럴 네트워크를 생성하는 단계는,
    상기 제1 뉴럴 네트워크의 학습 목표 및 상기 제1 뉴럴 네트워크의 출력 간의 교차 엔트로피(cross entropy)가 최소화되도록 학습시킴으로써 상기 제1 뉴럴 네트워크를 생성하는 단계를 포함하고,
    상기 화자 식별 뉴럴 네트워크를 형성하는 단계는,
    상기 제2 뉴럴 네트워크의 학습 목표 및 상기 제2 뉴럴 네트워크의 출력 간의 교차 엔트로피가 최소화되도록 상기 제2 뉴럴 네트워크를 학습시키는 단계를 포함하는, 방법.
  6. 제 1항에 있어서,
    상기 제2 뉴럴 네트워크를 생성하는 단계는,
    상기 제1 뉴럴 네트워크를 구성하는 레이어 및 노드의 개수와 동일한 개수의 레이어 및 노드를 갖도록 상기 제2 뉴럴 네트워크를 생성하는 단계를 포함하는, 방법.
  7. 제 6항에 있어서,
    상기 화자 식별 뉴럴 네트워크를 형성하는 단계는,
    상기 제1 뉴럴 네트워크의 학습 파라미터의 최종값을 상기 제2 뉴럴 네트워크의 학습 파라미터의 초기값으로 설정하여 상기 제2 뉴럴 네트워크를 학습시키는 단계를 포함하는, 방법.
  8. 화자 식별 뉴럴 네트워크를 구현하는 장치에 있어서,
    적어도 하나의 프로그램을 저장하는 메모리; 및
    상기 적어도 하나의 프로그램을 실행함으로써 상기 화자 식별 뉴럴 네트워크를 구현하는 프로세서를 포함하고,
    상기 프로세서는,
    클린 환경의 음성 신호에 대한 화자를 식별하도록 학습되는 제1 뉴럴 네트워크를 생성하고,
    잡음 환경의 음성 신호에 대한 화자를 식별하기 위한 제2 뉴럴 네트워크를 생성하고,
    상기 제1 뉴럴 네트워크가 교사 뉴럴 네트워크로 설정되고 상기 제2 뉴럴 네트워크가 학생 뉴럴 네트워크로 설정되는 교사-학생 학습 모델에 따라, 상기 제2 뉴럴 네트워크를 학습시킴으로써 상기 화자 식별 뉴럴 네트워크를 형성하는, 장치.
  9. 제 8항에 있어서,
    상기 프로세서는,
    상기 제1 뉴럴 네트워크를 구성하는 적어도 하나의 레이어 중 마지막 은닉층의 출력을 나타내는 제1 임베딩 벡터에 기초하여 상기 클린 환경의 음성 신호에 대한 화자가 식별되도록 상기 제1 뉴럴 네트워크를 생성하고,
    상기 제2 뉴럴 네트워크를 구성하는 적어도 하나의 레이어 중 마지막 은닉층의 출력을 나타내는 제2 임베딩 벡터에 기초하여 상기 잡음 환경의 음성 신호에 대한 화자가 식별되도록 상기 제2 뉴럴 네트워크를 생성하는, 장치.
  10. 제 9항에 있어서,
    상기 프로세서는,
    상호 대응되는 클린 환경의 음성 신호 및 잡음 환경의 음성 신호로부터 도출되는 상기 제1 임베딩 벡터 및 상기 제2 임베딩 벡터 간의 거리가 최소화되도록 상기 제2 뉴럴 네트워크를 학습시킴으로써 상기 화자 식별 뉴럴 네트워크를 형성하는, 장치.
  11. 제 10항에 있어서,
    상기 제1 임베딩 벡터 및 상기 제2 임베딩 벡터 간의 거리는 평균 제곱 오차(MSE, mean square error), 코사인 유사도(cosine similarity) 및 KL 다이버전스(Kullback-Leibler divergence) 중 적어도 하나에 기초하여 산출되는, 장치.
  12. 제 8항에 있어서,
    상기 프로세서는,
    상기 제1 뉴럴 네트워크의 학습 목표 및 상기 제1 뉴럴 네트워크의 출력 간의 교차 엔트로피(cross entropy)가 최소화되도록 학습시킴으로써 상기 제1 뉴럴 네트워크를 생성하고,
    상기 제2 뉴럴 네트워크의 학습 목표 및 상기 제2 뉴럴 네트워크의 출력 간의 교차 엔트로피가 최소화되도록 상기 제2 뉴럴 네트워크를 학습시킴으로써 상기 화자 식별 뉴럴 네트워크를 형성하는, 장치.
  13. 제 8항에 있어서,
    상기 프로세서는,
    상기 제1 뉴럴 네트워크를 구성하는 레이어 및 노드의 개수와 동일한 개수의 레이어 및 노드를 갖도록 상기 제2 뉴럴 네트워크를 생성하는, 장치.
  14. 제 13항에 있어서,
    상기 프로세서는,
    상기 제1 뉴럴 네트워크의 학습 파라미터의 최종값을 상기 제2 뉴럴 네트워크의 학습 파라미터의 초기값으로 설정하여 상기 제2 뉴럴 네트워크를 학습시킴으로써 상기 화자 식별 뉴럴 네트워크를 형성하는, 장치.
  15. 화자 식별 뉴럴 네트워크를 활용하여 입력 음성 신호에 대한 화자를 식별하는 장치에 있어서,
    적어도 하나의 프로그램을 저장하는 메모리; 및
    상기 적어도 하나의 프로그램을 실행함으로써 상기 입력 음성 신호에 대한 화자를 식별하는 프로세서를 포함하고,
    상기 프로세서는,
    상기 입력 음성 신호로부터 피쳐(feature)를 추출하고,
    상기 피쳐를 상기 화자 식별 뉴럴 네트워크에 입력하여 상기 화자 식별 뉴럴 네트워크로부터 상기 피쳐에 대응되는 임베딩 벡터를 추출하고,
    상기 임베딩 벡터에 기초하여 상기 입력 음성 신호에 대한 화자를 식별하고,
    상기 화자 식별 뉴럴 네트워크는,
    클린 환경의 음성 신호에 대한 화자를 식별하도록 학습되는 제1 뉴럴 네트워크가 교사 뉴럴 네트워크로 설정되고 잡음 환경의 음성 신호에 대한 화자를 식별하기 위한 제2 뉴럴 네트워크가 학생 뉴럴 네트워크로 설정되는 교사-학생 학습 모델에 따라 상기 제2 뉴럴 네트워크가 학습되어 형성되는, 장치.
  16. 제 15항에 있어서,
    상기 피쳐는 상기 입력 음성 신호에 대한 FFT(fast Fourier transform) 연산 결과에 따른 FFT 진폭(FFT amplitude), FFT 파워(FFT power) 및 로그 FFT 진폭(log FFT amplitude), 상기 입력 음성 신호의 로그 밴드 에너지(log band energy), 멜 밴드 에너지(mel band energy) 및 MFCC(mel frequency cepstral coefficients) 중 적어도 하나를 포함하는, 장치.
  17. 제 15항에 있어서,
    상기 프로세서는,
    특정 화자의 음성 신호에 대한 상기 화자 식별 뉴럴 네트워크의 임베딩 벡터를 상기 메모리에 등록 임베딩 벡터로 저장하고,
    상기 입력 음성 신호에 대한 임베딩 벡터 및 상기 등록 임베딩 벡터 간의 유사도에 기초하여 상기 입력 음성 신호가 상기 특정 화자를 나타내는지 여부를 식별하는, 장치.
  18. 제 17항에 있어서,
    상기 입력 음성 신호에 대한 임베딩 벡터 및 상기 등록 임베딩 벡터 간의 유사도는 코사인 유사도(cosine similarity) 및 PLDA(probabilistic linear discriminant analysis) 중 적어도 하나에 기초하여 산출되는, 장치.
  19. 제 15항에 있어서,
    상기 프로세서는,
    상기 입력 음성 신호를 시간 간격에 따라 분할하여 복수의 프레임들을 설정하고,
    상기 복수의 프레임들로부터 문장 단위를 나타내는 적어도 일부를 추출하여 문장 프레임들로 설정하고,
    상기 문장 프레임들에 대응되는 임베딩 벡터들에 대한 통계값을 나타내는 문장 임베딩 벡터를 계산하고,
    상기 문장 임베딩 벡터에 기초하여 상기 문장 단위에 대한 화자를 식별하는, 장치.
  20. 제 19항에 있어서,
    상기 화자 식별 뉴럴 네트워크에는 셀프 어텐션(self-attention) 방식으로 상기 통계값을 결정하기 위한 셀프 어텐션 레이어가 추가적으로 형성되는, 장치.
KR1020190033668A 2019-03-25 2019-03-25 화자 식별 뉴럴 네트워크를 구현하는 방법 및 장치 KR20200119377A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190033668A KR20200119377A (ko) 2019-03-25 2019-03-25 화자 식별 뉴럴 네트워크를 구현하는 방법 및 장치
US16/694,333 US11694696B2 (en) 2019-03-25 2019-11-25 Method and apparatus for implementing speaker identification neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190033668A KR20200119377A (ko) 2019-03-25 2019-03-25 화자 식별 뉴럴 네트워크를 구현하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20200119377A true KR20200119377A (ko) 2020-10-20

Family

ID=72607686

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190033668A KR20200119377A (ko) 2019-03-25 2019-03-25 화자 식별 뉴럴 네트워크를 구현하는 방법 및 장치

Country Status (2)

Country Link
US (1) US11694696B2 (ko)
KR (1) KR20200119377A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220080349A (ko) * 2020-12-07 2022-06-14 서울시립대학교 산학협력단 세그먼트 집계를 통해 짧은 발성을 보상하는 심층 신경망 기반 화자 인증 시스템 및 방법
WO2023128035A1 (ko) * 2021-12-31 2023-07-06 서울대학교산학협력단 화자 유사도 판단 방법 및 장치

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11533115B2 (en) 2019-05-15 2022-12-20 Huawei Technologies Co., Ltd. Systems and methods for wireless signal configuration by a neural network
CN114041184A (zh) * 2019-06-28 2022-02-11 日本电气株式会社 欺骗检测装置、欺骗检测方法和计算机可读存储介质
US11657817B2 (en) * 2020-10-16 2023-05-23 Google Llc Suggesting an alternative interface when environmental interference is expected to inhibit certain automated assistant interactions
US20220293117A1 (en) * 2021-03-15 2022-09-15 Meta Platforms, Inc. Systems and methods for transforming audio in content items
CN113160805A (zh) * 2021-04-27 2021-07-23 中国建设银行股份有限公司深圳市分行 一种消息识别方法、装置、电子设备及存储介质
US12101206B2 (en) * 2021-07-26 2024-09-24 Qualcomm Incorporated Signaling for additional training of neural networks for multiple channel conditions
US11599794B1 (en) * 2021-10-20 2023-03-07 Moffett International Co., Limited System and method for training sample generator with few-shot learning
CN118335070B (zh) * 2024-06-12 2024-08-09 腾讯科技(深圳)有限公司 识别模型的训练方法、装置、计算机设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665823B2 (en) * 2013-12-06 2017-05-30 International Business Machines Corporation Method and system for joint training of hybrid neural networks for acoustic modeling in automatic speech recognition
US10540979B2 (en) * 2014-04-17 2020-01-21 Qualcomm Incorporated User interface for secure access to a device using speaker verification
KR101624926B1 (ko) 2014-12-17 2016-05-27 서울대학교산학협력단 딥 뉴럴 네트워크 기반 특징 보상 기법을 이용한 음성 인식 방법
KR102492318B1 (ko) 2015-09-18 2023-01-26 삼성전자주식회사 모델 학습 방법 및 장치, 및 데이터 인식 방법
US9972322B2 (en) * 2016-03-29 2018-05-15 Intel Corporation Speaker recognition using adaptive thresholding
GB2552722A (en) * 2016-08-03 2018-02-07 Cirrus Logic Int Semiconductor Ltd Speaker recognition
KR102692670B1 (ko) * 2017-01-04 2024-08-06 삼성전자주식회사 음성 인식 방법 및 음성 인식 장치
US10468032B2 (en) * 2017-04-10 2019-11-05 Intel Corporation Method and system of speaker recognition using context aware confidence modeling
US10885900B2 (en) * 2017-08-11 2021-01-05 Microsoft Technology Licensing, Llc Domain adaptation in speech recognition via teacher-student learning
KR102486395B1 (ko) 2017-11-23 2023-01-10 삼성전자주식회사 화자 인식을 위한 뉴럴 네트워크 장치, 및 그 동작 방법
KR102518543B1 (ko) * 2017-12-07 2023-04-07 현대자동차주식회사 사용자의 발화 에러 보정 장치 및 그 방법
US10643602B2 (en) * 2018-03-16 2020-05-05 Microsoft Technology Licensing, Llc Adversarial teacher-student learning for unsupervised domain adaptation
GB2573809B (en) * 2018-05-18 2020-11-04 Emotech Ltd Speaker Recognition
KR102654874B1 (ko) 2018-12-31 2024-04-05 삼성전자주식회사 화자 인식을 위한 뉴럴 네트워크 장치, 및 그 동작 방법
JP7112348B2 (ja) * 2019-02-13 2022-08-03 日本電信電話株式会社 信号処理装置、信号処理方法及び信号処理プログラム
CN111968679B (zh) * 2020-10-22 2021-01-29 深圳追一科技有限公司 情感识别方法、装置、电子设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220080349A (ko) * 2020-12-07 2022-06-14 서울시립대학교 산학협력단 세그먼트 집계를 통해 짧은 발성을 보상하는 심층 신경망 기반 화자 인증 시스템 및 방법
WO2023128035A1 (ko) * 2021-12-31 2023-07-06 서울대학교산학협력단 화자 유사도 판단 방법 및 장치
KR20230103667A (ko) * 2021-12-31 2023-07-07 서울대학교산학협력단 화자 유사도 판단 방법 및 장치

Also Published As

Publication number Publication date
US20200312336A1 (en) 2020-10-01
US11694696B2 (en) 2023-07-04

Similar Documents

Publication Publication Date Title
US11694696B2 (en) Method and apparatus for implementing speaker identification neural network
Mitra et al. Hybrid convolutional neural networks for articulatory and acoustic information based speech recognition
Feng et al. Speech feature denoising and dereverberation via deep autoencoders for noisy reverberant speech recognition
Vincent et al. The second ‘CHiME’speech separation and recognition challenge: An overview of challenge systems and outcomes
US10176811B2 (en) Neural network-based voiceprint information extraction method and apparatus
Woellmer et al. Keyword spotting exploiting long short-term memory
Mitra et al. Articulatory features from deep neural networks and their role in speech recognition
US11367431B2 (en) Synthetic speech processing
KP ELM speaker identification for limited dataset using multitaper based MFCC and PNCC features with fusion score
Khademian et al. Monaural multi-talker speech recognition using factorial speech processing models
Hadjahmadi et al. Robust feature extraction and uncertainty estimation based on attractor dynamics in cyclic deep denoising autoencoders
Falavigna et al. DNN adaptation by automatic quality estimation of ASR hypotheses
Wang Supervised speech separation using deep neural networks
Maheswari et al. A hybrid model of neural network approach for speaker independent word recognition
Agrawal et al. Prosodic feature based text dependent speaker recognition using machine learning algorithms
Nahar et al. Effect of data augmentation on dnn-based vad for automatic speech recognition in noisy environment
Satla et al. Dialect Identification in Telugu Language Speech Utterance Using Modified Features with Deep Neural Network.
Hamandouche Speech Detection for noisy audio files
Žmolíková et al. Neural target speech extraction
US20240304205A1 (en) System and Method for Audio Processing using Time-Invariant Speaker Embeddings
Barkana et al. Normal and abnormal non-speech audio event detection using MFCC and PR-based feature sets
Ouyang Single-Channel Speech Enhancement Based on Deep Neural Networks
KR20240162191A (ko) 다자간 화상 회의용 음성 품질 개선 방법 및 그 장치
Rasheed et al. Methods and techniques for speaker recognition: A Review
Abdulaziz Automatic speech recognition adaptation for various noise levels