KR20210015967A - 종단 간 스트리밍 키워드 탐지 - Google Patents

종단 간 스트리밍 키워드 탐지 Download PDF

Info

Publication number
KR20210015967A
KR20210015967A KR1020207038047A KR20207038047A KR20210015967A KR 20210015967 A KR20210015967 A KR 20210015967A KR 1020207038047 A KR1020207038047 A KR 1020207038047A KR 20207038047 A KR20207038047 A KR 20207038047A KR 20210015967 A KR20210015967 A KR 20210015967A
Authority
KR
South Korea
Prior art keywords
hotword
training
audio
memory
neural network
Prior art date
Application number
KR1020207038047A
Other languages
English (en)
Other versions
KR102483774B1 (ko
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 KR1020227046093A priority Critical patent/KR102622357B1/ko
Publication of KR20210015967A publication Critical patent/KR20210015967A/ko
Application granted granted Critical
Publication of KR102483774B1 publication Critical patent/KR102483774B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks
    • 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/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0445
    • 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
    • G06N3/0454
    • 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
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/063Training
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification
    • G10L17/22Interactive procedures; Man-machine interfaces
    • G10L17/24Interactive procedures; Man-machine interfaces the user being prompted to utter a password or a predefined phrase
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • G10L2015/025Phonemes, fenemes or fenones being the recognition units
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Abstract

핫워드를 검출하는 방법(600)은, 사용자 장치(102)에 의해 캡처된 스트리밍 오디오(118)를 특성화하는 입력 프레임의 시퀀스(210)를 수신하는 단계; 기억된 신경망(300)을 사용하여 스트리밍 오디오(118)에서 핫워드의 존재를 나타내는 확률 점수(350)를 생성하는 단계를 포함한다. 기억된 신경망은 순차적으로 적층된 특이값 분해 필터(SVDF) 계층(302)을 포함하며, 각각의 SVDF 계층(302)은 적어도 하나의 뉴런(312)을 포함한다. 각각의 뉴런(312)은, 각각의 메모리 컴포넌트(330); 각각의 입력 프레임(210)의 각각의 오디오 특징(410)에 대해 개별적으로 필터링을 수행하고 그리고 메모리 컴포넌트(330)로 출력하도록 구성된 제1 스테이지(320); 그리고 각각의 메모리 컴포넌트(330)에 상주하는 필터링된 모든 오디오 특징(410)에 대해 필터링을 수행하도록 구성된 제2 스테이지(340)를 포함한다. 방법은 또한 확률 점수가 핫워드 검출 임계값을 만족하는지 여부를 결정하는 단계; 그리고 추가 용어를 프로세싱하기 위해 사용자 장치에서 웨이크-업 프로세스를 시작하는 단계를 포함한다.

Description

종단 간 스트리밍 키워드 탐지
본 명세서는 스트리밍 오디오에서 키워드를 탐지(발견)하기 위한 종단 간(end-to-end) 시스템에 관한 것이다.
음성 지원 환경(예: 가정, 직장, 학교, 자동차 등)에서는 쿼리를 입력하고 응답하거나 및/또는 명령에 따라 기능을 수행하는 컴퓨터 기반 시스템에 사용자가 쿼리 또는 명령을 소리내어 말할 수 있다. 음성 지원 환경은 다양한 방 또는 환경 영역에 분산되어 연결된 마이크로폰 장치 네트워크를 사용하여 구현될 수 있다. 이러한 장치는 핫워드를 사용하여 환경에 있는 다른 개인을 대상으로 하는 발화와는 반대로 소정의 발화가 시스템을 향하는 시기를 식별할 수 있다. 따라서, 장치는 검출된 발화에 핫워드가 포함된 경우에만 슬립 상태 또는 하이버네이션 상태로 동작하고 웨이크-업할 수 있다. 신경망은 최근 스트리밍 오디오에서 사용자가 말한 핫워드를 검출하는 모델 훈련을 위한 매력적인 솔루션으로 등장했다. 일반적으로 스트리밍 오디오에서 핫워드를 검출하는 데 사용되는 시스템은 신호 프로세싱 프런트엔드 컴포넌트, 신경망 음향 인코더 컴포넌트 및 수기로 디자인된 디코더 컴포넌트를 포함한다. 이러한 컴포넌트는 일반적으로 서로 독립적으로 훈련되므로 복잡성이 추가되고 모든 컴포넌트를 공동으로 훈련하는 것에 비해 차선책이다.
본 개시의 일 양태는 스트리밍 오디오에서 핫워드를 검출하기 위한 방법을 제공한다. 이 방법은 사용자 장치의 데이터 프로세싱 하드웨어에서, 사용자 장치에 의해 캡처된 스트리밍 오디오를 특성화하는 각각의 오디오 특징을 각각 포함하는 입력 프레임의 시퀀스를 수신하는 단계; 데이터 프로세싱 하드웨어에 의해, 기억된 신경망을 사용하여 스트리밍 오디오에서 핫워드의 존재를 나타내는 확률 점수를 생성하는 단계를 포함한다. 기억된 신경망은 순차적으로 적층된 특이값 분해 필터(SVDF) 계층을 포함하며, 각각의 SVDF 계층은 적어도 하나의 뉴런을 포함한다. 각각의 뉴런은 각각의 메모리 컴포넌트, 제1 스테이지, 제2 스테이지를 포함한다. 각각의 메모리 컴포넌트는 해당 뉴런의 각각의 메모리 용량과 관련된다. 제1 스테이지는 각각의 입력 프레임의 각각의 오디오 특징에 대해 개별적으로 필터링을 수행하고 그리고 필터링된 오디오 특징을 각각의 메모리 컴포넌트로 출력하도록 구성된다. 제2 스테이지는 각각의 메모리 컴포넌트에 상주하는 필터링된 모든 오디오 특징에 대해 필터링을 수행하도록 구성된다. 상기 방법은 또한 데이터 프로세싱 하드웨어에 의해, 확률 점수가 핫워드 검출 임계값을 만족하는지 여부를 결정하는 단계; 그리고 확률 점수가 핫워드 검출 임계값을 만족할 때, 데이터 프로세싱 하드웨어에 의해, 오디오 스트림에서 핫워드 및/또는 핫워드 다음에 오는 하나 이상의 다른 용어를 프로세싱하기 위해 사용자 장치에서 웨이크-업 프로세스를 시작하는 단계를 포함한다.
본 개시의 구현은, 다음의 선택적 특징 중 하나 이상을 포함할 수 있다. 일부 구현에서, 각각의 SVDF 계층으로부터의 뉴런에 대한 각각의 메모리 컴포넌트와 관련된 메모리 용량의 합은 전형적인 화자(typical speaker)가 핫워드를 말하는 데 걸리는 시간에 비례하는 고정 메모리 용량을 기억된 신경망에 제공한다. 일부 예에서, 각각의 메모리 컴포넌트 중 적어도 하나와 관련된 각각의 메모리 용량은 나머지 메모리 컴포넌트와 관련된 각각의 메모리 용량과는 상이하다. 일부 예에서, 모든 SVDF 계층의 각각의 메모리 컴포넌트와 관련된 각각의 메모리 용량은 서로 동일하다.
일부 예에서, 원격 시스템은 복수의 훈련 입력 오디오 시퀀스에서 기억된 신경망을 훈련시킨다. 일부 예에서, 각각의 훈련 입력 오디오 시퀀스는, 핫워드의 음성(phonetic) 컴포넌트를 특성화하는 하나 이상의 각각의 오디오 특징을 각각 포함하는 입력 프레임의 시퀀스; 그리고 입력 프레임에 할당된 라벨을 포함하며, 각 라벨은 각 입력 프레임의 오디오 특징이 핫워드의 음성 컴포넌트를 포함할 확률을 나타낸다. 일부 구성에서, 기억된 신경망을 훈련시키는 것은, 각각의 훈련(training) 입력 오디오 시퀀스에 대해: 핫워드의 음성 컴포넌트를 포함하는 입력 프레임의 부분에 제1 라벨을 할당하고, 핫워드의 음성 컴포넌트를 포함하는 입력 프레임의 나머지 부분에 제2 라벨을 할당함으로써 인코더 부분을 훈련시키는 단계; 그리고 해당 훈련 입력 오디오 시퀀스가 핫워드를 포함하거나 핫워드를 포함하지 않음을 나타내는 라벨을 적용함으로써 디코더 부분을 훈련시키는 단계를 포함한다. 상기 제1 라벨을 상기 입력 프레임의 부분에 할당하는 단계는, 핫워드의 마지막 음성 컴포넌트를 특성화하는 하나 이상의 각각의 오디오 특징을 포함하는 적어도 하나의 입력 프레임에 제1 라벨을 할당하는 단계; 그리고 핫워드의 나머지 음성 컴포넌트를 특성화하는 하나 이상의 각각의 오디오 특징을 각각 포함하는 나머지 입력 프레임에 제2 라벨을 할당하는 단계를 포함한다. 일부 구성에서, 상기 신경망을 훈련시키는 것은, 각각의 훈련 입력 오디오 시퀀스에 대해: 훈련(training)의 제1 스테이지 동안, 해당 훈련 입력 오디오 시퀀스에 대한 입력 프레임에 라벨을 할당함으로써 인코더 부분을 사전 훈련시키는 단계; 그리고 훈련의 제2 스테이지 동안, 훈련의 제1 스테이지로부터 할당된 라벨로 인코더 부분을 초기화하는 단계; 그리고 핫워드를 검출하거나 핫워드를 검출하지 않도록 인코더 부분으로부터의 출력으로 디코더 부분을 훈련시키는 단계를 포함한다.
상기 기억된 신경망은 인접한 SVDF 계층 사이에 배치된 적어도 하나의 추가 프로세싱 계층을 포함한다. 상기 기억된 신경망은 인접한 SVDF 계층 사이에 배치된 적어도 하나의 병목(bottlenecking) 계층을 포함한다. 각각의 입력 프레임의 오디오 특징은 로그-필터뱅크를 포함한다. 예를들어, 각각의 입력 프레임은 40 개의 로그-필터뱅크를 포함한다.
본 개시의 다른 양태는 스트리밍 오디오에서 오디오를 검출하기 위한 시스템을 제공한다. 시스템은 사용자 장치의 데이터 프로세싱 하드웨어; 그리고 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함하며, 메모리 하드웨어는 데이터 프로세싱 하드웨어에서 실행될 때 데이터 프로세싱 하드웨어로 하여금 동작들을 수행하게 하는 명령어를 저장한다. 상기 동작들은, 사용자 장치에 의해 캡처된 스트리밍 오디오를 특성화하는 각각의 오디오 특징을 각각 포함하는 입력 프레임의 시퀀스를 수신하는 동작; 기억된 신경망을 사용하여 스트리밍 오디오에서 핫워드의 존재를 나타내는 확률 점수를 생성하는 동작을 포함한다. 기억된 신경망은 순차적으로 적층된 특이값 분해 필터(SVDF) 계층을 포함하며, 각각의 SVDF 계층은 적어도 하나의 뉴런을 포함한다. 각각의 뉴런은, 메모리 컴포넌트, 제1 스테이지, 제2 스테이지를 포함한다. 각각의 메모리 컴포넌트는 해당 뉴런의 각각의 메모리 용량과 관련된다. 제1 스테이지는 각각의 입력 프레임의 각각의 오디오 특징에 대해 개별적으로 필터링을 수행하고 그리고 필터링된 오디오 특징을 각각의 메모리 컴포넌트로 출력하도록 구성된다. 제2 스테이지는 각각의 메모리 컴포넌트에 상주하는 필터링된 모든 오디오 특징에 대해 필터링을 수행하도록 구성된다. 동작들은 또한 확률 점수가 핫워드 검출 임계값을 만족하는지 여부를 결정하는 동작; 그리고 확률 점수가 핫워드 검출 임계값을 만족할 때, 오디오 스트림에서 핫워드 및/또는 핫워드 다음에 오는 하나 이상의 다른 용어를 프로세싱하기 위해 사용자 장치에서 웨이크-업 프로세스를 시작하는 동작을 포함한다.
이 양태는 다음의 선택적 기능 중 하나 이상을 포함할 수 있다. 일부 구현에서, 각각의 SVDF 계층으로부터의 뉴런에 대한 각각의 메모리 컴포넌트와 관련된 메모리 용량의 합은 전형적인 화자(typical speaker)가 핫워드를 말하는 데 걸리는 시간에 비례하는 고정 메모리 용량을 기억된 신경망에 제공한다. 일부 구현에서, 각각의 메모리 컴포넌트 중 적어도 하나와 관련된 각각의 메모리 용량은 나머지 메모리 컴포넌트와 관련된 각각의 메모리 용량과는 상이하다. 모든 SVDF 계층의 각각의 메모리 컴포넌트와 관련된 각각의 메모리 용량은 서로 동일하다.
일부 구현에서, 원격 시스템은 복수의 훈련 입력 오디오 시퀀스에서 기억된 신경망을 훈련시키도록 구성된다. 일부 구현에서, 각각의 훈련 입력 오디오 시퀀스는, 핫워드의 음성(phonetic) 컴포넌트를 특성화하는 하나 이상의 각각의 오디오 특징을 각각 포함하는 입력 프레임의 시퀀스; 그리고 입력 프레임에 할당된 라벨을 포함하며, 각 라벨은 각 입력 프레임의 오디오 특징이 핫워드의 음성 컴포넌트를 포함할 확률을 나타낸다. 일부 구현에서, 기억된 신경망을 훈련시키는 것은, 각각의 훈련(training) 입력 오디오 시퀀스에 대해: 핫워드의 음성 컴포넌트를 포함하는 입력 프레임의 부분에 제1 라벨을 할당하고, 핫워드의 음성 컴포넌트를 포함하는 입력 프레임의 나머지 부분에 제2 라벨을 할당함으로써 인코더 부분을 훈련시키는 것; 그리고 해당 훈련 입력 오디오 시퀀스가 핫워드를 포함하거나 핫워드를 포함하지 않음을 나타내는 라벨을 적용함으로써 디코더 부분을 훈련시키는 것을 포함한다. 여기서, 상기 제1 라벨을 상기 입력 프레임의 부분에 할당하는 것은, 핫워드의 마지막 음성 컴포넌트를 특성화하는 하나 이상의 각각의 오디오 특징을 포함하는 적어도 하나의 입력 프레임에 제1 라벨을 할당하는 것; 그리고 핫워드의 나머지 음성 컴포넌트를 특성화하는 하나 이상의 각각의 오디오 특징을 각각 포함하는 나머지 입력 프레임에 제2 라벨을 할당하는 것을 포함한다. 일부 구현에서, 상기 신경망을 훈련시키는 것은, 각각의 훈련 입력 오디오 시퀀스에 대해: 훈련(training)의 제1 스테이지 동안, 해당 훈련 입력 오디오 시퀀스에 대한 입력 프레임에 라벨을 할당함으로써 인코더 부분을 사전 훈련시키는 것; 그리고 훈련의 제2 스테이지 동안, 훈련의 제1 스테이지로부터 할당된 라벨로 인코더 부분을 초기화하는 것; 그리고 핫워드를 검출하거나 핫워드를 검출하지 않도록 인코더 부분으로부터의 출력으로 디코더 부분을 훈련시키는 것을 포함한다.
상기 기억된 신경망은 인접한 SVDF 계층 사이에 배치된 적어도 하나의 추가 프로세싱 계층을 포함한다. 상기 기억된 신경망은 인접한 SVDF 계층 사이에 배치된 적어도 하나의 병목(bottlenecking) 계층을 포함한다. 일부 구현에서, 각각의 입력 프레임의 오디오 특징은 로그-필터뱅크를 포함한다. 일부 구현에서, 각각의 입력 프레임은 40 개의 로그-필터뱅크를 포함한다.
본 개시의 하나 이상의 구현의 세부 사항은 첨부된 도면 및 아래의 설명에 제시된다. 다른 양태, 특징 및 장점은 설명 및 도면, 그리고 청구 범위로부터 명백해질 것이다.
도 1은 음성 발화에서 핫워드를 검출하기 위해 기억된 신경망을 훈련시키고 훈련된 기억된 신경망을 사용하는 예시적인 시스템의 개략도이다.
도 2는 핫워드를 검출하는 모델에 사용되는 일반적인 신경망 음향 인코더의 컴포넌트의 개략도이다.
도 3a는 도 1의 시스템의 기억된 신경망의 예시적인 컴포넌트의 개략도이다.
도 3b는 다중 계층을 갖는 기억된 신경망의 예시적인 컴포넌트의 개략도이다.
도 4a 및 4b는 신경망 훈련을 위해 스트리밍 오디오로부터 생성된 오디오 특징-라벨 쌍을 보여주는 개략도이다.
도 5a 및 5b는 도 1의 시스템의 기억된 신경망의 계층의 개략도이다.
도 6은 스트리밍 오디오에서 핫워드를 검출하는 방법에 대한 동작의 예시적인 배열의 흐름도이다.
도 7은 본 명세서에 설명된 시스템 및 방법을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 장치의 개략도이다.
다양한 도면에서 유사한 참조 기호는 유사한 요소를 나타낸다.
음성 지원 장치(예를 들어, 음성 어시스턴트를 실행하는 사용자 장치)는 사용자가 쿼리 또는 명령을 큰 소리로 말하고 쿼리에 응답하고 및/또는 명령에 기반한 기능을 수행할 수 있도록 한다. 동의에 의해 음성 지원 장치에 대한 관심을 불러 일으키는 미리 정해진 용어/구문이 예약된, "핫워드"("키워드", "주의 단어", "웨이크-업 문구/단어", "트리거 문구" 또는 "음성 액션 시작 명령"이라고도 함)의 사용을 통해, 음성 지원 장치는 (즉, 발화에서 핫워드 다음에 나오는 하나 이상의 용어를 프로세싱하기 위한 웨이크-업 프로세스를 시작하기 위해) 시스템으로 향하는 발화와 환경에 있는 개인에게 향하는 발화를 구분할 수 있다. 일반적으로 음성 지원 장치는 배터리 전원을 절약하기 위해 절전 상태에서 작동하며, 입력 오디오 데이터가 음성 핫워드를 따르지 않는 한 입력 오디오 데이터를 프로세싱하지 않는다. 예를 들어, 절전 상태에 있는 동안, 음성 지원 장치는 마이크로폰을 통해 입력 오디오를 캡처하고, 입력 오디오에서 핫워드의 존재를 검출하도록 훈련된 핫워드 검출기를 사용한다. 입력 오디오에서 핫워드가 검출되면, 음성 지원 장치는 핫워드 및/또는 핫워드 다음에 오는 입력 오디오의 다른 용어를 처리(프로세싱)하기 위한 웨이크-업 프로세스를 시작한다.
핫워드 검출은 핫워드 검출기가 스트리밍 오디오를 지속적으로 청취하고 스트리밍 오디오에서 핫워드의 존재가 검출될 때 정확하고 즉시 트리거해야 하기 때문에 건초 더미에서 바늘을 검색하는 것과 유사하다. 즉, 핫워드 검출기는 핫워드의 존재가 검출되지 않는 한 스트리밍 오디오를 무시하는 작업을 수행한다. 신경망은 일반적으로 핫워드 검출기에서 연속적인 오디오 스트림에서 핫워드의 존재를 검출하는 복잡성을 해결하기 위해 사용된다. 핫워드 검출기는 일반적으로 세 가지 주요 컴포넌트, 신호 프로세싱 프런트엔드; 신경망 음향 인코더; HD(hand-designed) 디코더를 포함한다. 신호 프로세싱 프런트엔드는
사용자 장치의 마이크로폰에 의해 캡처된 원시 오디오 신호를 신경망 음향 인코더 컴포넌트에 의해 처리(프로세싱)하도록 포맷된 하나 이상의 오디오 특징으로 변환할 수 있다. 예를 들어, 신경망 음향 인코더 컴포넌트는 이러한 오디오 특징을 음소로 변환할 수 있고, HD(hand-designed) 디코더는 HC(hand-coded) 알고리즘을 사용하여 음소를 함께 연결하여 오디오 시퀀스에 핫워드가 포함되는지 여부의 확률을 제공한다. 일반적으로 이러한 세 가지 컴포넌트는 서로 독립적으로 훈련 및/또는 수동으로 설계되므로 모든 컴포넌트를 공동으로 훈련하는 것과 비교하여 훈련 중에 효율성이 더 복잡해지고 손실된다. 또한 독립적으로 훈련된 모델로 구성된 모델을 배포하면 추가 리소스 요구사항(예: 처리 속도 및 메모리 소비)이 소비된다. 서로 다른 핫워드를 검출하고 서로 다른 로컬에서 동일한 핫워드를 검출하기 위해 종종 별도의 모델이 필요하다. 예를 들어 남아프리카의 영어 사용자는 노스 다코타(North Dakota)에 있는 미국의 영어 사용자와 "Ok Google"이라는 문구를 다르게 발음할 수 있다.
본 명세서에서의 구현은 스트리밍 오디오에서 지정된 핫워드의 존재 확률을 결정하기 위해 인코딩 및 디코딩 컴포넌트를 하나의 기억된 신경망으로 훈련시키는 종단 간 핫워드 탐지(end-to-end hotword spotting) 시스템('키워드 스팟팅 시스템'이라고도 함)에 대한 것이다. 이 단일 기억된 신경망은 여러 핫워드를 검출하고 다른 언어 및/또는 다른 지역에서 사용되는 동일한 핫워드를 검출하도록 훈련될 수 있다. 구체적으로 기억된 신경망은 신경망이 과거에 기억하고자 하는 스트리밍 오디오의 양에 비례하여 고정된 메모리의 양을 갖는 신경망 토폴로지를 의미한다. 예를 들어, 일반적인 화자가 지정된 핫워드를 말하는 데 걸리는 시간에 해당하는 스트리밍 오디오 양을 기억하기에 충분한 메모리만 갖는 것이 바람직할 수 있다. 일부 구현에서, 기억된 신경망 토폴로지는 특이값 분해 필터(SVDF) 계층의 계층 토폴로지이며, 각 계층은 하나 이상의 SVDF 뉴런을 포함한다. 각 계층의 각 SVDF 뉴런은 각각의 메모리 용량과 모든 SVDF 계층의 메모리 용량을 포함하여 신경망이 핫워드를 특징짓는 오디오 특징을 캡처하는 데 필요한 스트리밍 오디오에서 고정된 길이의 시간만 기억하도록 총 고정 메모리를 추가적으로 구성한다. 각 뉴런은 또한 적절한 활성화 함수(예: ReL(rectified linear))를 포함할 수 있다. 또한, 각 SVDF 계층의 출력이 후속 SVDF 계층에 대한 입력이므로, 병목(bottleneck) 계층는 하나 이상의 인접한 SVDF 계층 사이에 배치되어 후속 SVDF 계층에 공급되는 입력의 수를 조정할 수 있다.
도 1을 참조하면, 일부 구현에서, 예시적인 시스템(100)은 각각의 사용자(10)와 연관되고 네트워크(104)를 통해 원격 시스템(110)과 통신하는 하나 이상의 사용자 장치(102)를 포함한다. 각각의 사용자 장치(102)는 이동 전화기, 컴퓨터, 웨어러블 장치, 스마트 기기, 스마트 스피커 등과 같은 컴퓨팅 장치에 대응할 수 있으며, 데이터 프로세싱 하드웨어(103) 및 메모리 하드웨어(105)를 갖추고 있다. 원격 시스템(110)은 단일 컴퓨터, 다중 컴퓨터 또는 확장 가능/탄력적 컴퓨팅 리소스(112)(예: 데이터 프로세싱 하드웨어) 및/또는 저장 리소스(114)(예: 메모리 하드웨어)를 갖는 분산 시스템(예: 클라우드 환경)일 수 있다. 사용자 장치(102)는 네트워크(104)를 통해 원격 시스템(110)으로부터 훈련된 기억된 신경망(300)을 수신하고, 스트리밍 오디오(118)에서 핫워드를 검출하기 위해 훈련된 기억된 신경망(300)을 실행한다. 훈련된 기억된(trained memorized) 신경망(300)은 스트리밍 오디오(118)에 대한 의미론적 분석 또는 음성 인식 처리를 수행하지 않고 스트리밍 오디오에서 핫워드의 존재를 검출하도록 구성된 사용자 장치(102)의 핫워드 검출기(106)(핫워더라고도 함)에 상주할 수 있다. 선택적으로, 훈련된 기억된 신경망(300)은 추가로 또는 대안적으로 사용자 장치(102) 및/또는 원격 시스템(110)의 자동 음성 인식기(ASR)(108)에 상주하여 핫워드 검출기(106)가 스트리밍 오디오(118)에서 핫워드의 존재를 정확하게 검출했는지 확인할 수 있다.
일부 구현에서, 데이터 프로세싱(처리) 하드웨어(112)는 주석이 달린 발화 풀(utterance pools)(130)로부터 획득된 훈련 샘플(400)을 사용하여 기억된 신경망(300)을 훈련시킨다. 주석이 달린 발화 풀(130)은 메모리 하드웨어(114) 및/또는 일부 다른 원격 메모리 위치(들)에 상주할 수 있다. 상기 예에서, 사용자(10)가 사용자 장치(102)에 의해 스트리밍 오디오(118)로 캡처된 핫워드(예를 들어, "Hey Google")를 포함하는 발화(120)를 말할 때, 사용자 장치(102)에서 실행되는 기억된 신경망(300)은 발화(120)에서 핫워드 및/또는 발화(120)에서 핫워드 다음에 오는 하나 이상의 다른 용어(예: 쿼리 또는 명령)를 처리하기 위해 사용자 장치(102)에서 웨이크-업 프로세스를 시작하도록 발화(120)에서 핫 워드의 존재를 검출하도록 구성된다. 추가 구현에서, 사용자 장치(102)는 추가 처리(프로세싱) 또는 검증(예를 들어, 잠재적으로 더 계산 집약적인 기억된 신경망(300)과 함께)을 위해 발화(120)를 원격 시스템(110)으로 전송한다.
도시된 예에서, 기억된 신경망(300)은 각각 특이값 분해 필터(SVDF) 계층(302)의 계층화된 토폴로지를 포함하는 인코더 부분(310) 및 디코더 부분(311)을 포함한다. SVDF 계층(302)은 모든 SVDF 계층(302)의 메모리 용량이 핫워드를 특징짓는 오디오 특징(410)(도 4a 및 4b)을 캡처하는 데 필요한 스트리밍 오디오(118)에서 고정된 길이의 시간만을 기억하도록 신경망(300)에 대한 총 고정 메모리를 추가적으로 구성하도록 각 SVDF 계층(302)에 메모리 용량을 제공함으로써 신경망(300)을 위한 메모리를 제공한다.
도 2에 도시한 바와 같이, 전형적인 핫워드 검출기는 메모리없이 신경망 음향 인코더(200)를 사용한다. 네트워크(200)는 메모리가 부족하기 때문에, 음향 인코더(200)의 각 뉴런(212)은 음성 발화(120)의 모든 프레임(210, 210a-d)의 모든 오디오 특징을 입력으로서 동시에 수용해야 한다. 각각의 프레임(210)은 임의의 수의 오디오 특징을 가질 수 있으며, 이들 각각은 뉴런(212)이 입력으로 받아들인다. 그러한 구성은 고정된 시간 길이가 증가하고 및/또는 오디오 특징의 수가 증가함에 따라 극적으로 증가하는 실질적인 크기의 신경망 음향 인코더(200)를 필요로 한다. 음향 인코더(200)의 출력은 예를 들어 검출된 핫워드의 음소 각각의 확률을 초래한다. 그 다음, 음향 인코더(200)는 핫워드의 존재를 나타내는 점수(스코어)(즉, 추정치)를 생성하기 위해 음향 인코더(200)의 출력을 처리하기 위해(예를 들어, 음소를 함께 스티칭하는) HC(hand-coded) 디코더에 의존해야 한다.
도 3a 및 3b에 도시된 바와 같이, 일부 구현에서, 특이값 분해 필터(SVDF) 신경망(300)(기억된 신경망이라고도 함)은 임의의 수의 뉴런/노드(312)를 가지며, 여기서 각각의 뉴런(312)은 한 번에 음성 발화(120)의 단일 프레임(210, 210a-d)만을 수용한다. 즉, 예를 들어 각 프레임(210)이 30ms의 오디오 데이터를 구성하는 경우, 각 프레임(210)은 대략 30ms(즉, 시간 1, 시간 2, 시간 3, 시간 4 등)마다 뉴런(312)에 입력된다. 도 3a는 2개의 스테이지 필터링 메커니즘을 포함하는 각각의 뉴런(312)을 도시하며, 2개의 스테이지 필터링 메커니즘은 입력의 특징 차원에 대해 필터링을 수행하는 제1 스테이지(320)(즉, 스테이지 1 특징 필터) 및 제1 스테이지(320)의 출력에 대한 시간 차원에 대해 필터링을 수행하는 제2 스테이지(340)(즉, 스테이지 2 시간 필터)를 포함한다. 따라서, 스테이지 1 특징 필터(320)는 현재 프레임(210)에 대해서만 특징 필터링을 수행한다. 그 후 처리 결과는 메모리 컴포넌트(메모리)(330)에 배치된다. 메모리 컴포넌트(330)의 크기는 노드 당 또는 계층 레벨 당 구성 가능하다. 스테이지 1 특징 필터(320)가 소정의 프레임(210)을 처리한 후(예를 들어, 프레임 내의 오디오 특징을 필터링함으로써), 필터링된 결과는 메모리 컴포넌트(330)의 다음 이용 가능한 메모리 위치(332, 332a-d)에 배치된다. 모든 메모리 위치(332)가 채워지면, 스테이지 1 특징 필터(320)는 메모리 컴포넌트(330)에 가장 오래된 필터링된 데이터를 저장하는 메모리 위치(332)를 오버라이트(overwrite)할 것이다. 설명을 위해,
도 3a는 크기 4(4개의 메모리 위치(332a-d)) 및 4개의 프레임(210a-d)의 메모리 컴포넌트(330)를 나타내지만, 핫워드 검출의 특성으로 인해, 시스템(100)은 일반적으로 각각의 뉴런(312)이 파이프라인과 유사한 프레임(210)을 따라 "슬라이드(slide)"하거나 처리하도록 스트리밍 오디오(118)를 연속적으로 모니터링할 것이다. 즉, 각 스테이지가 N개의 특징 필터(320) 및 N개의 시간 필터(340)를 포함하는 경우(각각 입력 특징 프레임(210)의 크기와 일치), 계층은 입력 특징 프레임(210)상의 N 개의 필터(320, 340) 각각을 특징 프레임의 크기의 스트라이드(stride)로 슬라이딩함으로써 특징 필터의 N x T 컨볼루션을 계산하는 것과 유사하다(T는 고정된 시간 동안 프레임(210)의 수와 같음). 예를 들어, 이 예는 스테이지 1 특징 필터가 프레임 4(F4)(210d)(시간 4 동안)와 관련된 필터링된 오디오 특징을 출력한 후 용량에서 메모리 컴포넌트(330)를 보여주기 때문에, 스테이지 1 특징 필터(320)는 메모리 위치(332a) 내의 프레임 1(F1)(210a)과 관련된 필터링된 오디오 특징을 오버라이트함으로써 프레임 5(F5)(시간 5 동안)과 관련된 필터링된 오디오 특징을 메모리(330)에 배치할 것이다. 이러한 방식으로, 스테이지 2 시간 필터(340)는 스테이지 1 특징 필터(320)로부터 출력된 이전 T-1(T는 다시 고정된 기간(시간) 동안의 프레임(210)의 수와 같음) 필터링된 오디오 특징에 필터링을 적용한다.
스테이지 2 시간 필터(340)는 그 다음 메모리(330)에 저장된 각각의 필터링된 오디오 특징을 필터링한다. 예를 들어, 도 3a는 스테이지 1 특징 필터(320)가 새로운 필터링된 오디오 특징을 메모리(330)에 저장할 때마다 4 개의 메모리 위치(332) 각각에서 오디오 특징을 필터링하는 스테이지 2 시간 필터(340)를 도시한다. 이러한 방식으로, 스테이지 2 시간 필터(340)는 항상 복수의 과거 프레임(210)을 필터링하고, 여기서 개수는 메모리(330)의 크기에 비례한다. 각 뉴런(312)은 단일 SVDF 계층(layer)(302)의 일부이고, 신경망(300)은 임의의 수의 계층(layer)(302)을 포함할 수 있다. 각 스테이지 2 시간 필터(340)의 출력은 다음 계층(302)의 뉴런(312)의 입력으로 전달된다. 계층(302)의 수 및 계층(302) 당 뉴런(312)의 수는 완전히 구성 가능하고, 이용 가능한 리소스 및 원하는 크기, 전력 및 정확도에 의존한다. 본 명세서는 SVDF 계층(302)의 수 또는 각 SVDF 계층(302) 내의 뉴런(312)의 수로 제한되지 않는다.
도 3b에 도시된 바와 같이, 신경망(300)의 각각의 SVDF 계층(302, 302a-n)(또는 단순히 '계층')은 이전 계층의 출력이 해당 계층(302)에 대한 입력으로 수용되도록 연결된다. 일부 예들에서, 최종 계층(302n)은 발화(120)가 핫워드를 포함 할 확률을 나타내는 확률 점수(350)를 출력한다.
SVDF 네트워크(300)에서, 계층 설계는 입력 프레임의 시퀀스(210)를 처리하는 DC(densely connected) 계층(302)이 각각의 노드(312)의 특이값 분해를 사용하여 근사화될 수 있다는 개념으로부터 도출된다. 근사치는 구성 가능하다. 예를 들어, 랭크(rank) R 근사치는 계층 필터에 대한 새로운 차원 R을 확장하는 것을 의미하며, 스테이지 1은 독립적으로 발생하고, 스테이지 2에서 모든 랭크의 출력이 비선형성을 통과하기 전에 합산된다. 다시 말하면, 정합 차원의 DC(densely connected) 계층의 노드(312)의 SVDF 분해는 SVDF 계층(302)을 초기화하는 데 사용될 수 있으며, 이는 원칙적인 초기화를 제공하고 계층의 일반화의 품질을 증가시킨다. 본질적으로 더 큰 DC 계층의 "파워(power)"는 잠재적으로(순위에 따라) 훨씬 더 작은 SVDF로 전송된다. 그러나, SVDF 계층(302)은 동일하거나 더 많은 연산으로 DC 계층 또는 심지어는 컨볼루션 계층을 능가(outperform)하기 위해 초기화가 필요하지 않다는 점에 유의한다.
따라서, 본 명세서의 구현은 각 SVDF 계층(302)의 각 뉴런(312)이 오디오 특징 필터링과 관련된 제1 스테이지(320) 및 시간과 관련하여 제1 스테이지(320)의 출력 필터링과 관련된 제2 스테이지(340)를 포함하는 상태 저장형 스택가능한 신경망(300)에 관한 것이다. 구체적으로, 제1 스테이지(320)는 한 번에 하나의 오디오 특징 입력 프레임(210)상의 하나 이상의 오디오 특징에 대해 필터링을 수행하고, 필터링된 오디오 특징을 각각의 메모리 컴포넌트(330)로 출력하도록 구성된다. 여기서, 스테이지 1 특징 필터(320)는 처리를 위한 입력으로서 시간 프레임(210)과 관련된 하나 이상의 오디오 특징을 수신하고, 처리된(프로세싱된) 오디오 특징을 SVDF 계층(302)의 각각의 메모리 컴포넌트(330)로 출력한다. 그 후, 제2 스테이지(340)는 제1 스테이지(320)로부터 출력되고 각각의 메모리 컴포넌트(330)에 상주하는 필터링된 모든 오디오 특징에 대해 필터링을 수행하도록 구성된다. 예를 들어, 각각의 메모리 컴포넌트(330)가 8(8)과 같을 때, 제2 스테이지(340)는 8개의 입력 프레임(210)의 시퀀스 내에서 오디오 특징의 개별 필터링 동안 제1 스테이지(320)로부터 출력된 메모리 컴포넌트(330)에 있는 마지막 8 개의 필터링된 오디오 특징까지 풀업(pull up)할 것이다. 제1 스테이지(320)가 해당 메모리 컴포넌트(330)를 용량으로 채울 때, 가장 오래된 필터링된 오디오 특징을 포함하는 메모리 위치(332)가 오버라이트(즉, 선입 선출)된다. 따라서, SVDF 뉴런(312) 또는 계층(302)에서의 메모리 컴포넌트(330)의 용량에 따라, 제2 스테이지(340)는 해당 SVDF 계층(302)의 제1 스테이지(320)에 의해 처리된 복수의 과거 출력을 기억할 수 있다. 더욱이, SVDF 계층(302)의 메모리 컴포넌트(330)는 가산적이기 때문에, 각각의 SVDF 뉴런(312) 및 계층(302)의 메모리 컴포넌트(330)는 또한 각각의 선행하는 SVDF 뉴런(312) 및 계층(302)의 메모리를 포함하고, 따라서 기억된 신경망(300)의 전체 수용 필드를 확장한다. 예를 들어, 4개의 SVDF 계층(302)을 갖는 신경망(300) 토폴로지에서, 각각 8과 동일한 메모리 컴포넌트(330)를 갖는 단일 뉴런(312)을 가지며, 마지막 SVDF 계층(302)은 신경망(300)에 의해 개별적으로 필터링된 마지막 32 개의 오디오 특징 입력 프레임(210)의 시퀀스를 포함할 것이다. 그러나, 메모리 양은 계층(302) 당 또는 심지어 노드(312) 당 구성 가능하다는 점에 유의한다. 예를 들어, 제1 계층(302a)은 32 개의 위치(332)에 할당될 수 있는 반면, 마지막 ㄱ계(302)은 8 개의 위치(332)로 구성될 수 있다. 그 결과, 적층된(stacked) SVDF 계층(302)은 신경망(300)이 한 번에 하나의 입력 시간 프레임(210)(예를 들어, 30 밀리 초의 오디오 데이터)에 대한 오디오 특징만을 처리하게 하고, 스트리밍 오디오(118)에서 지정된 핫워드를 캡처하는 데 필요한 고정된 길이의 시간을 캡처하는 복수의 필터링된 오디오 특징을 과거(past)에 통합할 수 있게 한다. 대조적으로, (도 2에 도시된 바와 같이) 메모리가 없는 신경망(200)은 핫워드의 존재를 포함하는 스트리밍 오디오의 확률을 결정하기 위해 한 번에 고정된 길이의 시간(예를 들어, 2 초의 오디오 데이터)을 포함하는 모든 오디오 특징 프레임을 처리하는 뉴런(212)을 요구할 것이며, 네트워크의 전체 크기가 크게 증가한다. 또한 장단기 기억(LSTM: long short-term memory)을 사용하는 RNN(Recurrent Neural Network)은 메모리를 제공하지만, RNN-LSTM은 뉴런이 각 처리 인스턴스 후 상태를 지속적으로 업데이트하여 사실상 무한한 메모리를 갖도록 하며, 따라서 (고정 크기 메모리가 용량에 도달하면) 각각의 새로운 출력이 이전 출력 위에 다시 쓰여지는 유한한 과거의 처리된 출력 수를 기억하는 기능을 방지한다. 즉, SVDF 네트워크는 출력을 상태(메모리)로 되풀이하거나 각 반복마다 모든 상태를 다시 쓰지 않는 대신에 메모리는 각 추론 실행의 상태를 후속 실행과 격리된 상태로 유지하는 대신 계층에 대해 구성된 메모리 크기를 기반으로 새로운 엔트리를 푸시하고 팝핑(popping)한다.
도 4a 및 4b를 참조하면, 일부 구현에서, 기억된 신경망(300)은 입력 프레임(210, 210a-n) 및 입력 프레임(210)에 할당된 라벨(420)의 시퀀스를 각각 포함하는 복수의 훈련 입력 오디오 시퀀스(400)(즉, 훈련 샘플)에 대해 훈련된다. 각각의 입력 프레임(210)은 핫워드의 음성 컴포넌트(430)를 특성화하는 하나 이상의 각각의 오디오 특징(410)을 포함하고, 각 라벨(420)은 각각의 입력 프레임(210)의 하나 이상의 오디오 특징(410)이 핫워드의 음성 컴포넌트(430)를 포함할 확률을 나타낸다. 일부 예에서, 각각의 입력 프레임(210)에 대한 오디오 특징(410)은 전처리 스테이지(404) 동안 오디오 스트림(118)의 원시 오디오 신호(402)로부터 변환된다. 오디오 특징(410)은 하나 이상의 로그-필터뱅크를 포함할 수 있다. 따라서, 전처리 스테이지는 오디오 스트림(118)(또는 음성 발화(120))을 입력 프레임의 시퀀스(210)(예를 들어, 각각 30ms)로 분할하고, 각 프레임(210)에 대해 별도의 로그-필터뱅크를 생성할 수 있다. 예를 들어, 각 프레임(210)은 40 개의 로그 필터뱅크로 표현될 수 있다. 더욱이, 각각의 연속적인 SVDF 계층(302)은 입력으로서 직전 SVDF 계층(302)으로부터 출력되는 시간에 대해 필터링된 오디오 특징(410)을 수신한다.
도시된 예에서, 각각의 훈련 입력 오디오 시퀀스(400)는 고정된 시간 길이(예를 들어, 2 초) 내에 발생하는 지정된 핫워드를 포함하는 주석이 달린 발화를 포함하는 훈련 샘플과 관련된다. 기억된 신경망(300)은 또한 지정된 핫워드를 포함하지 않거나 지정된 핫워드를 포함하지만 고정된 시간 길이보다 긴 시간에 걸쳐있는 주석이 달린(annotated) 발화(400)에 대해 선택적으로 훈련될 수 있으며, 따라서 고정된 메모리가 고정된 시간 길이를 벗어난 데이터를 잊어 버리기 때문에 잘못 검출되지 않을 것이다. 일부 예에서, 고정된 시간 길이는 전형적인 화자가 음성 쿼리 및/또는 음성 명령을 처리하기 위해 사용자 장치(102)를 호출하기 위해 지정된 핫워드를 말하는 데 걸리는 시간에 대응한다. 예를 들어, 지정된 핫워드에 "Hey Google" 또는 "Ok Google"이라는 문구가 포함된 경우, 느린 화자라도 일반적으로 지정된 문구를 말하는 데 2초 이상 걸리지 않기 때문에 2 초와 동일한 고정된 시간 길이로 충분할 수 있다. 따라서, 고정된 시간 길이 동안 스트리밍 오디오(118) 내에서 지정된 핫워드의 발생을 검출하는 것이 중요하므로, 신경망(300)은 고정된 시간(예를 들어, 2 초)에 걸쳐 오디오의 양에 비례하는 고정 메모리의 양을 포함한다. 따라서, 신경망(300)의 고정(고정된) 메모리는 신경망의 뉴런(312)이 한 번에 스트리밍 오디오(118)의 하나의 입력 프레임(210)(예를 들어, 30ms 시간 윈도우)으로부터 오디오 특징(410)(예를 들어, 로그-필터뱅크)을 필터링하도록 허용하는 한편, 고정된 시간 길이에 걸친 가장 최근의 필터링된 오디오 특징(410)을 저장하고 현재 필터링 반복으로부터 고정된 시간 길이를 벗어난 임의의 필터링된 오디오 특징(410)을 제거하거나 삭제한다. 따라서, 신경망(300)이 예를 들어 32의 메모리 깊이를 갖는 경우, 신경망(300)에 의해 처리된 처음 32 개의 프레임은 메모리 컴포넌트(330)를 용량까지 채울 것이며, 처음 32 이후의 각각의 새로운 출력에 대해, 신경망(300)은 메모리 컴포넌트(330)의 해당 메모리 위치(332)로부터 가장 오래된 처리된(프로세싱된) 오디오 특징을 제거할 것이다.
도 4a에 도시된 바와 같이, 종단 간 훈련(end-to-end training)을 위해, 훈련 입력 오디오 시퀀스(400a)는 각 입력 프레임(210)에 적용될 수 있는 라벨(420)을 포함한다. 일부 예들에서, 훈련 샘플(400a)이 핫워드를 포함할 때, 목표 점수(예를 들어, '1')와 관련된 타겟(목표) 라벨(420)이 핫워드의 끝에서 또는 그 근처에서 음성 컴포넌트(430)를 특징짓는 오디오 특징(410)을 포함하는 하나 이상의 입력 프레임(210)에 적용된다. 예를 들어, 핫워드 "OK Google"의 음성 컴포넌트(430)가 "ou", 'k', "eI", "<silence>", 'g', 'u', 'g', '@', 'l'로 분리되면, 숫자 '1'의 타겟 라벨은 핫워드의 음성 컴포넌트(430)의 필수 시퀀스의 일부인 문자 'l'(즉, 핫워드의 마지막 컴포넌트(430))에 대응하는 모든 입력 프레임(210)에 적용된다. 이 시나리오에서, 모든 다른 입력 프레임(210)(마지막 음성 컴포넌트(430)과 관련되지 않음)에는 다른 라벨(예를 들어, '0')이 할당된다. 따라서, 각각의 입력 프레임(210)은 해당 입력 특징-라벨 쌍(410, 420)을 포함한다. 입력 특징(410)은 일반적으로 입력 프레임(210)을 통해 입력 오디오로부터 계산된, 예를 들어 멜 필터뱅크(mel filterbanks) 또는 로그-필터뱅크에 대응하는 1차원 텐서이다. 라벨(420)은 주석이 달린 발화(400a)로부터 생성되며, 여기서 각 입력 특징 텐서(410)는 강제-정렬 스텝(force-alignment step)을 통해 음성 클래스가 할당된다(즉, 핫워드에 속하는 마지막 클래스에 해당하는 쌍에 '1' 라벨이 부여되고 나머지 모든 클래스에는 '0'이 부여된다). 따라서, 훈련 입력 오디오 시퀀스(400a)는 입력 프레임의 시퀀스에 할당된 이진 라벨을 포함한다. 주석이 달린 발화(400a) 또는 훈련 입력 오디오 시퀀스(400a)는 도 1의 주석이 달린 발화 풀(130)로부터 획득된 훈련 샘플(400)에 대응한다.
다른 구현에서, 도 4b는 핫워드의 음성 컴포넌트(430)를 특성화(매칭)하는 오디오 특징(410)의 수가 진행됨에 따라 입력 프레임(210)의 시퀀스를 따라 증가하는 점수와 관련된 라벨(420)을 포함하는 훈련 입력 오디오 시퀀스(400b)를 포함한다. 예를 들어, 핫워드가 "Ok Google"을 포함하는 경우, 제1(첫 번째) 음성 컴포넌트 'o' 및 'k'를 특성화하는 각각의 오디오 특징(410)을 포함하는 입력 프레임(210)은 '1'의 레벨(420)을 할당하는 반면, 'l'의 최종 음성 컴포넌트를 특성화하는 각각의 오디오 특징(410)을 포함하는 입력 프레임(210)은 '5'의 라벨(420)을 할당한다. 중간 음성 컴포넌트(430)를 특징짓는(특성화) 각각의 오디오 특징(410)을 포함하는 입력 프레임(210)은 '2', '3' 및 '4'의 라벨(420)을 할당하였다.
추가 구현에서, 포지티브 라벨(420)의 수가 증가한다. 예를 들어, 핫워드의 최종 음성 컴포넌트(430)를 특성화하는 오디오 특징(410)을 포함하는 제1(첫 번째) 프레임(210)으로부터 시작하여 고정된 양의 '1'라벨(420)이 생성된다. 이 구현에서, 구성된 포지티브 라벨(420)의 수(예를 들어, '1')가 큰 경우, 비-포지티브(non-positive) 라벨(420)(예를 들어, '0')이 적용되었을 프레임(210)에 포지티브 라벨(420)이 적용될 수 있다. 다른 예에서, 포지티브 라벨(420)의 시작 위치가 수정된다. 예를 들어, 라벨(420)은 최종 키워드 음성 컴포넌트(430)를 포함하는 프레임(210)의 세그먼트의 시작, 중간 지점(mid-point) 또는 끝에서 시작하도록 시프트될 수 있다. 여전히 다른 예에서, 가중치 손실는 입력 시퀀스와 관련된다. 예를 들어, 훈련 절차에서 작은 정렬 불량(small mis-alignment)으로 인한 손실(예: 오류 기울기(error gradient))을 줄일 수 있도록 가중치 손실이 입력 시퀀스에 추가된다. 특히 프레임-기반 손실 함수를 사용하면 분류 오류나 정렬 오류로 인해 손실이 발생할 수 있다. 손실을 줄이기 위해, 신경망(300)은 정확한 라벨(420)과 라벨(420)의 정확한 위치(타이밍)를 모두 예측한다. 네트워크(300)가 어느 시점에서 키워드를 검출하더라도 소정의 타겟 라벨(420)과 완벽하게 일치하지 않으면 결과는 오류로 간주될 수 있다. 따라서, 손실의 가중치는 포스-정렬(force-alignment) 스테이지 동안 오정렬(정렬 오류) 가능성이 높은 프레임(210)에 특히 유용하다.
도 4a 및 도 4b의 훈련 입력 오디오 시퀀스(400a, 400b) 중 어느 하나를 사용하여 훈련한 결과, 신경망(300)은 핫워드(들)가 스트리밍 오디오(118)에 존재하는지 여부를 나타내는 이진 결정 라벨(420)을 출력하도록 (전형적으로 크로스-엔트로피(CE: cross-entropy) 손실을 사용함) 최적화된다. 일부 예에서, 네트워크(300)는 2개의 스테이지로 훈련된다. 도 5a에서, 개략도(500a)는 음향 사후 확률을 생성하도록 개별적으로 훈련된 예를 들어 8 개의 계층을 포함하는 신경망(300)의 인코더 부분(또는 단순히 '인코더')(310a)을 도시한다. SVDF 계층 외에도, 네트워크(300)는 예를 들어 병목, 소프트맥스(SOFTMAX) 및/또는 다른 계층을 포함할 수 있다. 인코더(310a)를 훈련시키기 위해, 라벨 생성은 핫워드의 모든 음성 컴포넌트에 고유한 클래스를 할당한다(핫워드가 아닌 모든 것에 대한 묵음(silence) 및 "엡실론(epsilon)" 타겟 추가). 그 다음, 신경망(300)의 디코더 부분(또는 간단히 '디코더')(311a)은 제1 부분(즉, 계층 및 연결)이 인코더(310a)의 것과 일치하는 토폴로지를 생성함으로써 훈련되고, 신경망(300)의 인코더(310a)로부터 선택된 체크포인트를 사용하여 초기화된다. 훈련(트레이닝)은 인코더(310a)의 파라미터를 "고정(freeze)"(즉, 업데이트하지 않음)하도록 지정되어, 토폴로지의 부분으로 디코더(311a)를 튜닝한다. 이는 두 개의 훈련 파이프라인(staggered training pipelines)의 산물임에도 불구하고 자연스럽게 단일 스팟터(spotter) 신경망을 생성한다. 이 방법을 사용한 훈련은 훈련 세트의 일부에 과적합(overfitting)을 나타내는 경향이있는 모델에서 특히 유용하다.
대안적으로, 신경망(300)은 처음부터 끝까지(end-to-end) 훈련된다. 예를 들어, 신경망(300)은 (이전에 설명된 인코더(310a) 훈련과 유사하게) 특징을 직접 수용하지만, 대신 디코더(311a)를 훈련시키는데 사용하기 위해 이진(바이너리) 타겟 라벨(420)(즉, '0' 또는 '1') 출력을 사용한다. 이러한 종단 간 신경망(300)은 임의의 토폴로지를 사용할 수 있다. 예를 들어, 도 5b에 도시된 바와 같이, 개략도(500b)는 인코더(310b)가 중간 소프트맥스(SOFTMAX) 계층을 포함하지 않는다는 점을 제외하고는 도 5a의 토폴로지와 유사한 인코더(310b) 및 디코더(311b)의 신경망(300) 토폴로지를 도시한다. 도 5a의 토폴로지와 마찬가지로, 도 5a의 토폴로지는 디코더(311b) 부분이 조정되는 방식을 튜닝하기 위해 적응률(adaptation rate)과 함께 사전 훈련된 인코더 체크포인트를 사용할 수 있다(예를 들어, 적응률이 0으로 설정되면 도 5a 토폴로지와 동일). 토폴로지의 파라미터 전체가 조정되는 이 종단 간 파이프라인은 특히 과적합되는 경향이 없는 더 작은 크기의 모델에서 개별적으로 훈련된 도 5a의 인코더(310a) 및 디코더(311a)를 능가하는 경향이 있다.
따라서, 신경망(300)은 수동 튜닝된 디코더의 사용을 회피한다. 디코더를 수동으로 튜닝하면 핫워드를 변경하거나 추가하는 어려움이 증가한다. 단일 기억된 신경망(300)은 2 개 이상의 로케일(locales)에 걸쳐 동일한 핫워드뿐만 아니라 여러 개의 상이한 핫워드를 검출하도록 훈련될 수 있다. 또한 검출 품질은 잠재적으로 수백만 개의 예제로 훈련된 핫워드 검출을 위해 특별히 최적화된 네트워크에 비해 감소한다. 또한 일반적인 수동 튜닝된 디코더는 인코딩과 디코딩을 모두 수행하는 단일 신경망보다 더 복잡하다. 기존 시스템은 과도하게 파라미터화되는 경향이있어 유사한 종단 간 모델보다 훨씬 더 많은 메모리와 계산을 소비하며 신경망 가속 하드웨어를 많이 활용할 수 없다. 또한 수동 튜닝된 디코더는 악센트가 있는 발화로 인해 여러 로케일 및/또는 언어에서 작동할 수 있는 검출기를 생성하는 것이 매우 어렵다.
기억된 신경망(300)은 동일한 크기의 심플 완전 연결(simple fully-connected) 계층보다 성능이 우수하지만, 사전 훈련된 완전 연결 계층으로부터 선택적으로 파라미터를 초기화하는 이점도 있다. 네트워크(300)는 과거로부터 얼마나 기억해야하는지에 대한 세밀한 제어(fine grained control)를 허용한다. 그 결과 이로 인해 이론적으로 무한한 과거에 주의를 기울임으로써(예: 스트리밍 오디오 계속 청취하는 것) 이득이 되지 않는(실제로 해를 입는) 특정 태스크에 대해 RNN-LSTM을 능가한다. 그러나, 네트워크(300)는 RNN-LSTM과 함께 작동할 수 있으며, 일반적으로 하위 계층에 대해서는 SVDF를 활용하고 과거의 하위 레벨 특징(noisy low-level feature)을 필터링하고 상위 계층에 대해서는 LSTM을 사용한다. 상대적으로 작은 여러 필터가 SVDF를 포함한다는 점을 감안할 때 파라미터 수와 계산이 세밀하게 제어된다. 이는 품질과 크기/계산 사이의 트레이드오프(tradeoff)를 선택할 때 유용하다. 더욱이, 이러한 품질로 인해, 네트워크(300)는 더 큰 단위(granularity)로 작동하는 심플 컨볼루션 신경망(CNN)과 같은 다른 토폴로지를 능가하는 매우 작은 네트워크를 생성할 수 있다.
도 6은 스트리밍 오디오(118)에서 핫워드를 검출하는 방법(600)에 대한 동작들의 예시적인 배열의 흐름도이다. 흐름도는 사용자 장치(102)의 데이터 프로세싱 하드웨어(103)에서 사용자 장치(102)에 의해 캡처된 스트리밍 오디오(118)를 특성화하는 각각의 오디오 특징(410)을 포함하는 입력 프레임의 시퀀스(210)를 수신함으로써 동작(602)에서 시작한다. 각 입력 프레임(210)의 오디오 특징(410)은 로그-필터뱅크를 포함할 수 있다. 예를 들어, 각 입력 프레임(210)은 40 개의 로그 필터뱅크를 포함할 수 있다. 동작(604)에서, 방법(600)은 데이터 프로세싱 하드웨어(103)에 의해, 순차적으로 적층된(stacked) SVDF 계층(302)을 포함하는 기억된 신경망(300)을 사용하여 스트리밍 오디오(118)에서 핫워드의 존재를 나타내는 확률 점수(350)를 생성하는 것을 포함하며, 여기서 각각의 SVDF 계층(302)은 적어도 하나의 뉴런(312)을 포함하고, 각각의 뉴런(312)은 각각의 메모리 컴포넌트(330)를 포함하고, 각각의 메모리 컴포넌트(330)는 해당 뉴런(312)의 각각의 메모리 용량과 관련된다. 각각의 뉴런(312)은 또한 제1 스테이지(320) 및 제2 스테이지(340)를 포함한다. 제1 스테이지(320)는 각각의 입력 프레임(210)의 오디오 특징(410)에 대해 개별적으로 필터링을 수행하고, 필터링된 오디오 특징(410)을 각각의 메모리 컴포넌트(330)에 출력하도록 구성된다. 제2 스테이지(340)는 각각의 메모리 컴포넌트(330)에 상주하는 필터링된 모든 오디오 특징(410)에 대해 필터링을 수행하도록 구성된다. 신경망(300)은 인접한 SVDF 계층(302) 사이에 배치된 적어도 하나의 추가 처리(프로세싱) 계층을 포함할 수 있다. 일부 예에서, 신경망(300)은 인접한 SVDF 계층(302) 사이에 배치된 적어도 하나의 병목 계층을 포함한다. 병목 계층은 계층 사이의 파라미터 카운트를 상당히 감소시키기 위해 사용된다.
일부 예에서, 각각의 SVDF 계층(302)으로부터의 뉴런(312)에 대한 각각의 메모리 컴포넌트(330)와 관련된 메모리 용량의 합은 전형적인 화자(typical speaker)가 핫워드를 말하는 데 걸리는 시간(시간 길이)에 비례하는 고정 메모리 용량을 신경망(300)에 제공한다. 각각의 메모리 컴포넌트(330) 중 적어도 하나와 관련된 각각의 메모리 용량은 나머지 메모리 컴포넌트(330)와 관련된 각각의 메모리 용량과 상이할 수 있다. 대안적으로, 모든 SVDF 계층(302)의 뉴런(312)의 각각의 메모리 컴포넌트(330)와 관련된 각각의 메모리 용량은 동일하다.
동작(606)에서, 방법(600)은 데이터 프로세싱 하드웨어(103)에 의해, 확률 점수(350)가 핫워드 검출 임계치(임계값)를 만족하는지 여부를 결정하는 것을 포함한다. 확률 점수(350)가 핫워드 검출 임계값을 만족하면, 방법(600)은 동작(608)에서, 데이터 프로세싱 하드웨어(103)에 의해, 핫워드 및/또는 오디오 스트림(118)의 핫워드 다음에 오는 하나 이상의 다른 용어를 처리하기 위한 사용자 장치(102)상의 웨이크-업 프로세스를 시작하는 것을 포함한다.
일부 구현에서, 컴퓨팅 리소스(자원)(112) 및 메모리 리소스(113)를 갖는 원격 시스템(110)은 복수의 훈련 입력 시퀀스(400)에 대해 신경망(300)을 훈련시키도록 구성되고, 각각의 훈련 입력 오디오 시퀀스(400)는 핫워드의 음성 컴포넌트(430)를 특성화하는 하나 이상의 각각의 오디오 특징(410)을 포함하는 입력 프레임의 시퀀스(210)를 포함한다. 각각의 훈련 입력 오디오 시퀀스(400)는 또한 입력 프레임(210)에 할당된 라벨(420)을 포함하고, 각각의 라벨(420)은 각각의 입력 프레임(210)의 오디오 특징(410)이 핫워드의 음성 컴포넌트(430)를 포함할 확률을 나타낸다. 추가 예들에서, 신경망(300)을 훈련시키는 것은 각각의 훈련 입력 오디오 시퀀스(400)에 대해, 핫워드의 음성 컴포넌트(430)를 포함하는 입력 프레임(210)의 부분에 제1 라벨(420)을 할당함으로써 인코더 부분(310b)을 훈련시키는 것을 포함한다. 상기 훈련시키는 것은 또한 핫워드의 음성 컴포넌트(430)를 포함하는 입력 프레임(210)의 나머지 부분에 제2 라벨(420)을 할당하는 것과, 해당 훈련 입력 오디오 시퀀스(400)가 핫워드를 포함하거나 또는 핫워드를 포함하지 않음을 나타내는 라벨(420)을 적용함으로써 디코더 부분(311b)을 훈련시키는 것을 포함한다. 입력 프레임(210)의 부분에 제1 라벨(420)을 할당하는 것은, 핫워드의 마지막 음성 컴포넌트(430)를 특성화하는 하나 이상의 각각의 오디오 특징(410)을 포함하는 적어도 하나의 입력 프레임(210)에 제1 라벨(420)을 할당하는 것과, 핫워드의 나머지 음성 컴포넌트를 특성화하는 하나 이상의 각각의 오디오 특징(410)을 각각 포함하는 나머지 입력 프레임(210)에 제2 라벨(420)을 할당하는 것을 포함할 수 있다.
일부 구현에서, 방법(600)은 훈련의 제1 스테이지(320) 동안, 해당 훈련 입력 오디오 시퀀스(400)에 대한 입력 프레임(210)에 라벨(420)을 할당함으로써 인코더 부분(310a)을 사전 훈련시킴으로써 신경망(300)을 훈련시키는 것을 포함한다. 훈련의 제2 스테이지(340) 동안, 방법(600)은 훈련의 제1 스테이지로부터 할당된 라벨(420)로 인코더 부분(310a)을 초기화하는 것과, 핫워드를 검출하거나 핫워드를 검출하지 않기 위해 인코더 부분(310)으로부터의 출력으로 디코더 부분(311a)을 훈련시키는 것을 포함한다.
소프트웨어 애플리케이션(즉, 소프트웨어 리소스)은 컴퓨팅 장치가 태스크를 수행하게 하는 컴퓨터 소프트웨어를 의미할 수 있다. 일부 예들에서, 소프트웨어 애플리케이션은 "애플리케이션", "앱" 또는 "프로그램"으로 지칭될 수 있다. 예제 애플리케이션에는 시스템 진단 애플리케이션, 시스템 관리 애플리케이션, 시스템 유지 관리 애플리케이션, 워드 프로세싱 애플리케이션, 스프레드시트(spreadsheet) 애플리케이션, 메시징 애플리케이션, 미디어 스트리밍 애플리케이션, 소셜 네트워킹 애플리케이션 및 게임 애플리케이션이 포함되지만 이에 국한되지는 않는다.
비-일시적 메모리는 컴퓨팅 장치에 의해 사용하기 위해 임시 또는 영구적으로 프로그램(예를 들어, 명령어 시퀀스) 또는 데이터(예를 들어, 프로그램 상태 정보)를 저장하는 데 사용되는 물리적 장치일 수 있다. 비-일시적 메모리는 휘발성 및/또는 비-휘발성 어드레싱 반도체 메모리일 수 있다. 예시적인 비-휘발성 메모리는 플래시 메모리 및 ROM(read-only memory)/PROM(programmable read-only memory)/EPROM(erasable programmable read-only memory)/EEPROM(electronically erasable programmable read-only memory)(예: 일반적으로 부팅 프로그램과 같은 펌웨어에 사용됨)을 포함하지만, 이에 국한되지는 않는다. 예시적인 휘발성 메모리는 RAM(Random Access Memory), DRAM(Dynamic Random Access Memory), SRAM (Static Random Access Memory), PCM(Phase Change Memory), 디스크 또는 테이프 등을 포함하지만, 이에 국한되지는 않는다.
도 7은 본 명세서에 설명된 시스템 및 방법을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 장치(700)의 개략도이다. 컴퓨팅 장치(700)는 랩톱, 데스크탑, 워크스테이션, 개인용 디지털 보조 장치, 서버, 블레이드 서버, 메인프레임 및 기타 적절한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터를 나타내도록 의도된다. 여기에 표시된 컴포넌트들, 이들의 연결 및 관계 및 기능은 예시 일 뿐이며 본 명세서에서 설명 및/또는 청구된 발명의 구현을 제한하려는 것이 아니다.
컴퓨팅 장치(700)는 프로세서(710), 메모리(720), 저장 장치(730), 메모리(720) 및 고속 확장 포트(750)에 연결되는 고속 인터페이스/제어기(컨트롤러)(740) 및 저속 버스(770) 및 저장 장치(730)에 연결되는 저속 인터페이스/제어기(760)를 포함한다. 각각의 컴포넌트(710, 720, 730, 740, 750, 760)는 다양한 버스를 사용하여 상호 연결되고, 공통 마더보드에 또는 적절한 다른 방식으로 장착 될 수 있다. 프로세서(710)는 고속 인터페이스(740)에 연결된 디스플레이(770)와 같은 외부 입력/출력 장치에 그래픽 사용자 인터페이스(GUI)에 대한 그래픽 정보를 표시하기 위해 메모리(720) 또는 저장 장치(730)에 저장된 명령어를 포함하는, 컴퓨팅 장치(700) 내에서 실행하기 위한 명령어를 처리(프로세싱)할 수 있다. 다른 구현에서, 다중 프로세서 및/또는 다중 버스가 다중 메모리 및 메모리 유형과 함께 적절하게 사용될 수 있다. 또한, 복수의 컴퓨팅 장치(700)는 필요한 동작의 일부를 제공하는 각 장치(예를 들어, 서버 뱅크, 블레이드 서버 그룹 또는 다중 프로세서 시스템)와 연결될 수 있다.
메모리(720)는 컴퓨팅 장치(370a) 내에 비-일시적으로 정보를 저장한다. 메모리(720)는 컴퓨터 판독 가능 매체, 휘발성 메모리 유닛(들) 또는 비-휘발성 메모리 유닛(들)일 수 있다. 비-일시적 메모리(720)는 컴퓨팅 장치(700)에 의해 사용하기 위해 일시적 또는 영구적으로 프로그램(예를 들어, 명령어 시퀀스) 또는 데이터(예를 들어, 프로그램 상태 정보)를 저장하는 데 사용되는 물리적 장치일 수 있다. 예시적인 비-휘발성 메모리는
플래시 메모리 및 ROM(read-only memory)/PROM(programmable read-only memory)/EPROM(erasable programmable read-only memory)/EEPROM(electronically erasable programmable read-only memory)(예: 일반적으로 부팅 프로그램과 같은 펌웨어에 사용됨) 등을 포함하지만, 이에 국한되지 않는다. 예시적인 휘발성 메모리는 RAM(Random Access Memory), DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), PCM(Phase Change Memory) 및 디스크 또는 테이프가 포함되지만 이에 국한되지는 않는다.
저장 장치(730)는 컴퓨팅 장치(700)에 대용량 저장 장치를 제공할 수 있다. 일부 구현에서, 저장 장치(730)는 컴퓨터 판독 가능 매체이다. 다양한 다른 구현에서, 저장 장치(730)는 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치 또는 테이프 장치, 플래시 메모리 또는 기타 유사한 솔리드 스테이트 메모리 장치 또는 저장(스토리지) 영역 네트워크 또는 기타 구성의 장치를 포함하는 장치 어레이일 수 있다. 추가 구현에서, 컴퓨터 프로그램 제품은 정보 매체에 유형적으로 구현된다. 컴퓨터 프로그램 제품에는 실행시 위에서 설명한 것과 같은 하나 이상의 방법을 수행하는 명령어가 포함되어 있다. 정보 매체는 메모리(720), 저장 장치(720) 또는 프로세서(710)상의 메모리와 같은 컴퓨터 또는 기계 판독 가능 매체이다.
고속 제어기(740)는 컴퓨팅 장치(700)에 대한 대역폭 집약적인(bandwidth-intensive) 동작을 관리하는 반면, 저속 제어기(760)는 낮은 대역폭 집약적인 동작을 관리한다. 이러한 업무 할당은 예시 일뿐이다. 일부 구현에서, 고속 제어기(740)는 메모리(720), 디스플레이(370)(예를 들어, 그래픽 프로세서 또는 가속기를 통해) 및 다양한 확장 카드(미도시)를 수용할 수 있는 고속 확장 포트(750)에 결합된다. 일부 구현에서, 저속 제어기(760)는 저장 장치(730) 및 저속 확장 포트(790)에 결합된다. 다양한 통신 포트(예: USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트(790)는 예를 들어 네트워크 어댑터를 통해, 키보드, 포인팅 장치, 스캐너 또는 스위치 또는 라우터와 같은 네트워킹 장치와 같은 하나 이상의 입력/출력 장치에 연결될 수 있다.
컴퓨팅 장치(700)는 도면에 도시된 바와 같이 복수의 상이한 형태로 구현될 수 있다. 예를 들어, 표준 서버(700a)로서 또는 그러한 서버(700a)의 그룹에서 랩톱 컴퓨터(700b)로서 또는 랙 서버 시스템(700c)의 일부로서 여러번 구현될 수 있다.
여기에 설명된 시스템 및 기술의 다양한 구현은 디지털 전자 및/또는 광학 회로, 집적 회로, 특별히 설계된 ASIC(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 실현 될 수 있다. 이러한 다양한 구현은 적어도 하나의 프로그램 가능한 프로세서를 포함하는 프로그램 가능한 시스템에서 실행 가능 및/또는 해석 가능한 하나 이상의 컴퓨터 프로그램에서의 구현을 포함할 수 있으며, 이는 저장 시스템, 적어도 하나의 입력 장치 및 적어도 하나의 출력 장치로부터 데이터 및 명령어를 수신하고 데이터 및 명령어를 전송하도록 결합된 특수 또는 범용일 수 있다.
이러한 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드라고도 함)은 프로그래밍 가능한 프로세서에 대한 기계 명령어를 포함하며, 하이-레벨 절차 및/또는 객체-지향적 프로그래밍 언어 및/또는 어셈블리/기계 언어로 구현될 수 있다. 여기에서 사용된 용어 "기계 판독 가능 매체" 및 "컴퓨터 판독 가능 매체"는 기계 판독 가능 신호로서 기계 명령어를 수신하는 기계 판독 가능 매체를 포함하는, 컴퓨터 프로그램 제품, 비-일시적 컴퓨터 판독 가능 매체, 프로그래밍 가능 프로세서에 기계 명령어 및/또는 데이터를 제공하는 데 사용되는 장치 및/또는 디바이스(예: 자기 디스크, 광학 디스크, 메모리, PLD(Programmable Logic Devices))를 나타낸다. 용어 "기계 판독 가능 신호"는 기계 명령어 및/또는 데이터를 프로그래밍 가능 프로세서에 제공하는 데 사용되는 모든 신호를 의미한다.
본 명세서에 설명된 프로세스 및 로직 흐름은 데이터 프로세싱 하드웨어라고도하는 하나 이상의 프로그래밍 가능 프로세서에 의해 수행될 수 있으며, 하나 이상의 컴퓨터 프로그램을 실행하여 입력 데이터를 조작하고 출력을 생성함으로써 기능을 수행할 수 있다. 프로세스 및 로직 흐름은 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)와 같은 특수 목적 로직 회로에 의해 수행될 수도 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 범용 및 특수 목적의 마이크로 프로세서와 모든 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로 프로세서는 읽기 전용 메모리나 랜덤 액세스 메모리 또는 둘 다에서 명령어와 데이터를 수신한다. 컴퓨터의 필수 요소는 명령어를 수행하기 위한 프로세서와 명령어와 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어 자기, 광 자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 포함하거나 작동 가능하게 결합된다. 그러나 컴퓨터는 이러한 장치가 필요하지 않다. 컴퓨터 프로그램 명령어 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는, 예를 들어, EPROM, EEPROM 및 플래시 메모리 장치와 같은 반도체 메모리 장치, 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크, 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비-휘발성 메모리, 미디어 및 메모리 장치를 포함한다. 프로세서와 메모리는 특수 목적 로직(논리) 회로에 의해 보완되거나 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서 내용의 하나 이상의 양태는 디스플레이 장치, 예를 들어 CRT(음극선 관), LCD(액정 디스플레이) 모니터 또는 사용자에게 정보를 표시하기 위한 터치 스크린과 같은 디스플레이 장치, 및 선택적으로 키보드 및 포인팅 장치(예를 들어, 사용자가 컴퓨터에 입력을 제공할 수있는 마우스 또는 트랙볼)를 갖는 컴퓨터상에서 구현될 수 있다. 사용자와의 상호 작용을 제공하기 위해 다른 종류의 장치도 사용할 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 예를 들어 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 모든 형태의 감각 피드백 일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 모든 형태로 수신될 수 있다. 또한 컴퓨터는 사용자가 사용하는 장치로 문서를 전송하고 장치에서 문서를 수신함으로써, 예를 들어 웹 브라우저에서 수신한 요청에 대한 응답으로 사용자 클라이언트 장치의 웹 브라우저에 웹 페이지를 전송함으로써 사용자와 상호 작용할 수 있다.
많은 구현이 설명되었다. 그럼에도 불구하고, 본 명세서의 사상 및 범위를 벗어나지 않고 다양한 변형이 이루어질 수 있음을 이해할 것이다. 따라서, 다른 구현은 다음 청구항의 범위 내에 있다.

Claims (24)

  1. 방법(600)으로서,
    사용자 장치(102)의 데이터 프로세싱 하드웨어(103)에서, 사용자 장치(102)에 의해 캡처된 스트리밍 오디오(118)를 특성화하는 각각의 오디오 특징(410)을 각각 포함하는 입력 프레임(210)의 시퀀스(210)를 수신하는 단계;
    데이터 프로세싱 하드웨어(103)에 의해, 기억된 신경망(300)을 사용하여 스트리밍 오디오(118)에서 핫워드의 존재를 나타내는 확률 점수(350)를 생성하는 단계 -기억된 신경망(300)은 순차적으로 적층된 특이값 분해 필터(SVDF) 계층(302)을 포함하며, 각각의 SVDF 계층(302)은 적어도 하나의 뉴런(312)을 포함하고, 각각의 뉴런(312)은,
    해당 뉴런(312)의 각각의 메모리 용량과 관련된 각각의 메모리 컴포넌트(330),
    각각의 입력 프레임(210)의 각각의 오디오 특징(410)에 대해 개별적으로 필터링을 수행하고 그리고 필터링된 오디오 특징(410)을 각각의 메모리 컴포넌트(330)로 출력하도록 구성된 제1 스테이지(320); 그리고
    각각의 메모리 컴포넌트(330)에 상주하는 필터링된 모든 오디오 특징(410)에 대해 필터링을 수행하도록 구성된 제2 스테이지(340)를 포함함-;
    데이터 프로세싱 하드웨어(103)에 의해, 확률 점수(350)가 핫워드 검출 임계값을 만족하는지 여부를 결정하는 단계; 그리고
    확률 점수(350)가 핫워드 검출 임계값을 만족할 때, 데이터 프로세싱 하드웨어(103)에 의해, 오디오 스트림(118)에서 핫워드 및/또는 핫워드 다음에 오는 하나 이상의 다른 용어를 프로세싱하기 위해 사용자 장치(102)에서 웨이크-업 프로세스를 시작하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 각각의 SVDF 계층(302)으로부터의 뉴런(312)에 대한 각각의 메모리 컴포넌트(330)와 관련된 메모리 용량의 합은 전형적인 화자(typical speaker)가 핫워드를 말하는 데 걸리는 시간에 비례하는 고정 메모리 용량을 기억된 신경망(300)에 제공하는 것을 특징으로 하는 방법.
  3. 제1항 또는 제2항에 있어서, 각각의 메모리 컴포넌트(330) 중 적어도 하나와 관련된 각각의 메모리 용량은 나머지 메모리 컴포넌트(330)와 관련된 각각의 메모리 용량과는 상이한 것을 특징으로 하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 모든 SVDF 계층(302)의 각각의 메모리 컴포넌트(330)와 관련된 각각의 메모리 용량은 서로 동일한 것을 특징으로 하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 원격 시스템(110)은 복수의 훈련 입력 오디오 시퀀스(400)에서 기억된 신경망(300)을 훈련시키고, 각각의 훈련 입력 오디오 시퀀스(400)는,
    핫워드의 음성(phonetic) 컴포넌트(430)를 특성화하는 하나 이상의 각각의 오디오 특징(410)을 각각 포함하는 입력 프레임의 시퀀스(210); 그리고
    입력 프레임(210)에 할당된 라벨(420)을 포함하며, 각 라벨(420)은 각 입력 프레임(210)의 오디오 특징(410)이 핫워드의 음성 컴포넌트(430)를 포함할 확률을 나타내는 것을 특징으로 하는 방법.
  6. 제5항에 있어서, 기억된 신경망(300)을 훈련시키는 것은,
    각각의 훈련(training) 입력 오디오 시퀀스(400)에 대해:
    핫워드의 음성 컴포넌트(430)를 포함하는 입력 프레임(210)의 부분에 제1 라벨(420)을 할당하고, 핫워드의 음성 컴포넌트(430)를 포함하는 입력 프레임(210)의 나머지 부분에 제2 라벨(420)을 할당함으로써 인코더 부분(310)을 훈련시키는 단계; 그리고
    해당 훈련 입력 오디오 시퀀스(400)가 핫워드를 포함하거나 핫워드를 포함하지 않음을 나타내는 라벨(420)을 적용함으로써 디코더 부분(311)을 훈련시키는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서, 상기 제1 라벨(420)을 상기 입력 프레임(210)의 부분에 할당하는 단계는,
    핫워드의 마지막 음성 컴포넌트(430)를 특성화하는 하나 이상의 각각의 오디오 특징(410)을 포함하는 적어도 하나의 입력 프레임(210)에 제1 라벨(420)을 할당하는 단계; 그리고
    핫워드의 나머지 음성 컴포넌트(430)를 특성화하는 하나 이상의 각각의 오디오 특징(410)을 각각 포함하는 나머지 입력 프레임(210)에 제2 라벨(420)을 할당하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서, 상기 신경망(300)을 훈련시키는 것은,
    각각의 훈련 입력 오디오 시퀀스(400)에 대해:
    훈련(training)의 제1 스테이지(320) 동안, 해당 훈련 입력 오디오 시퀀스(400)에 대한 입력 프레임(210)에 라벨(420)을 할당함으로써 인코더 부분(310)을 사전 훈련시키는 단계; 그리고
    훈련의 제2 스테이지(340) 동안,
    훈련의 제1 스테이지(320)로부터 할당된 라벨(420)로 인코더 부분(310)을 초기화하는 단계; 그리고
    핫워드를 검출하거나 핫워드를 검출하지 않도록 인코더 부분(310)으로부터의 출력으로 디코더 부분(311)을 훈련시키는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 기억된 신경망(300)은 인접한 SVDF 계층(302) 사이에 배치된 적어도 하나의 추가 프로세싱 계층을 포함하는 것을 특징으로 하는 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서, 상기 기억된 신경망(300)은 인접한 SVDF 계층(302) 사이에 배치된 적어도 하나의 병목(bottlenecking) 계층을 포함하는 것을 특징으로 하는 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 각각의 입력 프레임(210)의 오디오 특징(410)은 로그-필터뱅크를 포함하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서, 각각의 입력 프레임(210)은 40 개의 로그-필터뱅크를 포함하는 것을 특징으로 하는 방법.
  13. 시스템(100)으로서,
    사용자 장치(102)의 데이터 프로세싱 하드웨어(103); 그리고
    데이터 프로세싱 하드웨어(103)와 통신하는 메모리 하드웨어(105)를 포함하며, 메모리 하드웨어(105)는 데이터 프로세싱 하드웨어(103)에서 실행될 때 데이터 프로세싱 하드웨어(103)로 하여금 동작들을 수행하게 하는 명령어를 저장하며, 상기 동작들은,
    사용자 장치(102)에 의해 캡처된 스트리밍 오디오(118)를 특성화하는 각각의 오디오 특징(410)을 각각 포함하는 입력 프레임의 시퀀스(210)를 수신하는 동작;
    기억된 신경망(300)을 사용하여 스트리밍 오디오(118)에서 핫워드의 존재를 나타내는 확률 점수(350)를 생성하는 동작 -기억된 신경망(300)은 순차적으로 적층된 특이값 분해 필터(SVDF) 계층(302)을 포함하며, 각각의 SVDF 계층(302)은 적어도 하나의 뉴런(312)을 포함하고, 각각의 뉴런(312)은,
    해당 뉴런(312)의 각각의 메모리 용량과 관련된 각각의 메모리 컴포넌트(330),
    각각의 입력 프레임(210)의 각각의 오디오 특징(410)에 대해 개별적으로 필터링을 수행하고 그리고 필터링된 오디오 특징(410)을 각각의 메모리 컴포넌트(330)로 출력하도록 구성된 제1 스테이지(320); 그리고
    각각의 메모리 컴포넌트(330)에 상주하는 필터링된 모든 오디오 특징(410)에 대해 필터링을 수행하도록 구성된 제2 스테이지(340)를 포함함-;
    확률 점수(350)가 핫워드 검출 임계값을 만족하는지 여부를 결정하는 동작; 그리고
    확률 점수(350)가 핫워드 검출 임계값을 만족할 때, 오디오 스트림(118)에서 핫워드 및/또는 핫워드 다음에 오는 하나 이상의 다른 용어를 프로세싱하기 위해 사용자 장치(102)에서 웨이크-업 프로세스를 시작하는 동작을 포함하는 것을 특징으로 하는 시스템.
  14. 제13항에 있어서,
    각각의 SVDF 계층(302)으로부터의 뉴런(312)에 대한 각각의 메모리 컴포넌트(330)와 관련된 메모리 용량의 합은 전형적인 화자(typical speaker)가 핫워드를 말하는 데 걸리는 시간에 비례하는 고정 메모리 용량을 기억된 신경망(300)에 제공하는 것을 특징으로 하는 시스템.
  15. 제13 항 또는 제14항에 있어서,
    각각의 메모리 컴포넌트(330) 중 적어도 하나와 관련된 각각의 메모리 용량은 나머지 메모리 컴포넌트(330)와 관련된 각각의 메모리 용량과는 상이한 것을 특징으로 하는 시스템.
  16. 제13항 내지 제15 항 중 어느 한 항에 있어서,
    모든 SVDF 계층(302)의 각각의 메모리 컴포넌트(330)와 관련된 각각의 메모리 용량은 서로 동일한 것을 특징으로 하는 시스템.
  17. 제13항 내지 제16항 중 어느 한 항에 있어서,
    원격 시스템(110)은 복수의 훈련 입력 오디오 시퀀스(400)에서 기억된 신경망(300)을 훈련시키도록 구성되고, 각각의 훈련 입력 오디오 시퀀스(400)는,
    핫워드의 음성(phonetic) 컴포넌트(430)를 특성화하는 하나 이상의 각각의 오디오 특징(410)을 각각 포함하는 입력 프레임(210)의 시퀀스; 그리고
    입력 프레임(210)에 할당된 라벨(420)을 포함하며, 각 라벨(420)은 각 입력 프레임(210)의 오디오 특징(410)이 핫워드의 음성 컴포넌트(430)를 포함할 확률을 나타내는 것을 특징으로 하는 시스템.
  18. 제17항에 있어서, 기억된 신경망(300)을 훈련시키는 것은,
    각각의 훈련(training) 입력 오디오 시퀀스(400)에 대해:
    핫워드의 음성 컴포넌트(430)를 포함하는 입력 프레임(210)의 부분에 제1 라벨(420)을 할당하고, 핫워드의 음성 컴포넌트(430)를 포함하는 입력 프레임(210)의 나머지 부분에 제2 라벨(420)을 할당함으로써 인코더 부분(310)을 훈련시키는 것; 그리고
    해당 훈련 입력 오디오 시퀀스(400)가 핫워드를 포함하거나 핫워드를 포함하지 않음을 나타내는 라벨(420)을 적용함으로써 디코더 부분(311)을 훈련시키는 것을 포함하는 것을 특징으로 하는 시스템.
  19. 제18항에 있어서,
    상기 제1 라벨(420)을 상기 입력 프레임(210)의 부분에 할당하는 것은,
    핫워드의 마지막 음성 컴포넌트(430)를 특성화하는 하나 이상의 각각의 오디오 특징(410)을 포함하는 적어도 하나의 입력 프레임(210)에 제1 라벨(420)을 할당하는 것; 그리고
    핫워드의 나머지 음성 컴포넌트(430)를 특성화하는 하나 이상의 각각의 오디오 특징(410)을 각각 포함하는 나머지 입력 프레임(210)에 제2 라벨(420)을 할당하는 것을 포함하는 것을 특징으로 하는 시스템.
  20. 제17항 내지 제19항 중 어느 한 항에 있어서,
    상기 신경망(300)을 훈련시키는 것은,
    각각의 훈련 입력 오디오 시퀀스(400)에 대해:
    훈련(training)의 제1 스테이지(320) 동안, 해당 훈련 입력 오디오 시퀀스(400)에 대한 입력 프레임(210)에 라벨(420)을 할당함으로써 인코더 부분(310)을 사전 훈련시키는 것; 그리고
    훈련의 제2 스테이지(340) 동안,
    훈련의 제1 스테이지(320)로부터 할당된 라벨(420)로 인코더 부분(310)을 초기화하는 것; 그리고
    핫워드를 검출하거나 핫워드를 검출하지 않도록 인코더 부분(310)으로부터의 출력으로 디코더 부분(311)을 훈련시키는 것을 포함하는 것을 특징으로 하는 시스템.
  21. 제13항 내지 제20항 중 어느 한 항에 있어서,
    상기 기억된 신경망(300)은 인접한 SVDF 계층(302) 사이에 배치된 적어도 하나의 추가 프로세싱 계층을 포함하는 것을 특징으로 하는 시스템.
  22. 제13항 내지 제21항 중 어느 한 항에 있어서,
    상기 기억된 신경망(300)은 인접한 SVDF 계층(302) 사이에 배치된 적어도 하나의 병목(bottlenecking) 계층을 포함하는 것을 특징으로 하는 시스템.
  23. 제13항 내지 제22항 중 어느 한 항에 있어서,
    각각의 입력 프레임(210)의 오디오 특징(410)은 로그-필터뱅크를 포함하는 것을 특징으로 하는 시스템.
  24. 제23항에 있어서,
    각각의 입력 프레임(210)은 40 개의 로그-필터뱅크를 포함하는 것을 특징으로 하는 시스템.
KR1020207038047A 2018-07-13 2019-06-13 종단 간 스트리밍 키워드 탐지 KR102483774B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227046093A KR102622357B1 (ko) 2018-07-13 2019-06-13 종단 간 스트리밍 키워드 탐지

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862697586P 2018-07-13 2018-07-13
US62/697,586 2018-07-13
PCT/US2019/036907 WO2020013946A1 (en) 2018-07-13 2019-06-13 End-to-end streaming keyword spotting

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227046093A Division KR102622357B1 (ko) 2018-07-13 2019-06-13 종단 간 스트리밍 키워드 탐지

Publications (2)

Publication Number Publication Date
KR20210015967A true KR20210015967A (ko) 2021-02-10
KR102483774B1 KR102483774B1 (ko) 2023-01-02

Family

ID=67108200

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020227046093A KR102622357B1 (ko) 2018-07-13 2019-06-13 종단 간 스트리밍 키워드 탐지
KR1020207038047A KR102483774B1 (ko) 2018-07-13 2019-06-13 종단 간 스트리밍 키워드 탐지
KR1020247000260A KR20240008406A (ko) 2018-07-13 2019-06-13 종단 간 스트리밍 키워드 탐지

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227046093A KR102622357B1 (ko) 2018-07-13 2019-06-13 종단 간 스트리밍 키워드 탐지

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020247000260A KR20240008406A (ko) 2018-07-13 2019-06-13 종단 간 스트리밍 키워드 탐지

Country Status (6)

Country Link
US (5) US10930269B2 (ko)
EP (1) EP3807874A1 (ko)
JP (3) JP6984068B2 (ko)
KR (3) KR102622357B1 (ko)
CN (1) CN112368769A (ko)
WO (1) WO2020013946A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106228976B (zh) * 2016-07-22 2019-05-31 百度在线网络技术(北京)有限公司 语音识别方法和装置
US11205121B2 (en) 2018-06-20 2021-12-21 Disney Enterprises, Inc. Efficient encoding and decoding sequences using variational autoencoders
US11244673B2 (en) * 2019-07-19 2022-02-08 Microsoft Technologly Licensing, LLC Streaming contextual unidirectional models
CN111343473B (zh) * 2020-02-25 2022-07-01 北京达佳互联信息技术有限公司 直播应用的数据处理方法、装置、电子设备及存储介质
CN111429887B (zh) * 2020-04-20 2023-05-30 合肥讯飞数码科技有限公司 基于端到端的语音关键词识别方法、装置以及设备
CN111667835A (zh) * 2020-06-01 2020-09-15 马上消费金融股份有限公司 语音识别方法、活体检测方法、模型训练方法及装置
CN112669852B (zh) * 2020-12-15 2023-01-31 北京百度网讯科技有限公司 内存分配方法、装置及电子设备
US20220284891A1 (en) * 2021-03-03 2022-09-08 Google Llc Noisy student teacher training for robust keyword spotting
US20230274731A1 (en) * 2022-02-28 2023-08-31 Google Llc Mixing Heterogeneous Loss Types to Improve Accuracy of Keyword Spotting
CN114863915A (zh) * 2022-07-05 2022-08-05 中科南京智能技术研究院 一种基于语义保留的语音唤醒方法及系统
CN116453514B (zh) * 2023-06-08 2023-08-25 四川大学 一种基于多视角的语音关键词检测与定位方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160111795A (ko) * 2015-03-17 2016-09-27 인천대학교 산학협력단 인공 신경망의 뉴로모픽 하드웨어 구현 방법
JP2017513037A (ja) * 2014-10-09 2017-05-25 グーグル インコーポレイテッド 複数のデバイスにおけるホットワードの検出
US9767410B1 (en) * 2014-10-03 2017-09-19 Google Inc. Rank-constrained neural networks

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266386A (ja) * 1993-03-16 1994-09-22 Nippon Telegr & Teleph Corp <Ntt> ワードスポッティング方法
JPH08314490A (ja) * 1995-05-23 1996-11-29 Nippon Hoso Kyokai <Nhk> ワードスポッティング型音声認識方法と装置
US7359550B2 (en) * 2002-04-18 2008-04-15 Mitsubishi Electric Research Laboratories, Inc. Incremental singular value decomposition of incomplete data
US7725319B2 (en) * 2003-07-07 2010-05-25 Dialogic Corporation Phoneme lattice construction and its application to speech recognition and keyword spotting
ES2237345B1 (es) * 2005-02-28 2006-06-16 Prous Institute For Biomedical Research S.A. Procedimiento de conversion de fonemas a texto escrito y sistema informatico y programa informatico correspondientes.
WO2008106655A1 (en) * 2007-03-01 2008-09-04 Apapx, Inc. System and method for dynamic learning
JP4572218B2 (ja) * 2007-06-27 2010-11-04 日本電信電話株式会社 音楽区間検出方法、音楽区間検出装置、音楽区間検出プログラム及び記録媒体
US20140272914A1 (en) * 2013-03-15 2014-09-18 William Marsh Rice University Sparse Factor Analysis for Learning Analytics and Content Analytics
US9390708B1 (en) * 2013-05-28 2016-07-12 Amazon Technologies, Inc. Low latency and memory efficient keywork spotting
US9620145B2 (en) * 2013-11-01 2017-04-11 Google Inc. Context-dependent state tying using a neural network
US10198517B2 (en) * 2014-12-08 2019-02-05 Oath Inc. Pairing systems and methods for electronic communications
US10013652B2 (en) 2015-04-29 2018-07-03 Nuance Communications, Inc. Fast deep neural network feature transformation via optimized memory bandwidth utilization
US10438593B2 (en) * 2015-07-22 2019-10-08 Google Llc Individualized hotword detection models
US20170154620A1 (en) 2015-12-01 2017-06-01 Knowles Electronics, Llc Microphone assembly comprising a phoneme recognizer
US10043243B2 (en) * 2016-01-22 2018-08-07 Siemens Healthcare Gmbh Deep unfolding algorithm for efficient image denoising under varying noise conditions
US9639809B1 (en) * 2016-02-10 2017-05-02 Sas Institute Inc. Monitoring system based on a support vector data description
US20170259120A1 (en) 2016-03-08 2017-09-14 Your Trainer Inc. Programming environment for adaptive workout video composition
US10373612B2 (en) * 2016-03-21 2019-08-06 Amazon Technologies, Inc. Anchored speech detection and speech recognition
CN106251859B (zh) * 2016-07-22 2019-05-31 百度在线网络技术(北京)有限公司 语音识别处理方法和装置
US10290197B2 (en) * 2016-08-15 2019-05-14 Nec Corporation Mass transit surveillance camera system
KR101943381B1 (ko) * 2016-08-22 2019-01-29 에스케이텔레콤 주식회사 심층 신경망을 이용한 음성 끝점 검출 방법 및 이를 위한 끝점 검출 장치
DE102016216950A1 (de) * 2016-09-07 2018-03-08 Robert Bosch Gmbh Modellberechnungseinheit und Steuergerät zur Berechnung eines mehrschichtigen Perzeptronenmodells mit Vorwärts- und Rückkopplung
US10403268B2 (en) * 2016-09-08 2019-09-03 Intel IP Corporation Method and system of automatic speech recognition using posterior confidence scores
US11081105B2 (en) * 2016-09-16 2021-08-03 Nippon Telegraph And Telephone Corporation Model learning device, method and recording medium for learning neural network model
US10950225B2 (en) * 2016-09-30 2021-03-16 Nippon Telegraph And Telephone Corporation Acoustic model learning apparatus, method of the same and program
US11080595B2 (en) * 2016-11-04 2021-08-03 Salesforce.Com, Inc. Quasi-recurrent neural network based encoder-decoder model
EP3430617B1 (en) 2016-11-07 2019-10-23 Google LLC Recorded media hotword trigger suppression
US10650311B2 (en) * 2016-12-19 2020-05-12 Asaap, Inc. Suggesting resources using context hashing
US10559309B2 (en) 2016-12-22 2020-02-11 Google Llc Collaborative voice controlled devices
CN106782504B (zh) * 2016-12-29 2019-01-22 百度在线网络技术(北京)有限公司 语音识别方法和装置
JP6585112B2 (ja) * 2017-03-17 2019-10-02 株式会社東芝 音声キーワード検出装置および音声キーワード検出方法
US10460729B1 (en) * 2017-06-30 2019-10-29 Amazon Technologies, Inc. Binary target acoustic trigger detecton
US10664716B2 (en) * 2017-07-19 2020-05-26 Vispek Inc. Portable substance analysis based on computer vision, spectroscopy, and artificial intelligence
US20190080009A1 (en) * 2017-09-11 2019-03-14 Linkedin Corporation Calculation of tuning parameters for ranking items in a user feed
WO2019069125A1 (en) 2017-10-06 2019-04-11 Oslo Universitetssykehus Hf CHIMERIC ANTIGEN RECEPTORS
US11586924B2 (en) * 2018-01-23 2023-02-21 Qualcomm Incorporated Determining layer ranks for compression of deep networks
DE102018102758B4 (de) 2018-02-07 2020-01-16 Kendrion (Villingen) Gmbh Feder für ein Rückschlagventil, Rückschlagventil mit einer derartigen Feder, regelbarer Schwingungsdämpfer mit einem solchen Rückschlagventil sowie Kraftfahrzeug mit einem derartigen regelbaren Schwingungsdämpfer
US10585988B2 (en) * 2018-06-08 2020-03-10 Microsoft Technology Licensing, Llc Graph representations for identifying a next word
JP6892426B2 (ja) * 2018-10-19 2021-06-23 ヤフー株式会社 学習装置、検出装置、学習方法、学習プログラム、検出方法、および検出プログラム
CN111933114B (zh) * 2020-10-09 2021-02-02 深圳市友杰智新科技有限公司 语音唤醒混合模型的训练方法、使用方法和相关设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9767410B1 (en) * 2014-10-03 2017-09-19 Google Inc. Rank-constrained neural networks
JP2017513037A (ja) * 2014-10-09 2017-05-25 グーグル インコーポレイテッド 複数のデバイスにおけるホットワードの検出
KR20160111795A (ko) * 2015-03-17 2016-09-27 인천대학교 산학협력단 인공 신경망의 뉴로모픽 하드웨어 구현 방법

Also Published As

Publication number Publication date
US20210142790A1 (en) 2021-05-13
US11682385B2 (en) 2023-06-20
US20200126537A1 (en) 2020-04-23
US11929064B2 (en) 2024-03-12
EP3807874A1 (en) 2021-04-21
CN112368769A (zh) 2021-02-12
US11056101B2 (en) 2021-07-06
US20210312913A1 (en) 2021-10-07
KR20230006055A (ko) 2023-01-10
US11557282B2 (en) 2023-01-17
US20200020322A1 (en) 2020-01-16
JP2021524615A (ja) 2021-09-13
JP2022028846A (ja) 2022-02-16
US10930269B2 (en) 2021-02-23
JP7263492B2 (ja) 2023-04-24
WO2020013946A1 (en) 2020-01-16
KR20240008406A (ko) 2024-01-18
KR102622357B1 (ko) 2024-01-08
JP6984068B2 (ja) 2021-12-17
JP2023089116A (ja) 2023-06-27
US20230162729A1 (en) 2023-05-25
KR102483774B1 (ko) 2023-01-02
US20230298576A1 (en) 2023-09-21

Similar Documents

Publication Publication Date Title
KR102622357B1 (ko) 종단 간 스트리밍 키워드 탐지
US11158305B2 (en) Online verification of custom wake word
US11798535B2 (en) On-device custom wake word detection
US10403266B2 (en) Detecting keywords in audio using a spiking neural network
US11423883B2 (en) Contextual biasing for speech recognition
KR20220130565A (ko) 키워드 검출 방법 및 장치
JP7345667B2 (ja) 小さいフットプリントのマルチチャネルキーワードスポッティング
US11967310B2 (en) End-to-end streaming keyword spotting
US20230274731A1 (en) Mixing Heterogeneous Loss Types to Improve Accuracy of Keyword Spotting

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant