KR102295161B1 - 저전력 자동 음성 인식 장치 - Google Patents

저전력 자동 음성 인식 장치 Download PDF

Info

Publication number
KR102295161B1
KR102295161B1 KR1020187036748A KR20187036748A KR102295161B1 KR 102295161 B1 KR102295161 B1 KR 102295161B1 KR 1020187036748 A KR1020187036748 A KR 1020187036748A KR 20187036748 A KR20187036748 A KR 20187036748A KR 102295161 B1 KR102295161 B1 KR 102295161B1
Authority
KR
South Korea
Prior art keywords
memory
circuit
state
search
acoustic model
Prior art date
Application number
KR1020187036748A
Other languages
English (en)
Other versions
KR20190010607A (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 KR1020217026536A priority Critical patent/KR102422848B1/ko
Publication of KR20190010607A publication Critical patent/KR20190010607A/ko
Application granted granted Critical
Publication of KR102295161B1 publication Critical patent/KR102295161B1/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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/08Speech classification or search
    • G10L15/14Speech classification or search using statistical models, e.g. Hidden Markov Models [HMMs]
    • 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/14Speech classification or search using statistical models, e.g. Hidden Markov Models [HMMs]
    • G10L15/142Hidden Markov Models [HMMs]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/285Memory allocation or algorithm optimisation to reduce hardware requirements
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/035Scalar quantisation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/90Pitch determination of speech signals
    • 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
    • G10L2015/0631Creating reference templates; Clustering
    • G10L2015/0633Creating reference templates; Clustering using lexical or orthographic knowledge sources

Abstract

디코더는 하나 이상의 특징 벡터들을 계산하기 위한 특징 추출 회로(feature extraction circuit); 상기 특징 추출 회로로부터 하나 이상의 특징 벡터들을 수신하고 상기 하나 이상의 특징 벡터(feature vector)들에 하나 이상의 우도 값들을 할당하도록 결합된 음향 모델 회로(acoustic model circuit); 디코더의 천이 상태(states of transition)를 저장하는 메모리; 및 하나 이상의 특징 벡터에 기초하여 하나 이상의 우도 값(likelihood value)에 대응하는 상기 음향 모델 회로로부터의 입력을 수신하고, 상기 음향 모델로부터의 입력에 기초하여 메모리로부터의 천이 상태(states of transition)를 선택하기 위한 검색 회로(search circuit)를 포함하는 음향 모델 회로.

Description

저전력 자동 음성 인식 장치
본 출원은 미국 가출원 제62/344,081호(2016년 6월 1일 출원)의 이점 및 우선권을 주장하며, 그 개시 내용은 그 전체가 본원에 참조로 인용된다.
본 발명은 자동 음성 인식(automatic speech recognition, ASR)에 관한 것으로, 보다 상세하게는 저전력 소비를 갖는 ASR 시스템에 관한 것이다.
1980년대 후반, 음성 응용을 위한 특수 목적의 하드웨어를 개발하려는 노력이 산발적으로 있어왔다. HMM(hidden Markov Model) 기반 음성 인식을 위한 ASIC(Application-Specific Integrated Circuits)은 1991 년 초에 보고되었으며, 휴대용 장치를 위한 소비 전력을 고려한 구현이 뒤를 이었다. "In Silico Vox"프로젝트는 ASR 용으로 잘 정립된 소프트웨어 프레임 워크인 Sphinx-3의 정교한 하드웨어 포트를 만들었다.
보다 전문화된 연구 노력으로 ASR 알고리즘의 변화 및 이런 변화의 하드웨어 적용 가능성을 실험되었다. 진화의 한 분야는 현대 ASR 프레임 워크의 구성 요소 인 가중 유한 상태 변환기(WFST: weighed finite-state transducers)의 사용에 있었다. WFST는 이제 상업적 시스템을 포함하여 소프트웨어 음성 인식기에서 보편화되었다. 아마도 개발주기가 길어짐에 따라 지금까지 실현된 대부분의 하드웨어 구현은 비(non)-WFST 소프트웨어 디코더를 기반으로 한다.
WFST를 사용하는 디지털 회로는 2008년에 발표되었으므로 WFST를 사전 처리하면 각 프레임에서 반복적으로 레이블이 없는 아크(arc)를 고려해야 할 필요성을 없앨 수 있다는 중요한 인식에 기여했다.
ASR 연구의 또 다른 초점 영역은 음향 모델링이다. 이전의 ASR 하드웨어 구현은 다양한 수준의 복잡성(묶인 상태의 수 및 분포 당 가우스 구성 요소의 수)을 가진 가우시안 혼합 모델(GMM: Gaussian mixture model)을 사용한다. 연산 속도를 높이기 위해 디자이너는 프레임 건너 뛰기 및 가우스 선택을 수행하고 고정 소수점 파라미터를 사용했다. 한편, DNN(deep neural network) 및 기타 신경망 구조는 정확도가 향상되어 ASR에 널리 사용된다. 회로 연구회는 DNN을 연구하고 주로 컴퓨터 비전을 위한 효율적인 구현을 개발했다.
다른 시스템은 음향 모델링과 검색 사이에서 하드웨어 자원을 분할하는 방법을 선택하는 것과 하드웨어로 수행되는 첫 번째 패스로 2 패스 디코딩하는 것 등 다양한 다른 아키텍처 기능을 포함한다. 코드 생성 도구는 고급 언어로 지정된 다른 가속기 커널을 빠르게 평가하는데 도움이 된다. 음향 모델은 일반적으로 가속으로부터 큰 효율 이득을 보지만, 프런트 앤드(front-ends)는 일반적으로 그렇지 않다. 그러나 검색을 위한 적절한 하드웨어/소프트웨어 파티셔닝에 대한 합의가 이루어지지 않고 있으며, 이는 응용 프로그램에 따라 결정되는 것 같다.
또한 VAD(Voice Activity Detection)에 사용할 수 있는 광범위한 알고리즘에 특수 용도의 아키텍처를 적용할 수 있는 기회를 제공한다. 깊이 확장된(deeply scaled) CMOS의 최소 에너지 동작 또는 적응형 특징 세분성(adaptive feature granuality)의 혼합 신호(mixed-signal) 설계와 같은 다양한 기술을 통해 전력을 최소화할 수 있다. 이러한 노력으로 VAD(Voice Activity Detection)의 전력 소비는 수 마이크로 와트로 낮아졌다.
ASR의 다른 노력은 55,000MHz로 클럭된 대형 ASIC을 사용하여 실시간 처리량보다 127배 더 빠른 60,000단어(또는 그 이상) 어휘로 범용 필사(transcript) 응용 프로그램을 위한 디코더 기능을 계속 확장해 왔다.
어떤 시스템이 고성능이며 저전력인 응용을 달성하기 위하여, 실시간 디코딩 중에 단지 54mW의 전력 소비와 82MB/s의 메모리 대역폭을 얻기 위해 Julius라는 일본어 시스템에 일련의 최적화를 적용했다. 또한 저전력 ASR 응용 프로그램과 관련된 WFST 가지치기(pruning) 및 검색(search) 기술이 개발되었다.
음성 인식(voice recognition)은 배터리 수명을 연장하기 위해 저전력을 필요로 하는 모바일 컴퓨팅에서 유비쿼터스화 되고 있다. 아래에 설명된 자동 음성 인식(ASR) 시스템은 기존 기술보다 90 ~ 99 % 더 큰 실제 전력 절감을 달성할 수 있다.
ASR 시스템은 은닉 마르코프 모델(hidden Markov Model)에 기초한 연속 음성 인식기를 포함할 수 있다. 그것은 임의의 길이의 오디오 입력을 문장으로 옮길 수 있다. 천이 모델(transition medel)은 WFST를 포함할 수 있다. 하나의 테스트 케이스에서, ASR 시스템은 145k 단어의 어휘를 가지고 있었고, 작동을 위해서는 8 밀리 와트 이하가 필요했다. 또 다른 테스트 케이스에서, ASR 시스템은 11 단어의 어휘를 사용했고 작동을 위해서는 172 마이크로 와트가 필요했다.
일 실시예에서, 디코더는 하나 이상의 특징 벡터들(feature vectors)을 계산하기 위한 특징 추출 회로(feature extraction circuit); 상기 특징 추출 회로로부터 하나 이상의 특징 벡터들을 수신하고 상기 하나 이상의 특징 벡터들에 하나 이상의 우도 값들(likelihood values)을 할당하도록 결합된 음향 모델 회로(acoustic model); 상기 디코더의 천이 상태(states of transition)를 저장하는 메모리; 및 상기 하나 이상의 특징 벡터에 기초하여 상기 하나 이상의 우도 값들에 대응하는 상기 음향 모델 회로로부터의 입력을 수신하고, 상기 음향 모델로부터의 입력에 기초하여 상기 메모리로부터의 천이 상태를 선택하기 위한 검색 회로(search circuit)를 포함하는 디코더이다.
아래 특징 중 적어도 하나이상이 포함될 수 있다.
메모리는 온-칩(on-chip) 캐시 메모리(cache memory)일 수 있다.
천이 상태(transition state)는 가중 유한 상태 변환기(weighted finite state transducer; WFST)를 포함한다.
집적 회로(integrated circuit)는 특징 추출 회로, 음향 모델, 메모리 및 검색 회로를 구현할 수 있다.
캐시 메모리(cache memory)는 가변 길이 블록들(variable length blocks)과 동작하도록 구성된 순환 메모리(circular memory)로 제공될 수 있다.
음향 모델 회로(acoustic model circuit)는 DNN(deep neural network)으로 제공될 수 있다.
특징 추출 회로, 음향 모델 회로 및 검색 회로는 병렬화 기술(parallelization technique)에 따라 동작될 수 있다.
음성 활동 검출 회로(voice activity detection circuit)는 음성 활동의 검출시 특징 추출 회로, 음향 모델 회로 및 검색 회로 중 하나 이상에 전력을 제공하도록 구성될 수 있다.
검색 회로(search circuit)는 2개의 상태 리스트(state list)를 포함하는 통합된 상태 리스트를 포함할 수 있다.
검색 회로(search circuit)는 반복(recursion)을 회피하기 위하여 가중 유한 상태 변환기(WFST)의 입실론(ε) 아크(arc) 처리에 의존할 수 있다.
재구성 가능한(reconfigurable) 신경망(Neural Network) 평가자 아키텍처(evaluator architecture)가 포함될 수 있다.
재구성 가능한(reconfigurable) 신경망(Neural Network) 평가자 아키텍처(evaluator architecture)는 신경망 크기에 기초하여 사용되거나 또는 사용중지 되도록 구성된 복수의 실행 유닛들(execution units)을 포함할 수 있다.
상기 실행 유닛들(execution units)은 신경망 크기에 기초하여 가변 수의 SRAM 메모리에 액세스하도록 구성될 수 있다.
다른 실시예에서, 자동 음성 인식(automatic speech recognition) 방법 은,
DNN(deep neural network) 파라미터의 단일 전송되는 동안 여러 프레임에 걸쳐 음향 모델 DNN 파라미터를 병렬로 평가하는 단계; 비교 가능한 노드 수를 갖는 계층(layers)으로 DNN을 트레이닝 하는 단계; 스칼라 양자화기(scalar quantizer)를 사용하여 각각의 DNN 계층에 대한 상기 가중 행렬을 압축하는 단계; 검색 그래프(WFST) 파라미터에 대한 외부 메모리 액세스를 줄이기 위해 온-칩 캐싱(on-chip caching)을 사용하는 단계; 및 매우 작은 단어 래티스 구조로 온-칩(on-chip) 변환을 수행함으로써 단어 가설을 나타내는 상태의 온-칩 래티스를 구성하는 단계를 포함한다.
아래 특징 중 적어도 하나 이상이 포함될 수 있다.
6 내지 10 비트의 범위를 갖는 스칼라 양자화기를 사용하여 각 계층에 대한 가중 행렬을 압축하는 단계를 포함하여, 스칼라 양자화기(scalar quantizer)를 사용하여 각 계층에 대한 가중 행렬을 압축될 수 있다.
DNN들은 추가적인 메모리 절감을 위해 스파스 가중치(sparse weights)로 트레이닝 될 수 있다.
모든 계층들과 함께 트레이닝 되는 DNN은 온-칩 메모리 활용도를 최대화하기 위해 비교 가능한 노드들을 가지고 있는 상기 출력층(output layer)을 포함한다.
검색 그래프(WFST) 파라미터를 감소시키기 위한 온-칩(on-chip) 캐싱(caching)의 사용은 순환 버퍼(circular buffer) 아키텍쳐를 이용하여 대역폭을 감소시키기 위해 온-칩 캐싱을 이용하는 것을 포함할 수 있다.
검색 그래프(WFST) 파라미터를 감소시키기 위한 온-칩(on-chip) 캐싱(caching)을 사용은 가변 크기의 객체를 캐싱하기 위한 비표준(non-standard) 순환 버퍼(circular buffer) 아키텍처를 이용하여 대역폭을 감소시키기 위해 온-칩 캐싱을 이용하는 것을 포함할 수 있다.
히트 레이트(hit rates)를 최대화하고 캐시 미스(cache misses)에 필요한 대역폭을 최소화하기 위해 개별 애플리케이션의 인코딩으로 WFST가 압축될 수 있다.
비터비(Viterbi) 검색 알고리즘에 의하여 식별되는 단어 가설(word hypotheses)을 나타내는 상태들의 래티스(lattice of states)가 구성될 수 있다.
전술한 특징은 이하의 도면의 설명으로부터 좀 더 충분히 이해될 수 있다. 도면은 개시된 기술을 설명하고 이해하는데 도움이 된다. 가능한 모든 실시예를 설명하는 것이 종종 실용적이지 않거나 불가능하기 때문에, 제공된 도면은 하나 이상의 예시적인 실시예를 도시한다. 따라서, 도면들은 본 발명의 범위를 제한하지 않는다. 도면에서 동일한 번호는 동일한 요소를 나타낸다.
도 1은 음성 인식 시스템의 블록도이다.
도 2는 음향 모델 모듈의 블록도이다.
도 2a는 시퀀스의 블록도이다.
도 2b는 실행 유닛의 블록도이다.
도 3은 검색 모듈의 블록도이다.
도 4는 재귀의 필요성을 제거하기위한 WFST 변환의 다이어그램이다.
도 5는 검색 파이프 라인을 통해 전송된 데이터 구조를 나타낸 도면이다.
도 6은 단어 래티스(word lattice)의 도면이다.
도 6a는 단어 래티스 저장의 블록도이다.
도 7은 음성 인식을 위한 시스템의 칩 구현의 블록도이다.
도 1은 음향 음성 인식(ASR) 시스템(100)의 블록도이다. ASR 시스템(100)은 입력은 마이크로폰 또는 다른 변환기(102)(아날로그-디지털 변환기(ADC)(101)와 같은 처리 장치에 의해 디지털 신호로 변환될 수 있음)로부터 오디오 데이터를 수신하고 인식된 단어(104)를 출력으로 생성한다. 출력은 호스트 프로세서(106)에 의해 수신될 수 있으며, 호스트 프로세서(106)는 컴퓨터, 이동 컴퓨팅 장치, 컴퓨터 프로세서 칩, 또는 다른 컴퓨팅 장치일 수 있다.
ASR 시스템(100)은 ASR 시스템(100)에 대한 모델 데이터를 제공하는 모델링 모듈(108)을 포함할 수 있다. 모델링 모듈(108)은 음향 모델(116), 어휘 모델(118) 및/또는 언어 모델(120)을 포함할 수 있다. ASR 시스템(100)은 또한 모델들(116, 118 및/또는 120)로부터 DNN 가중 행렬과 같은 데이터를 압축하기 위한 압축 모듈(130)을 포함할 수 있다. 실시예에서, 압축 모듈은 6-10 비트의 정밀도 범위를 가질 수 있는 스칼라 양자화기를 사용하여 데이터를 압축할 수 있다. 당업자는 특정 애플리케이션의 요구를 충족시키는데 요구되는 정밀도를 결정하는 방법을 이해할 것이다. DNN은 추가 메모리 절약을 위해 스파스(sparse) 가중치로도 트레이닝 될 수 있다. 또한 DNN은 온-칩 메모리 활용을 극대화하기 위해 DNN의 각 계층에 비슷한 수의 노드가 있는 곳에서 트레이닝 받을 수 있다.
ASR(acoustic speech recgnition) 시스템(100)은 마이크로폰(102)(또는 다른 유형의 오디오 소스)으로부터 수신될 수 있는 음성 신호(122)를 처리하기 위하여, 프론트 앤드(frontend) 모듈(124), 음향 모델(acoustic model) 모듈(126)(음향 모델 평가 모듈일 수 있음), 및 검색 모듈(search module)(128)을 갖는 ASR 모듈(110)(ASR 디코딩 모듈일 수 있음)을 포함할 수 있다.
ASR 시스템(100)의 하나 이상의 모듈 및 구성 요소는 자동 전원 게이트(automated power gate)(114)의 작동을 통해 전원에 결합되거나 분리될 수 있다. 도 1의 예시적인 실시예에서, 전원 게이트(114)는 ASR 모듈(110)을 접지에 연결하는 MOSFET 심볼에 의해 도시된다. 그러나, 시스템 ASR(100)의 요소들을 전력 또는 접지에 결합 및 분리할 수 있는 임의의 유형의 스위치가 사용될 수 있다.
ASR 시스템(100)은 또한 음성 활성 검출 회로(voice activity detection circuit)(112)를 포함할 수 있다. 음성 활동 검출 회로는 음성 신호(122)를 수신하도록 결합될 수 있다. 음성 신호(122)를 수신하는 것에 응답하여, 음성 활성 검출 회로(112)는 전력 게이트(114)를 제어할 수 있다. 예를 들어, 음성 활성도 검출 회로(112)가 미리 결정된 일정 시간 동안 음성 또는 오디오를 검출하지 않으면, 전력 게이트(114)가 ASR 모듈(110)을 전력으로부터 분리시켜 전력 소비를 감소시킬 수 있다. 음성 활성도 검출 회로(112)가 음성 또는 오디오를 검출할 때, 스피치 또는 오디오를 처리하도록 전원 게이트(114)가 ASR 모듈(110)과 결합하여 전원을 공급할 수 있다.
ASR 시스템(100)은 또한 메모리(130)를 포함할 수 있다. 메모리(130)는 모델 모듈(108)과 ASR 모듈(110) 사이에서 공유될 수 있으며, 모델 모듈(108)과 ASR 모듈(110) 사이에서 통신되는 데이터 및 동작 중에 ASR 모듈(110)에 의해 생성된 데이터에 대한 저장 영역으로서 작용할 수 있다.
실시예에서, ASR 시스템(100)은 신호 처리 집적 회로(IC)로서 또는 그 일부로서 구현될 수 있다. IC는 전력 소모를 낮출 수 있다. 일 실시예에서, IC는 ASR 모듈(110) 및/또는 음성 활동 검출 모듈(voice activity detection module)(112)을 포함할 수 있는 반면, 메모리(130) 및 모델 모듈(108)은 IC 외부에 존재한다.
프론트 앤드 모듈(front-end module)(124)은 오디오(예를 들어, 8kHz 또는 16kHz에서의 16비트 샘플)를 더 낮은 레이트의 특징 표현으로 변환할 수 있다. 예를 들어, 프론트 앤드 모듈(124)은 멜 주파수 캡스트럴 계수(mel-frequency cepstral coefficient; MFCC)에 기초할 수 있는 특징 벡터(132)를 생성할 수 있다. 일 실시예에서, MFCC(mel-frequency cepstral coefficient; MFCC) 특징은 프레임들 사이에 10 ms 간격을 갖는 25 ms의 오디오 프레임에 기초할 수 있다.
음향 모듈(126)은 특징 벡터(132)를 수신하고 특징 벡터(132) 및 모델 모듈(108)로부터 수신된 데이터에 기초하여 우도 점수((likelihood scoring)(134)를 생성한다. 검색 모듈(128)은 우도 점수(134)를 수신하고 이들을 사용하여 스피치 신호(122)에서 어떤 단어들이 발언 되었는지를 인식한다. 검색 모듈(128)은 인식된 단어(104)를 나타내는 신호를 생성한다.
실시예에서, 음향 모델(126) 및/또는 검색 모듈(128)은 전체 또는 부분적으로 은닉 마르코프 모델(hidden Markov model; HMM) 추론으로 구현될 수 있으며, 여기서 은닉 변수들은 마르코프(Markov) 프로세스 모델링 스피치 프로덕션 내의 상태들이고, 인식된 변수는 음향 특징들(예를 들어, 특징 벡터(132))이다. 또한, 검색 모듈(128)은 비터비(viterbi) 검색 알고리즘을 구현할 수 있다. 비터비 알고리즘은 각 시간 단계(예를 들어, 알고리즘의 각 반복)에서 가설 또는 활성 상태의 리스트를 유지한다. 또한 다음 시간 단계에서 모든 도달 가능한 상태의 가능성을 대략적으로 나타낸다.
실시예에서, 활성 상태리스트는 온-칩 메모리(예컨대, 도 3의 메모리(302))에 저장될 수 있다. 활성 상태리스트는 ASR 시스템(100)의 특정 언어, 어휘 및/또는 음향 모델에 대한 가중 유한 상태 변환기(WFST)의 상태 전부 또는 일부를 나타낼 수 있다. 비터비(Viterbi) 알고리즘은 수신된 음성 내의 다음의 가능한 상태를 결정하기 위해 활성 상태리스트 상에서 동작 할 수 있다. 비터비(Viterbi) 알고리즘은 또한 처리 시간 및 전력을 절약하기 위해 가능성이 낮은 가설을 폐기하는 빔 검색(beam search)을 사용할 수 있다.
음향 모델링(Acoustic Modeling)
음향 모델은 분포 집합 p(y|i)에 대한 입력 특징 yt의 가능성을 평가한다. 여기서 i는 묶인 상태의 인덱스이다. 일 실시예에서, 음향 모델(126)은 DNN 모델을 구현한다. 그러나, 다른 모델들은 가우스 혼합 모델(GMM), 반복 네트워크(RNN), 길쌈(convolutional) 네트워크(CNN), 장단기 메모리 셀(long short-term memory cell)(LSTM), 부분 공간 GMM(SGMM) 또는 그 조합을 포함하여 이용될 수 있으나, 이들에 제한되지는 않는다.
도 2를 참조하면, 신경망(NN) 음향 모델의 평가를 위한 구조(200)가 도시된다. 실시예에서, 아키텍처(200)는 DNN을 구현할 수 있다. 표시된 아키텍처는 단일-명령어/다중-데이터(SIMD) 아키텍처이다. 그러나 NN을 평가하기 위해 다른 아키텍처를 선택할 수도 있다.
아키텍처 NN은 메모리(130)로부터 압축된 파라미터 스트림을 수신하는 시퀀서(202)를 포함한다. 디코더(204)는 압축된 파라미터를 디코딩하고, 하나 이상의 실행 유닛(EU)(206)에 가중치 및 바이어스 계수를 전송한다. 각각의 실행 유닛(EU)은 프론트 앤드 모듈(124)로부터 수신된 특징 벡터, 중간 결과 및 하나의 프레임에 대한 우도 출력을 저장하기 위한 로컬 메모리를 포함할 수 있다. 따라서, 전력 소비를 줄이기 위해, 네트워크 파라미터만이 오프-칩(off-chip) 메모리(130)로부터 출력되고, 데이터는 메모리(130)에 기록되지 않는다.
확장성을 제공하기 위해, 아키텍처(200)는 재구성 가능(reconfigurable)할 수 있다. 예를 들어, 실행 유닛(EU)(206)는 4개의 실행 유닛(EU)의 그룹(208)처럼 그룹으로 조직될 수 있다. 각각의 그룹은 SRAM 메모리 그룹(210)에 대한 액세스를 조정할 수 있다. 작은 신경 네트워크에 대해, 각각의 실행 유닛(EU)(206)은 활성화되어 하나의 SRAM에 액세스할 수 있다. 하나의 SRAM(210)을 오버 플로우시키는 더 큰 네트워크의 경우, 모든 다른 실행 유닛(EU)(206)는 디스에이블 될 수 있고 활성 실행 유닛(EU)은 2개의 인접한 SRAM(210)을 액세스 할 수 있다. 유사하게, 2개의 SRAM을 오버 플로우 할 만큼 충분히 큰 신경망에 대해, 4개의 실행 유닛(EU)(206) 중 3개가 디스에이블 될 수 있고 활성 실행 유닛(EU)은 4개의 인접한 SRAM을 액세스하도록 구성된다.
일 실시예에서, ASR 시스템(100)은 4개의 8개 그룹으로 조직화된 32개의 실행 유닛(EU)을 포함할 수 있다. 또한, 각각의 실행 유닛(EU)은 현재 계층의 입력 및 출력 벡터를 저장하는 하나의 단일 포트 SRAM(210)을 가질 수 있다. 이로 인해 메모리 대역폭과 클록 주파수가 감소할 수 있다. 필요한 경우 그룹화 체계를 확장하여 광범위한 신경 네트워크를 처리할 수도 있다.
메모리(130)에 저장된 모델 데이터 구조는 페이지 액세스 페널티를 피하기 위해 단일 모델 순차 판독으로 전체 모델이 액세스될 수 있도록 설계될 수 있고 또한 메모리(130)의 판독으로부터 대역폭 및 전력 소비를 감소시킬 수 있다.
실시예에서, 음향 모델(116)은 압축되고 메모리(130)에 저장될 때 모델이 약 1메가 바이트 크기가 되도록 설계될 수 있다. 이는 충분히 정확한 음향 모델을 제공하면서도 전력 소비를 제한하기 위해 메모리 액세스를 감소시킬 수 있다.
서로 다른 ASR 작업 전반에 걸쳐 에너지 확장성이 약2배 정도 향상되도록 하는 특정 실시예는 모델 설계와 함께 작동한다. 깊은 신경망(NN) 모델을 평가하는데 필요한 시간은 계층 너비(layer width)(노드 수)의 제곱으로 증가하는 아핀(affine) 계층의 행렬/벡터 곱셈에 의해 좌우된다. 또한 최대 계층 너비(layer width)는 가능한 병렬 처리량을 결정한다. 따라서, 전체 계산 시간(및, 제1 근사화 까지의, 에너지)은 네트워크 폭의 큐브(cube)에 따라 증가한다.
회로 영역(circuit area)은 실행 유닛(EU)의 수에 따라 선형적으로 확장될 수 있다. 이것은 면적/전력 트레이드 오프를 만든다. 더 많은 실행 유닛(EU)가 있으면 더 낮은 메모리 대역폭을 허용하고, 클럭 주파수 및 전압의 감소로 인해 코어 전력이 약간 낮아진다. 최악의 레이턴시(latency)는 실행 유닛(EU)의 수에 비례할 수 있는데, 그 이유는 음향 모델이 평가될 때까지 탐색이 진행될 수 없기 때문이다. 32 실행 유닛(EU)의 경우 음향 모델은 총 ASR 면적의 44%를 차지한다. 회로 영역(circuit area)은 각 실행 유닛(EU)에 제공되는 메모리 양에 따라 선형적으로 확장될 수도 있다. 또한, 사용자는 예를 들어 호스트 시스템의 소프트웨어 설정을 통해 음향 모델(126)에 의해 평가된 프레임의 수를 제한할 수 있다. 이렇게 하면 상환된 메모리 대역폭과 런타임은 늘어나지만 대기 시간은 줄어들 수 있다.
시퀀서(SEQUENCER) 및 실행 유닛(EU)
시퀀서(202)와 실행 유닛(EU)(206) 사이의 인터페이스(214)는 FIFO(first-in-first-out) 명령 모듈 및 FIFO 데이터 모듈을 포함할 수 있다. 실시예들에서, 각각의 실행 유닛(EU)은 최소한의 제어 로직을 가지며, 대신에 산술-논리 유닛(ALU)과 유사하게 메모리 내의 데이터에 대해 시퀀서(202)로부터의 명령을 실행한다. 실시예들에서, 각각의 활성 실행 유닛(EU)은 하나의 음향 프레임에 대응하는 벡터를 조작하고 그 벡터를 그것의 로컬 메모리에 저장할 수 있다.
도 2a는 시퀀서(202)(도 2)의 구조의 블록도이다. 시퀀서(202)는 레지스터 파일(218)에 연결된 제어 블록(216), 계층 적 데이터 구조를 구문 분석(parsing)하기 위한 스택(228), SRAM 및 양자화 테이블 SRAM(222)을 포함할 수 있다. 시퀀서(202)는 외부 메모리(130)로부터 압축된 파라미터 스트림(224)을 해석한다. 일부 실시예에서, 이는 클록 사이클 당 1바이트의 레이트로 압축된 파라미터 스트림(224)을 해석한다. 물론, 다른 실시예들은 클럭 사이클마다 다른 바이트 수를 사용할 수 있다.
압축된 파라미터 스트림(224)은 스택(228)을 통해 구문 분석(parse) 될 수 있는 계층적 포맷을 가질 수 있다. 이런 포멧으로 표현되는 깊은 신경망(NN)이 계층 들의 목록이다. 각 계층은 스파스(sparse) 또는 밀집된 폼(form)으로 지정할 수 있다. 두 형식 모두 바이어스 벡터와 양자화된 가중치 행렬을 포함한다. 각 가중치 행렬에는 정확도의 손실없이 가중치의 다른 분포를 설명하는 자체 양자화기가 있다. 파라미터 스트림이 스트리밍될 때, 스트림으로부터의 양자화기 레벨은 양자화 테이블 SRAM(222)에 저장될 수 있다. 고밀도 계층에서 스트림의 다음 구조는 비트-팩(bit-packed) 된 양자화 인덱스 그룹일 수 있다. 시퀀서(202)는 양자화 테이블 SRAM(222)으로부터 각각의 양자화기 레벨을 판독하고 이들을 순차적으로 증가된 인덱스와 함께 하나의 쌍을 이룰 수 있다. 이러한 실시예에서, 시퀀서(sequencer)는 행-주요(row-major) 순서(order)로 행렬/벡터 곱셈을 수행하도록 실행 유닛(EU)에 지시할 수 있다. 스파스(sparse) 층은 압축을 향상시키는 추가 구조를 포함할 수 있으며, 이는 시퀀서(202)에 의해 분석될 수 있다.
도 2b는 실행 유닛(EU)(206)의 아키텍처의 블록도이다. 각 실행 유닛(EU)(206)는 가산, 곱셈, 행렬/벡터 연산 등과 같은 산술 연산을 수행하는 회로를 포함할 수 있다. 실시예에서, 실행 유닛(EU)(206)은 행렬 및 벡터 연산을 위한 곱셈/누산(MAC) 모듈(230)을 포함할 수 있다. MAC 모듈(230)은 24 비트 MAC 일 수 있다. 실행 유닛(EU)(206)은 또한 시그모이드(sigmoid) 모듈(234) 및/또는 정류선형(rectified linear; ReL) 모듈(236)을 포함할 수 있다. 실시예에서, 시그모이드(sigmoid) 모듈(234)은 회로 영역 및 전력을 절감하기 위해 시그모이드(sigmoid) 함수의 근사화를 수행할 수 있다. 제어 논리 모듈(control logic module)(232)은 시퀀서(202)로부터 수신된 명령에 기초하여, 판독할 메모리 위치, 수행할 산술 연산 및 결과를 기록할 메모리 위치를 결정할 수 있다.
검색(Search)
도 3은 검색 모듈(128)(도 1 참조)의 블록도이다. 일 실시예에서, 검색 모듈(128)은 제한된 로컬 메모리를 갖는 비터비(Viterbi) 검색을 수행하도록 구성될 수 있다. 실시예에서, 모듈은 중간에 처리 스테이지(stage)의 파이프 라인을 갖는 2개의 상태 리스트(302)를 갖는다. 어떤 리스트는 프레임 t에 대한 상태 가설을 포함할 수 있고, 다른 리스트는 프레임 t+1에 대한 상태 가설을 포함할 수 있다. 파이프 라인 스테이지는 가변 대기 시간에도 불구하고 각 스테이지가 높은 활용도로 작동하도록 FIFO(도시 생략)로 분리될 수 있다.
발성의 시작에서, 1의 우도를 갖는 시작 상태(즉, 상태 0)가 삽입될 수 있고, 이어서 상기 시작 상태로부터 입실론(ε) 아크를 통해 도달 가능한 WFST(304)의 모든 다른 초기 상태가 삽입될 수 있다.
비터비(Viterbi) 검색의 순방향 패스(forward pass)는 각각의 타임 스텝(프레임)에서 수행될 수 있다. 순방향 패스의 시작에서, 프레임 t+1에 대한 상태 리스트는 비어있을 수 있다. 프레임 t로부터의 각 상태는 판독될 수 있고, 그 상태를 떠나는 아크들(arcs)에 대해 WFST가 질의(queried)될 수 있다. 각 아크의 목적지는 프레임 t+1에 대한 가설이 되는 다른 상태 일 수 있다. 이들 새로운 가설의 우도(likelihood)는 소스 상태에 존재하는 우도, WFST(304)로부터의 천이 확률(transition probability)(아크 웨이트) 및 적절한 묶인 상태 분포(아크 입력 라벨)에 대한 음향 우도(likelihood)를 포함할 수 있다. 비터비(Viterbi) 근사화에 이어서, 각 상태에서 가장 가능성이 높은 아크만 가설을 선택하고 점수를 매기는데 고려되며, 여기서 p(xt+1)는 maxxt p(xt+1 | xt) p(yt+1|xt+1)으로 근사화 되고, 여기서 xt는 시간 t에서의 검색에 의해 고려된 WFST 상태의 인덱스이고, yt는 시간 t에서의 오디오 신호를 나타내는 특징 벡터이다.
순방향 패스는 "비-입실론(non-ε)" 단계(phase)와 "입실론(ε)" 단계(phase)의 두 단계(phase)로 나눌 수 있다. 비-입실론(non-ε) 단계에서, 프레임 t로부터의 소스 상태는 확장될 수 있다. 그러나, 실시예에서, 비-입실론(non-ε)(0이 아닌) 입력 라벨을 갖는 아크(arc)만이 고려된다. 입실론(ε)-입력 아크(arc)는 시간내에 가설을 어드밴스 (advance)시키지 못하게 되어 폐기될 수 있다. 각각의 비-입실론(non-ε) 아크(arc)는 음향 모델로부터의 우도(likelihood)로 점수화 될 수 있으며, 충분히 높은 점수를 갖는 목적지 상태(destination state)는 프레임 t+1에 대한 가설로서 저장될 수 있다. 그러면 입실론(ε) 단계에서 프레임 t+1의 모든 소스 상태가 확장될 수 있다. 입실론(ε)-입력 아크(arc)만 고려되므로 음향 모델은 필요하지 않을 수 있다. 높은 점수의 아크(arc)는 프레임 t+1에 대한 가설로 저장될 수 있다(즉, 시간내 어드밴스(advance) 못함). 결국 단어 시퀀스를 복구하기 위해, 활성 상태의 리스트는 각 순방향 패스 후에(외부 메모리(130)에 대한 "스냅샷(snapshot)"으로) 저장될 수 있다.
도 4를 참조하면, 동일한 세트의 상태(프레임 t+1)가 판독되기 때문에, 무한 반복의 가능성이 있다. WFST는 단지 입실론(ε) 아크(arcs)들 만으로 구성된 모든 경로들이 동일한 전체 가중치를 가지는 단일 입실론(ε) 아크(arcs)들에 의하여 우회(by pass) 되도록 프로세스 된다. 경로(402), 경로(404), 및 경로(406)와 같은 일부 경로들은 비-입실론 출력 라벨(non-ε output labels)을 갖는 다수의 아크들을 통과할 수 있으므로, 도 4에 도시 된 바와 같이 이들 경로를 우회(by pass)하는데 필요한 만큼 다중 단어(multi-word) 출력 심볼들(output symbols)이 생성될 수 있다. 시스템은 프레임 t+1에서 각 상태가 원래 비-입실론(non-ε) 단계(phase) 또는 입실론(ε) 단계(phase)에 추가되었는지 여부를 기록한다. 입실론(ε) 단계(phase)에서 추가된 경우 입실론(ε) 단계(phase) 동안에는 상태가 확장되지 않는다. 이는 프레임 t+1에서 도달 가능한 모든 상태가 비-입실론(non-ε) 단계에서 추가된 상태로부터 단일 입실론(ε) 아크를 통하여 도달될 수 있었기 때문에 가능할 수 있다.
오디오가 특징 벡터를 생성하기 위해 사용되고, 순방향 검색에 의해 특징 벡터가 사용된 후에, 최종 가중치 갱신이 수행될 수 있다. 여기에는 모든 저장된 상태를 읽고 WFST의 최종 가중치를 우도 점수에 추가하는 작업이 포함된다. 실시예에서, 모든 상태가 최종 가중치를 갖는 것은 아니다(또는, 등가적으로 그들의 최종 가중치가 무한할 수도 있음). 일 실시예에서, 상태 중 하나라도 최종 가중치가 있는 경우, 해당 값만 검색의 유효한 종착점으로 간주된다. 어느 상태도 최종 가중치가 없는 경우, 모든 것이 유효한 것으로 간주된다. 가장 가능성이 있는 유효한 상태는 일련의 단어 레이블을 생성하는 역추적(backtrace)하는 종착점으로 사용된다. 이 역추적(backtrace)은, 예를 들어 외부 메모리에 저장된 모든 상태 스냅샷을 역순으로 읽음으로써 구성될 수 있다.
실시예에서, 검색 알고리즘의 행위를 변화시키지 않고 검색 모듈(128)에 효율 특징(efficient feature)을 추가할 수 있다. 메모리 영역 절약을 위해, 2개의 상태 리스트(302)는 "소스"(t) 및 "목적지"(t+1) 프레임에 대한 개별 필드를 갖는 단일 리스트로 통합될 수 있다. 이는 대부분의 상태가 한번에 여러 프레임 동안 활성 상태로 유지되기 때문에 유용할 수 있다. 보다 중요한 최적화가 오프-칩 메모리 대역폭을 감소시키기 위해 이루어질 수 있다. WFST 압축 및 캐싱 기술은 판독 대역폭을 감소시키는데 사용될 수 있고, 단어 래티스(word lattice)는 기록 대역폭을 감소시키는데 사용될 수 있다.
도 3을 다시 참조하면, 검색 모듈(128), 즉 검색 모듈(128) 내의 로컬 메모리 또는 로컬 메모리, 내의 상태리스트(302) 및 아크 패치 캐시(arc fetch cache)(308)를 유지하는 것이 에너지 효율 및 편리성에 이점을 제공한다. 이러한 로컬 메모리를 사용하면 모든 모듈에 연결된 공유 메모리를 피할 수 있는 구조를 구성할 수 있다. 대신에 각 모듈에는 그 모듈에 필요한 정보만을 위한 로컬 메모리를 가지게 된다.
상태리스트(302) 및 아크 패치 캐시(arc fetch cache)(308)를 사용함으로써, 외부 메모리에 대한 의존성은 단지 WFST를 불어오고(fetch) 단어 래티스(306)를 판독/기록하는 두 동작만으로 축소될 수 있다.
실시예에서, 상태리스트(302)는 활성 상태(즉, 음성 인식에 대한 가설)를 저장하는 해시 테이블(hash table) 일 수 있다. 각각의 가정은 특정 WFST 상태에 의해 인덱싱 될 수 있고 단어 래티스 상태(word lattice state)(WL 상태)(310)로 지칭되는 한 쌍(상태, 시간)으로 링크될 수 있다.
압축된 WFST 데이터가 수신되면, 아크 패치 모듈(arc fetch module)(308)에 의해 확장되어 아크들(arcs)의 시퀀스를 생성한다. 확장된 각 아크(arc)에는 목적 상태(destination state), 입력 및 출력 레이블 및 가중치가 있다.
검색이 실행되기 전에, 음향 모델은 각 묶인 상태에 대해 계산된 우도(likelihood)를 갖는다. 점수화 되지 않은 각 아크(arc)를 위하여, 적절한 우도가 수신되고 목적 상태(destination state)의 전체적인 우도를 달성하기 위하여 소스 상태 점수 및 아크 가중치와 결합된다. 점수화 된 아크에는 새로운 가설을 상태 목록에 저장하는데 필요한 충분한 정보가 있다. 그러나, 아크의 점수가 특정 임계 값을 초과하지 않으면, 아크는 프루닝 모듈(pruning module)(312)에 의해 프루닝되고 폐기될 수 있다. 점수화 된 아크가 단어 라벨(즉, 비표시 출력 라벨)을 갖는다면, 단어 래티스(306)로 전송될 수 있다.
도 5를 참조하면, 상태 머신(500)의 도면은 ASR 모듈(110)에 대한 상태 로직을 도시한다. 상태 머신(500)은 프레임 t+1 상태의 판독, 삽입 및 업데이트를 수행하는 동안 순차 스캔(예를 들어, 프레임 t 상태 판독)을 수행할 수 있다. 상태리스트 해시 테이블(hash table)(302)이 확장되면, 모든 프레임 t 상태가 판독되고 처리되도록 스캔이 재시작될 수 있다.
프루닝(pruning) 동작은, 그러한 상태의 관련 가능성이 소정의 임계 값 아래로 떨어지면, 프레임 t + 1로부터 상태를 삭제할 수 있다. 상태 머신(state machine)(500)의 각 패스가 완료됨에 따라, 정보를 프레임 t+1 상태로부터 프레임 t로 이동시키는 어드밴스 동작(advance operation)이 수행된다.
상태가 프레임 t에는 있지만 프레임 t + 1에는없는 경우, 이는 상태가 더 이상 검색에서 활성화되지 않았음을 나타낼 수 있다. 이러한 상태는 삭제될 수 있다.
WFST
WFST는 HMM(Markov Model)의 시간 변화 측면을 포함한다. 실시예에서, WFST는 어휘(lexicon)(각 단어를 구성하는 음소 시퀀스(phoneme sequences)) (lexicon), 언어 모델(단어들 사이의 가능한 천이(transition)), 서브 음향 모델(subphonetic model)(각 음소 내에서 시간에 따라 생성된 다른 소리), 및 문맥 종속성(context dependency)(각 음소를 구현하는 다른 방법)의 4가지 트레이닝 소스(training sources)로 구성된다. 상기 정보는 키(key)/값(value)의 저장소를 사용하여 WFST에 저장될 수 있다. 이때, 키들(keys)은 상태 ID이고, 상기 값은 각 상태에서 나가는 모든 아크(arc)를 포함한다. 아크(arc)는 가설 우도(hypothesis likelihood)의 처리 중에 사용될 수 있는 가중치를 포함할 수 있다. 실시예에서, WFST 데이터는 메모리 절감을 위해 양자화 된 가중치로 트레이닝 될 수 있다.
메모리 액세스 및 대역폭을 줄이기 위해 WFST를 캐싱될 수 있다. 또한 캐시가 압축될 수도 있다. WFST의 각 객체(object)는 다양한 크기를 가질 수 있기 때문에(객체가 각 상태를 벗어날 가능성이 있는 개수가 다르기 때문에), 객체는, 캐시 라인당 하나의 아크(one-arc-per-cache-line) 방식을 사용하는 것이 아니라, 바이트의 가변 길이 시퀀스로 캐시내에 저장될 수 있다. 또한, 캐시는 순환 버퍼 구조를 가질 수 있다. 원형 버퍼는 가변 크기 객체를 허용하도록 구성될 수 있다. 이렇게 하면 캐시 누락과 캐시에서의 데이터 플러시(flush) /축출(evictions)을 줄일 수 있다. 일부 실시예에서, WFST는 적중률을 최대화하고 캐시 누락에 대한 대역폭을 최소화하기 위해 애플리케이션 특정 인코딩 방식으로 인코딩 및/또는 압축될 수 있다.
단어 래티스(word lattice)
도 6을 참조하면, 가설 데이터 검색을 위한 외부 메모리로 판독 및 기록을 감소시키기 위해 ASR 모듈(110)은 온-칩 단어 래티스(word lattice)(600)를 포함할 수 있다. 실시예에서, 비터비(Viterbi) 검색은 WFST의 상태를 통해 가능한 궤적(trajectories)을 식별하는 상태 래티스(state lattice)의 등가물을 생성할 수 있다. 온-칩 메모리는 제한될 수 있기 때문에, 예를 들어 2개의 프레임과 같이 적은 수의 프레임인 경우에만 충분할 수 있다. 따라서, 각각의 순방향 패스 이후에 상태 리스트(state list)는 스냅샷(snapshots)이라고 할 수 있는 외부 메모리에 저장될 수 있다.
스냅샷(snapshots) 크기는 다양 할 수 있지만 일반적으로 10~50 kB이다. 이로 인해 평균 1~5 MB/s의 기록하기가 발생할 수 있다. 디코딩이 끝나면 역추적을 실행하기 위하여 모든 스냅샷이 역순으로 판독되고, 1~5 MB/s의 분할상각되는(amortized) 판독 대역폭이 추가로 발생한다. 상태 스냅샷의 정보 중 적어도 일부는 단어 수준의 가설을 재구성하는 데 필요하지 않을 수 있다.
단어 래티스(word lattice)는 모든 아크(arc)가 정확히 하나의 출력(단어) 레이블을 가질 수 있다는 점에서 상태 래티스(state lattice)와 다르다. 단어 래티스의 각 아크(arc)는 상태 래티스에 있는 하나 이상의 아크(arc)의 체인을 나타낼 수 있으며, 마지막에 출력 레이블이 있다. 단어 래티스는 동일한 검색 공간을 다루는 상태 래티스 보다 작기 때문에 외부 메모리에 대한 스냅 샷이 자주 필요하지 않다. 도 6a는 상태 해시 테이블(state hash table)(604)로부터 단어 메모리(600)의 스냅샷을 외부 메모리에 저장하는 예를 도시한다.
예를 들어, 도 6 및 도 6a에 도시된 것과 같은 데이터 구조가 단어 래티스에 의해 사용될 수 있다. 실시예에서, 단어 래티스는 상태를 저장하기 위한 해시 테이블(hash table) 및 아크(arc)를 저장하기 위한 플랫 어레이로 구성된다. 상태와 아크는 별도의 단어 가설을 나타내는 임의의 상태로 연결되는 여러 개의 아크(arc)가 있을 수 있기 때문에 별도로 저장될 수 있다.
도 7을 참조하면, 집적 회로(IC)(700)는 ASR 모듈(110)의 일부 또는 전부를 구현할 수 있다(도 1 참조). 집적 회로(IC)(700)는 외부 메모리(130)에 대한 액세스를 제공하고 제어하는 메모리 중재기(memory arbitrator)(702), 및 IC의 동작을 제어하는 제어 회로(704)를 포함할 수 있다. 집적 회로(IC)(700)는 또한 음향 모델 모듈(126)과 동일하거나 유사할 수 있고 상술한 음향 모듈 기능을 수행할 수 있는 음향 모델 모듈(706)을 포함할 수 있다. 집적 회로(IC)(700)는 또한 검색 모델(128)과 동일하거나 유사할 수 있고 상술한 검색 모듈 기능을 수행할 수 있는 검색 모듈(708)을 포함할 수 있다. 또한, 프론트 앤드 모듈(front-end module)(710)은 프론트 앤드 모듈(124)과 동일하거나 유사할 수 있으며, 전술한 프론트 앤드 기능을 수행할 수 있다. VAD 회로(712)는 VAD 회로(112)와 동일하거나 유사할 수 있고 전술한 VAD 회로 기능을 수행할 수 있다. 집적회로(IC)(700)는 전통적인 ASR 시스템과 비교하여 상당한 전력 절감을 제공할 수 있으며, 모바일 애플리케이션 또는 저전력 소비가 유리한 다른 애플리케이션에 적합할 수 있다.
ASR 시스템과 관련된 세부 사항은 Michael Price의 논문인 Energy-scalable Speech Recognition Circuits(2016년 6월)(Massachusetts Institute of Technology Libraries에 파일됨)에서 찾아볼 수 있으며, 이 논문의 내용 전체가 여기에 인용된다.
이 특허의 대상인 다양한 개념, 구조 및 기술을 예시하는 바람직한 실시예를 설명하였지만, 당업자에게 이러한 개념, 구조 및 기술을 포함하는 다른 실시예가 사용될 수 있음이 명백할 것이다. 따라서, 특허의 범위는 설명된 실시예들에 한정되어서는 안되며 오히려 이하의 특허 청구 범위의 사상 및 범위에 의해서만 제한되어야 한다. 본원에 인용된 모든 문헌은 그 전문이 본원에 참고로 인용되어 있다.

Claims (21)

  1. 디코더에 있어서,
    하나 이상의 특징 벡터를 계산하기 위한 특징 추출 회로;
    상기 특징 추출 회로로부터 하나 이상의 특징 벡터를 수신하고 상기 하나 이상의 특징 벡터에 하나 이상의 우도 값을 할당하도록 결합된 음향 모델 회로;
    상기 디코더의 천이 상태를 저장하는 메모리; 및
    상기 하나 이상의 특징 벡터에 기초하여 상기 하나 이상의 우도 값에 대응하는 상기 음향 모델 회로로부터의 입력을 수신하고, 제한된 로컬 메모리를 갖는 비터비(Viterbi) 검색을 수행함으로써 상기 음향 모델 회로로부터의 입력에 기초하여 상기 메모리로부터의 천이 상태를 선택하기 위한 검색 회로
    를 포함하고,
    상기 비터비 검색에 의해 생성된 상태 래티스(state lattice)는 오프-칩 메모리 대역폭을 감소시키기 위해 온-칩 단어 래티스로 변환되는 디코더.
  2. 제1항에 있어서,
    상기 메모리는 온-칩 캐시 메모리인 디코더.
  3. 제1 항에 있어서,
    상기 천이 상태는 가중 유한 상태 변환기(WFST)를 포함하는 디코더.
  4. 제1항에 있어서,
    상기 특징 추출 회로, 음향 모델 회로, 메모리 및 검색 회로를 구현하는 집적 회로를 포함하는 디코더.
  5. 제1항에 있어서,
    상기 메모리는 가변 길이 블록들과 동작하도록 구성된 순환 메모리로 제공되는 디코더.
  6. 제1항에 있어서,
    상기 음향 모델 회로는 DNN으로 제공되는 디코더.
  7. 제1항에 있어서,
    상기 특징 추출 회로, 음향 모델 회로 및 검색 회로는 병렬화 기술에 따라 동작하는 디코더.
  8. 제1항에 있어서,
    음성 활동의 검출시 상기 특징 추출 회로, 음향 모델 회로 및 검색 회로 중 하나 이상에 전력을 제공하도록 구성된 음성 활동 검출 회로를 더 포함하는 디코더.
  9. 제1항에 있어서,
    상기 검색 회로는 2개의 상태 리스트를 포함하는 통합된 상태 리스트를 포함하는 디코더.
  10. 삭제
  11. 제1항에 있어서,
    재구성 가능한 신경망 평가자 아키텍처를 더 포함하는 디코더.
  12. 제11항에 있어서,
    상기 재구성 가능한 신경망 평가자 아키텍처는 신경망 크기에 기초하여 사용되거나 또는 사용중지 되도록 구성된 복수의 실행 유닛들을 포함하는 디코더.
  13. 제12항에 있어서,
    상기 실행 유닛들은 신경망 크기에 기초하여 가변 수의 SRAM 메모리에 액세스하도록 구성되는 디코더.
  14. 외부 메모리를 갖는 자동 음성 인식 시스템의 자동 음성 인식 방법에 있어서,
    특징 추출 회로에 의해, 하나 이상의 특징 벡터들을 계산하는 단계;
    비교 가능한 개수의 노드들을 갖는 하나 이상의 학습된 계층들을 포함한 DNN으로 구현된 음향 모델 회로에 의해, 상기 특징 추출 회로로부터 상기 하나 이상의 특징 벡터들을 수신하고, 상기 하나 이상의 특징 벡터들에 하나 이상의 우도 값을 할당하는 단계;
    메모리에 의해, 상기 자동 음성 인식 시스템의 천이 상태를 저장하는 단계- 상기 천이 상태는 WFST(weighted finite state transducer)를 포함함- ;
    검색 회로에 의해, 상기 하나 이상의 특징 벡터들에 기초한 상기 하나 이상의 우도 값에 대응하는 상기 음향 모델 회로로부터 입력을 수신하고, 제한된 로컬 메모리를 갖는 비터비 검색을 수행함으로써 상기 음향 모델 회로로부터의 상기 입력에 기초하여 상기 메모리로부터 천이 상태를 선택하는 단계
    를 포함하고,
    상기 비터비 검색에 의해 생성된 상태 래티스는 오프-칩 메모리 대역폭을 감소시키기 위해 온-칩 단어 래티스로 변환되는
    자동 음성 인식 방법.
  15. 제14항에 있어서,
    6 내지 10 비트의 범위를 갖는 스칼라 양자화기로 각 DNN 계층에 대한 가중치 행렬을 압축하는 단계
    를 더 포함하는
    자동 음성 인식 방법.
  16. 제14항에 있어서,
    상기 DNN은 추가적인 메모리 절감을 위해 스파스 가중치로 트레이닝 되는
    자동 음성 인식 방법.
  17. 제14항에 있어서,
    상기 DNN은 온-칩 메모리 활용도를 최대화하기 위해 비교 가능한 개수의 노드들을 가지는 출력층을 포함하는 모든 계층들과 함께 트레이닝 되는
    자동 음성 인식 방법.
  18. 제14항에 있어서,
    검색 그래프(WFST) 파라미터를 감소시키기 위해 순환 버퍼 아키텍처를 이용한 온-칩 캐싱을 이용하는 단계
    를 더 포함하는
    자동 음성 인식 방법.
  19. 제18항에 있어서,
    상기 순환 버퍼 아키텍처는
    가변 크기의 객체를 캐싱하기 위한 비표준 순환 버퍼 아키텍처를 포함하는
    자동 음성 인식 방법.
  20. 제18항에 있어서,
    히트 레이트를 최대화하고, 캐시 미스에 필요한 대역폭을 최소화하기 위해 어플리케이션-별 인코딩(application-specific encoding)으로 상기 WFST를 압축하는 단계
    를 더 포함하는
    자동 음성 인식 방법.
  21. 제14항에 있어서,
    비터비 검색 알고리즘을 이용하여, 단어 래티스 구조에 온-칩 변환을 수행함으로써 단어 가설을 나타내는 상태의 온-칩 래티스를 구성하는 단계
    를 더 포함하는
    자동 음성 인식 방법.
KR1020187036748A 2016-06-01 2017-05-31 저전력 자동 음성 인식 장치 KR102295161B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020217026536A KR102422848B1 (ko) 2016-06-01 2017-05-31 저전력 자동 음성 인식 장치

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662344081P 2016-06-01 2016-06-01
US62/344,081 2016-06-01
PCT/US2017/035134 WO2017210256A1 (en) 2016-06-01 2017-05-31 Low-power automatic speech recognition device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020217026536A Division KR102422848B1 (ko) 2016-06-01 2017-05-31 저전력 자동 음성 인식 장치

Publications (2)

Publication Number Publication Date
KR20190010607A KR20190010607A (ko) 2019-01-30
KR102295161B1 true KR102295161B1 (ko) 2021-08-27

Family

ID=60479056

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217026536A KR102422848B1 (ko) 2016-06-01 2017-05-31 저전력 자동 음성 인식 장치
KR1020187036748A KR102295161B1 (ko) 2016-06-01 2017-05-31 저전력 자동 음성 인식 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217026536A KR102422848B1 (ko) 2016-06-01 2017-05-31 저전력 자동 음성 인식 장치

Country Status (3)

Country Link
US (2) US11107461B2 (ko)
KR (2) KR102422848B1 (ko)
WO (1) WO2017210256A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515052B2 (en) 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
US11107461B2 (en) * 2016-06-01 2021-08-31 Massachusetts Institute Of Technology Low-power automatic speech recognition device
CN106228976B (zh) * 2016-07-22 2019-05-31 百度在线网络技术(北京)有限公司 语音识别方法和装置
KR102033929B1 (ko) * 2017-06-28 2019-10-18 포항공과대학교 산학협력단 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치
WO2019126569A1 (en) * 2017-12-21 2019-06-27 Synaptics Incorporated Analog voice activity detector systems and methods
CN109036459B (zh) * 2018-08-22 2019-12-27 百度在线网络技术(北京)有限公司 语音端点检测方法、装置、计算机设备、计算机存储介质
JP7407580B2 (ja) 2018-12-06 2024-01-04 シナプティクス インコーポレイテッド システム、及び、方法
EP3966808A1 (en) * 2019-05-10 2022-03-16 Google LLC Using context information with end-to-end models for speech recognition
CN110930996B (zh) * 2019-12-11 2023-10-31 广州市百果园信息技术有限公司 模型训练方法、语音识别方法、装置、存储介质及设备
US11064294B1 (en) 2020-01-10 2021-07-13 Synaptics Incorporated Multiple-source tracking and voice activity detections for planar microphone arrays
US20210326710A1 (en) * 2020-04-16 2021-10-21 Tencent America LLC Neural network model compression
CN111898752A (zh) * 2020-08-03 2020-11-06 乐鑫信息科技(上海)股份有限公司 执行lstm神经网络运算的装置和方法
US11823707B2 (en) 2022-01-10 2023-11-21 Synaptics Incorporated Sensitivity mode for an audio spotting system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160066113A1 (en) * 2014-08-28 2016-03-03 Qualcomm Incorporated Selective enabling of a component by a microphone circuit
US20160093297A1 (en) * 2014-09-26 2016-03-31 Michael E. Deisher Method and apparatus for efficient, low power finite state transducer decoding

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479579A (en) * 1992-09-04 1995-12-26 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Cascaded VLSI neural network architecture for on-line learning
US5790754A (en) 1994-10-21 1998-08-04 Sensory Circuits, Inc. Speech recognition apparatus for consumer electronic applications
US6549945B1 (en) 1999-03-11 2003-04-15 International Business Machines Corporation Multi-purpose WAN driver for DSP resource adapter
KR100547533B1 (ko) 2000-07-13 2006-01-31 아사히 가세이 가부시키가이샤 음성 인식 장치 및 음성 인식 방법
US7209880B1 (en) 2001-03-20 2007-04-24 At&T Corp. Systems and methods for dynamic re-configurable speech recognition
US7069215B1 (en) 2001-07-12 2006-06-27 At&T Corp. Systems and methods for extracting meaning from multimodal inputs using finite-state devices
US7027988B1 (en) 2001-07-20 2006-04-11 At&T Corp. System and method of ε removal of weighted automata and transducers
EP1331630A3 (en) 2002-01-07 2006-12-20 AT&T Corp. Systems and methods for generating weighted finite-state automata representing grammars
GB0420464D0 (en) 2004-09-14 2004-10-20 Zentian Ltd A speech recognition circuit and method
US8352265B1 (en) * 2007-12-24 2013-01-08 Edward Lin Hardware implemented backend search engine for a high-rate speech recognition system
US8463610B1 (en) * 2008-01-18 2013-06-11 Patrick J. Bourke Hardware-implemented scalable modular engine for low-power speech recognition
JP5326892B2 (ja) 2008-12-26 2013-10-30 富士通株式会社 情報処理装置、プログラム、および音響モデルを生成する方法
US8595010B2 (en) 2009-02-05 2013-11-26 Seiko Epson Corporation Program for creating hidden Markov model, information storage medium, system for creating hidden Markov model, speech recognition system, and method of speech recognition
KR101970041B1 (ko) * 2012-09-07 2019-04-18 카네기 멜론 유니버시티 하이브리드 지피유/씨피유(gpu/cpu) 데이터 처리 방법
US9477753B2 (en) * 2013-03-12 2016-10-25 International Business Machines Corporation Classifier-based system combination for spoken term detection
US9153231B1 (en) 2013-03-15 2015-10-06 Amazon Technologies, Inc. Adaptive neural network speech recognition models
US9633669B2 (en) * 2013-09-03 2017-04-25 Amazon Technologies, Inc. Smart circular audio buffer
US10019985B2 (en) * 2013-11-04 2018-07-10 Google Llc Asynchronous optimization for sequence training of neural networks
US9530404B2 (en) * 2014-10-06 2016-12-27 Intel Corporation System and method of automatic speech recognition using on-the-fly word lattice generation with word histories
US10255911B2 (en) * 2014-12-17 2019-04-09 Intel Corporation System and method of automatic speech recognition using parallel processing for weighted finite state transducer-based speech decoding
EP3254456B1 (en) * 2015-02-03 2020-12-30 Dolby Laboratories Licensing Corporation Optimized virtual scene layout for spatial meeting playback
EP3254454B1 (en) * 2015-02-03 2020-12-30 Dolby Laboratories Licensing Corporation Conference searching and playback of search results
US20180190266A1 (en) * 2015-02-03 2018-07-05 Dolby Laboratories Licensing Corporation Conference word cloud
US11076052B2 (en) * 2015-02-03 2021-07-27 Dolby Laboratories Licensing Corporation Selective conference digest
CN107211062B (zh) * 2015-02-03 2020-11-03 杜比实验室特许公司 虚拟声学空间中的音频回放调度
EP3254453B1 (en) * 2015-02-03 2019-05-08 Dolby Laboratories Licensing Corporation Conference segmentation based on conversational dynamics
CN111866022B (zh) * 2015-02-03 2022-08-30 杜比实验室特许公司 感知质量比会议中原始听到的更高的后会议回放系统
US20160284349A1 (en) * 2015-03-26 2016-09-29 Binuraj Ravindran Method and system of environment sensitive automatic speech recognition
US9990917B2 (en) * 2015-04-13 2018-06-05 Intel Corporation Method and system of random access compression of transducer data for automatic speech recognition decoding
US9740678B2 (en) * 2015-06-25 2017-08-22 Intel Corporation Method and system of automatic speech recognition with dynamic vocabularies
US10176802B1 (en) * 2016-03-21 2019-01-08 Amazon Technologies, Inc. Lattice encoding using recurrent neural networks
US11107461B2 (en) * 2016-06-01 2021-08-31 Massachusetts Institute Of Technology Low-power automatic speech recognition device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160066113A1 (en) * 2014-08-28 2016-03-03 Qualcomm Incorporated Selective enabling of a component by a microphone circuit
US20160093297A1 (en) * 2014-09-26 2016-03-31 Michael E. Deisher Method and apparatus for efficient, low power finite state transducer decoding

Also Published As

Publication number Publication date
US11961513B2 (en) 2024-04-16
US20190147856A1 (en) 2019-05-16
WO2017210256A1 (en) 2017-12-07
US20210358484A1 (en) 2021-11-18
KR102422848B1 (ko) 2022-07-20
KR20210109645A (ko) 2021-09-06
KR20190010607A (ko) 2019-01-30
US11107461B2 (en) 2021-08-31

Similar Documents

Publication Publication Date Title
KR102295161B1 (ko) 저전력 자동 음성 인식 장치
US10949736B2 (en) Flexible neural network accelerator and methods therefor
Price et al. A low-power speech recognizer and voice activity detector using deep neural networks
CN107408384B (zh) 部署的端对端语音识别
US20210151032A1 (en) Speech recognition circuit and method
Lee et al. FPGA-based low-power speech recognition with recurrent neural networks
McGraw et al. Personalized speech recognition on mobile devices
Price et al. A 6 mW, 5,000-word real-time speech recognizer using WFST models
Zheng et al. An ultra-low power binarized convolutional neural network-based speech recognition processor with on-chip self-learning
Arısoy et al. Converting neural network language models into back-off language models for efficient decoding in automatic speech recognition
US20050159952A1 (en) Pattern matching for large vocabulary speech recognition with packed distribution and localized trellis access
Lin et al. A 1000-word vocabulary, speaker-independent, continuous live-mode speech recognizer implemented in a single FPGA
US20160093297A1 (en) Method and apparatus for efficient, low power finite state transducer decoding
KR20150065171A (ko) 하이브리드 지피유/씨피유(gpu/cpu) 데이터 처리 방법
JP5249967B2 (ja) 音声認識装置、重みベクトル学習装置、音声認識方法、重みベクトル学習方法、プログラム
Lin et al. A multi-FPGA 10x-real-time high-speed search engine for a 5000-word vocabulary speech recognizer
Price Energy-scalable speech recognition circuits
Price et al. Memory-Efficient Modeling and Search Techniques for Hardware ASR Decoders.
Yazdani et al. LAWS: locality-aware scheme for automatic speech recognition
Price et al. 27.2 A 6mW 5k-word real-time speech recognizer using WFST models
Bourke A low-power hardware architecture for speech recognition search
WO2020179193A1 (ja) 情報処理装置及び情報処理方法
Lin A First Generation Hardware Reference Model for a Speech Recognition Engine
Chandra Speech recognition co-processor
Tsai et al. A 28-nm 1.3-mW Speech-to-Text Accelerator for Edge AI Devices

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant