KR102629385B1 - 바지-인 관련 직접 경로를 지원하는 저전력 보이스 트리거 시스템을 포함하는 애플리케이션 프로세서, 이를 포함하는 전자 장치 및 그 동작 방법 - Google Patents
바지-인 관련 직접 경로를 지원하는 저전력 보이스 트리거 시스템을 포함하는 애플리케이션 프로세서, 이를 포함하는 전자 장치 및 그 동작 방법 Download PDFInfo
- Publication number
- KR102629385B1 KR102629385B1 KR1020180009496A KR20180009496A KR102629385B1 KR 102629385 B1 KR102629385 B1 KR 102629385B1 KR 1020180009496 A KR1020180009496 A KR 1020180009496A KR 20180009496 A KR20180009496 A KR 20180009496A KR 102629385 B1 KR102629385 B1 KR 102629385B1
- Authority
- KR
- South Korea
- Prior art keywords
- audio
- voice trigger
- data
- trigger
- voice
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000012937 correction Methods 0.000 claims abstract description 54
- 238000012545 processing Methods 0.000 claims description 13
- 239000004065 semiconductor Substances 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 30
- 230000006870 function Effects 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- OUXCBPLFCPMLQZ-WOPPDYDQSA-N 4-amino-1-[(2r,3s,4s,5r)-4-hydroxy-5-(hydroxymethyl)-3-methyloxolan-2-yl]-5-iodopyrimidin-2-one Chemical compound C[C@H]1[C@H](O)[C@@H](CO)O[C@H]1N1C(=O)N=C(N)C(I)=C1 OUXCBPLFCPMLQZ-WOPPDYDQSA-N 0.000 description 6
- 230000005236 sound signal Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 241000269319 Squalius cephalus Species 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 230000001976 improved effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 229920000642 polymer Polymers 0.000 description 2
- 230000002618 waking effect Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 101000836337 Homo sapiens Probable helicase senataxin Proteins 0.000 description 1
- 101000615747 Homo sapiens tRNA-splicing endonuclease subunit Sen2 Proteins 0.000 description 1
- 102100027178 Probable helicase senataxin Human genes 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002567 electromyography Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 102100021774 tRNA-splicing endonuclease subunit Sen2 Human genes 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L15/222—Barge in, i.e. overridable guidance for interrupting prompts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/162—Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/165—Management of the audio stream, e.g. setting of volume, audio stream path
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/02—Speech enhancement, e.g. noise reduction or echo cancellation
- G10L21/0208—Noise filtering
- G10L21/0216—Noise filtering characterised by the method used for estimating noise
- G10L21/0232—Processing in the frequency domain
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L2015/088—Word spotting
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/02—Speech enhancement, e.g. noise reduction or echo cancellation
- G10L21/0208—Noise filtering
- G10L2021/02082—Noise filtering the noise being echo, reverberation of the speech
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Acoustics & Sound (AREA)
- General Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Telephone Function (AREA)
- Circuit For Audible Band Transducer (AREA)
- Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
애플리케이션 프로세서는 시스템 버스, 호스트 프로세서, 보이스 트리거 시스템, 오디오 서브 시스템 및 다이렉트 버스를 포함한다. 호스트 프로세서는 시스템 버스에 전기적으로 연결된다. 보이스 트리거 시스템은 시스템 버스에 전기적으로 연결되고 트리거 인터페이스를 통하여 제공되는 트리거 입력 신호에 기초하여 보이스 트리거 동작을 수행하여 트리거 이벤트를 발생한다. 오디오 서브 시스템은 시스템 버스에 전기적으로 연결되고 오디오 인터페이스를 통하여 재생 및 녹음되는 오디오 스트림을 처리한다. 다이렉트 버스는 보이스 트리거 동작을 수행하는 동안에 오디오 재생을 동시에 수행하는 바지-인(barge-in) 상황에서 보이스 트리거 시스템 및 오디오 서브 시스템 사이의 직접 경로를 제공한다. 오디오 인터페이스를 통하여 오디오 재생을 수행하는 동안에, 다이렉트 버스를 이용하여, 마이크를 통하여 수신되는 마이크 데이터에 대한 에코 제거를 수행하여 보정 데이터를 발생하고 보이스 트리거 시스템에 의해 보정 데이터에 기초하여 보이스 트리거 동작을 수행한다.
Description
본 발명은 반도체 집적 회로에 관한 것으로서, 더욱 상세하게는 바지-인(barge-in) 관련 직접 경로를 지원하는 저전력 보이스 트리거 시스템을 포함하는 애플리케이션 프로세서, 상기 애플리케이션 프로세서를 포함하는 전자 장치 및 상기 애플리케이션 프로세서의 동작 방법에 관한 것이다.
최근에 보이스-기반의 지능형 인터페이스가 시장에 도입되었다. 이러한 보이스-기반의 지능형 인터페이스의 일 장점은 사용자들이 디바이스를 다루거나 볼 필요조차도 없이 핸드-프리 방식으로 디바이스와 상호작용할 수 있다는 것이다. 핸드-프리 동작은, 사용자들이 운전을 할 때와 같이 사용자가 디바이스를 물리적으로 다룰 수 없거나 다루어서는 안 되는 경우에서 특히 바람직할 수 있다. 그러나, 상기 보이스-기반의 지능형 인터페이스를 개시하기 위해서, 사용자들은 통상적으로 버튼을 누르거나 터치 스크린 상의 아이콘을 선택해야만 한다. 이러한 접촉식 입력은 보이스-기반의 지능형 인터페이스에 대한 사용자 경험(user experience)을 손상시킨다.
따라서, 점차 전자 장치들이 직접적인 접촉을 통한 입력이 아닌 음성(voice), 소리(sound), 센싱(sensing) 등을 통하여 외부와 통신을 개시하는 방식으로 변하고 있다. 이 때, 전자 장치는 외부에서 언제 전자 장치와 통신을 하고 싶어하는지 계속해서 스스로 모니터링하거나 간헐적으로 모니터링을 하여 상기 보이스-기반의 지능형 인터페이스를 개시하기 위한 트리거 이벤트를 발생하여야 한다. 이와 같이 트리거 이벤트를 발생하기 위한 동작을 보이스 트리거 동작(voice trigger operation)이라 한다.
전자 장치는 상기 보이스 트리거 동작을 수행할 때 파워를 소모하게 되며, 특히 모바일 장치에 있어서 파워 소모량은 그 제품의 가치를 판단하는 척도가 된다. 이러한 보이스 트리거 동작을 수행과 관련하여 전자 장치의 파워 소모를 감소하기 위한 대책이 요구된다.
본 발명의 일 목적은 바지-인(barge-in) 관련 직접 경로를 지원하고 보이스 트리거 동작 및 관련 동작을 저전력으로 수행할 수 있는 보이스 트리거 시스템을 포함하는 애플리케이션 프로세서를 제공하는 것이다.
본 발명의 다른 목적은 상기 애플리케이션 프로세서를 포함하는 전자 장치를 제공하는 것이다.
본 발명의 또 다른 목적은 상기 애플리케이션 프로세서의 동작 방법을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 애플리케이션 프로세서는 시스템 버스, 호스트 프로세서, 보이스 트리거 시스템, 오디오 서브 시스템 및 다이렉트 버스를 포함한다. 상기 호스트 프로세서는 상기 시스템 버스에 전기적으로 연결된다. 상기 보이스 트리거 시스템은 상기 시스템 버스에 전기적으로 연결되고 트리거 인터페이스를 통하여 제공되는 트리거 입력 신호에 기초하여 보이스 트리거 동작을 수행하여 트리거 이벤트를 발생한다. 상기 오디오 서브 시스템은 상기 시스템 버스에 전기적으로 연결되고 오디오 인터페이스를 통하여 재생 및 녹음되는 오디오 스트림을 처리한다. 상기 다이렉트 버스는 상기 보이스 트리거 시스템 및 상기 오디오 서브 시스템을 전기적으로 연결하고, 상기 보이스 트리거 동작을 수행하는 동안에 오디오 재생을 동시에 수행하는 바지-인(barge-in) 상황에서 상기 보이스 트리거 시스템 및 상기 오디오 서브 시스템 사이의 직접 경로를 제공한다. 상기 오디오 인터페이스를 통하여 상기 오디오 재생을 수행하는 동안에, 상기 다이렉트 버스를 이용하여, 마이크를 통하여 수신되는 마이크 데이터에 대한 에코 제거(echo cancellation)를 수행하여 보정 데이터를 발생하고 상기 보이스 트리거 시스템에 의해 상기 보정 데이터에 기초하여 상기 보이스 트리거 동작을 수행한다.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 전자 장치는 애플리케이션 프로세서 및 적어도 하나의 오디오 입출력 장치를 포함한다. 상기 애플리케이션 프로세서는 시스템 버스, 호스트 프로세서, 보이스 트리거 시스템, 오디오 서브 시스템 및 다이렉트 버스를 포함한다. 상기 호스트 프로세서는 상기 시스템 버스에 전기적으로 연결된다. 상기 보이스 트리거 시스템은 상기 시스템 버스에 전기적으로 연결되고 트리거 인터페이스를 통하여 제공되는 트리거 입력 신호에 기초하여 보이스 트리거 동작을 수행하여 트리거 이벤트를 발생한다. 상기 오디오 서브 시스템은 상기 시스템 버스에 전기적으로 연결되고 오디오 인터페이스를 통하여 재생 및 녹음되는 오디오 스트림을 처리한다. 상기 다이렉트 버스는 상기 보이스 트리거 시스템 및 상기 오디오 서브 시스템을 전기적으로 연결하고, 상기 보이스 트리거 동작을 수행하는 동안에 오디오 재생을 동시에 수행하는 바지-인(barge-in) 상황에서 상기 보이스 트리거 시스템 및 상기 오디오 서브 시스템 사이의 직접 경로를 제공한다. 상기 오디오 인터페이스를 통하여 상기 오디오 재생을 수행하는 동안에, 상기 다이렉트 버스를 이용하여, 마이크를 통하여 수신되는 마이크 데이터에 대한 에코 제거(echo cancellation)를 수행하여 보정 데이터를 발생하고 상기 보이스 트리거 시스템에 의해 상기 보정 데이터에 기초하여 상기 보이스 트리거 동작을 수행한다.
상기 또 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 애플리케이션 프로세서의 동작 방법에서, 시스템 버스와, 상기 시스템 버스에 전기적으로 연결되는 호스트 프로세서, 보이스 트리거 시스템, 오디오 서브 시스템 및 다이렉트 버스를 하나의 반도체 칩에 함께 집적하여 형성된 애플리케이션 프로세서에서, 상기 보이스 트리거 시스템에 의해 트리거 인터페이스를 통하여 제공되는 트리거 입력 신호에 기초하여 보이스 트리거 동작을 수행하여 트리거 이벤트를 발생한다. 상기 애플리케이션 프로세서에서, 상기 오디오 서브 시스템에 의해 오디오 인터페이스를 통하여 재생 및 녹음되는 오디오 스트림을 처리한다. 상기 보이스 트리거 동작을 수행하는 동안에 상기 오디오 인터페이스를 통하여 오디오 재생을 동시에 수행하는 바지-인(barge-in) 상황에서, 상기 보이스 트리거 시스템 및 상기 오디오 서브 시스템을 전기적으로 연결하고 상기 바지-인 상황에서 상기 보이스 트리거 시스템 및 상기 오디오 서브 시스템 사이의 직접 경로를 제공하는 상기 다이렉트 버스를 이용하여, 마이크를 통하여 수신되는 마이크 데이터에 대한 에코 제거(echo cancellation)를 수행하여 보정 데이터를 발생한다. 상기 보이스 트리거 시스템에 의해 상기 보정 데이터에 기초하여 상기 보이스 트리거 동작을 수행한다.
상기와 같은 본 발명의 실시예들에 따른 애플리케이션 프로세서, 이를 포함하는 전자 장치 및 그 동작 방법은, 시스템 버스, 호스트 프로세서, 보이스 트리거 시스템, 오디오 서브 시스템 및 다이렉트 버스를 애플리케이션 프로세서에 함께 집적함으로써 보이스 트리거 동작과 관련된 기능을 저전력으로 그리고 효율적으로 구현할 수 있으며, 특히 호스트 프로세서가 액티브 모드에서 수행하여야 할 동작을 온칩 보이스 트리거 시스템을 이용하여 대신 수행함으로써, 애플리케이션 프로세서를 포함하는 전자 장치의 전력 소모를 감소하고 성능을 향상시킬 수 있다.
또한, 바지-인 상황에서 다이렉트 버스를 이용하여 보이스 트리거 시스템 및 오디오 서브 시스템 사이의 직접 경로를 제공하고 다이렉트 버스를 이용하여 에코 제거를 수행함으로써, 에코 제거를 수행하는 동안에 시스템 버스가 유휴 상태로 진입하지 못하거나 유휴 상태에서 웨이크업되는 경우를 방지할 수 있고, 저전력으로 오디오 재생을 수행하면서 보이스 트리거 동작의 인식률을 높일 수 있다.
도 1은 본 발명의 실시예들에 따른 애플리케이션 프로세서의 동작 방법을 나타내는 순서도이다.
도 2a는 본 발명의 실시예들에 따른 전자 장치를 나타내는 블록도이다.
도 2b는 도 2a의 전자 장치의 구현 예를 나타내는 도면이다.
도 3은 본 발명의 실시예들에 따른 애플리케이션 프로세서를 나타내는 블록도이다.
도 4는 본 발명의 실시예들에 따른 애플리케이션 프로세서에 포함되는 에코 제거기를 나타내는 블록도이다.
도 5는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 보이스 트리거 시스템 및 오디오 서브 시스템의 연결 관계를 나타내는 블록도이다.
도 6a는 도 5의 애플리케이션 프로세서에 포함되는 다이렉트 버스의 일 예를 나타내는 도면이다.
도 6b는 도 5의 애플리케이션 프로세서에 포함되는 메일 박스 모듈의 일 예를 나타내는 도면이다.
도 7은 본 발명의 실시예들에 따른 애플리케이션 프로세서의 동작 방법을 나타내는 순서도이다.
도 8은 도 7의 애플리케이션 프로세서의 동작 방법을 설명하기 위한 블록도이다.
도 9는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 동작 방법을 나타내는 순서도이다.
도 10은 도 9의 애플리케이션 프로세서의 동작 방법을 설명하기 위한 블록도이다.
도 11은 본 발명의 실시예들에 따른 애플리케이션 프로세서의 보이스 트리거 시스템 및 오디오 서브 시스템의 연결 관계를 나타내는 블록도이다.
도 12는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 동작 방법을 나타내는 순서도이다.
도 13은 도 12의 애플리케이션 프로세서의 동작 방법을 설명하기 위한 블록도이다.
도 14는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 보이스 트리거 시스템 및 오디오 서브 시스템의 연결 관계를 나타내는 블록도이다.
도 15는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 동작 방법을 나타내는 순서도이다.
도 16은 도 15의 애플리케이션 프로세서의 동작 방법을 설명하기 위한 블록도이다.
도 17은 본 발명의 실시예들에 따른 애플리케이션 프로세서의 보이스 트리거 시스템 및 오디오 서브 시스템의 연결 관계를 나타내는 블록도이다.
도 18a 및 18b는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 파워 도메인을 설명하기 위한 도면들이다.
도 2a는 본 발명의 실시예들에 따른 전자 장치를 나타내는 블록도이다.
도 2b는 도 2a의 전자 장치의 구현 예를 나타내는 도면이다.
도 3은 본 발명의 실시예들에 따른 애플리케이션 프로세서를 나타내는 블록도이다.
도 4는 본 발명의 실시예들에 따른 애플리케이션 프로세서에 포함되는 에코 제거기를 나타내는 블록도이다.
도 5는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 보이스 트리거 시스템 및 오디오 서브 시스템의 연결 관계를 나타내는 블록도이다.
도 6a는 도 5의 애플리케이션 프로세서에 포함되는 다이렉트 버스의 일 예를 나타내는 도면이다.
도 6b는 도 5의 애플리케이션 프로세서에 포함되는 메일 박스 모듈의 일 예를 나타내는 도면이다.
도 7은 본 발명의 실시예들에 따른 애플리케이션 프로세서의 동작 방법을 나타내는 순서도이다.
도 8은 도 7의 애플리케이션 프로세서의 동작 방법을 설명하기 위한 블록도이다.
도 9는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 동작 방법을 나타내는 순서도이다.
도 10은 도 9의 애플리케이션 프로세서의 동작 방법을 설명하기 위한 블록도이다.
도 11은 본 발명의 실시예들에 따른 애플리케이션 프로세서의 보이스 트리거 시스템 및 오디오 서브 시스템의 연결 관계를 나타내는 블록도이다.
도 12는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 동작 방법을 나타내는 순서도이다.
도 13은 도 12의 애플리케이션 프로세서의 동작 방법을 설명하기 위한 블록도이다.
도 14는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 보이스 트리거 시스템 및 오디오 서브 시스템의 연결 관계를 나타내는 블록도이다.
도 15는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 동작 방법을 나타내는 순서도이다.
도 16은 도 15의 애플리케이션 프로세서의 동작 방법을 설명하기 위한 블록도이다.
도 17은 본 발명의 실시예들에 따른 애플리케이션 프로세서의 보이스 트리거 시스템 및 오디오 서브 시스템의 연결 관계를 나타내는 블록도이다.
도 18a 및 18b는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 파워 도메인을 설명하기 위한 도면들이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 애플리케이션 프로세서의 동작 방법을 나타내는 순서도이다.
도 1을 참조하면, 본 발명의 실시예들에 따른 애플리케이션 프로세서의 동작 방법에서는, 시스템 버스와, 상기 시스템 버스에 전기적으로 연결되는 호스트 프로세서, 보이스 트리거 시스템, 오디오 서브 시스템 및 다이렉트 버스를 하나의 반도체 칩에 함께 집적하여 형성된 애플리케이션 프로세서에서, 상기 보이스 트리거 시스템에 의해 트리거 인터페이스를 통하여 제공되는 트리거 입력 신호에 기초하여 보이스 트리거 동작을 수행하여 트리거 이벤트를 발생한다(단계 S100).
상기 애플리케이션 프로세서에서, 상기 오디오 서브 시스템에 의해 오디오 인터페이스를 통하여 재생 및 녹음되는 오디오 스트림을 처리한다(단계 S200). 또한 상기 오디오 서브 시스템에 의해 상기 오디오 인터페이스 및 메모리 장치 사이의 상기 오디오 스트림의 전송을 지원할 수 있다.
본 발명의 보이스 트리거 동작은, 상기 트리거 입력 신호가 특정한 트리거 사운드를 포함하는지를 모니터링하고, 상기 트리거 사운드가 검출된 경우 인터럽트와 같은 트리거 이벤트를 발생하여 음성 인식 모드(즉, 보이스-기반의 지능형 인터페이스)를 개시하는 것을 나타낸다. 상기 음성 인식 모드의 개시는 상기 호스트 프로세서 및/또는 상기 시스템 버스를 상기 슬립(sleep) 모드에서 액티브(active) 모드로 진입시키는 것을 포함할 수 있다. 다시 말하면, 전력 소모 감소를 위해, 상기 호스트 프로세서 및 상기 시스템 버스는 상기 슬립 모드인 상태에서 상기 보이스 트리거 시스템만을 인에이블하여 상기 보이스 트리거 동작을 수행하며, 상기 트리거 이벤트를 발생하여 상기 음성 인식 모드를 개시하는 경우에 상기 호스트 프로세서 및 상기 시스템 버스는 상기 액티브 모드로 진입할 수 있다.
일 실시예에서, 상기 트리거 사운드는 사람에 의해 발성되는 특정한 단어, 구 등을 포함할 수 있다. 다른 실시예에서, 상기 트리거 사운드는 사람의 목소리 이외의 소리, 예를 들어, 휘파람 소리, 손뼉치는 소리, 경보음(siren), 충돌음, 일정 주파수를 초과하는 음파 등과 같은 임의의 사운드를 포함할 수 있다.
도 5 등을 참조하여 후술하는 것처럼, 상기 다이렉트 버스는 상기 보이스 트리거 시스템 및 상기 오디오 서브 시스템을 전기적으로 연결하고, 상기 보이스 트리거 동작을 수행하는 동안에 오디오 재생을 동시에 수행하는 바지-인(barge-in) 상황에서 상기 보이스 트리거 시스템 및 상기 오디오 서브 시스템 사이의 직접 경로를 제공한다. 다시 말하면, 바지-인 상황에서, 시스템 버스를 통하지 않고 다이렉트 버스를 통하여 보이스 트리거 시스템 및 오디오 서브 시스템 사이에서 데이터를 전송할 수 있다.
상기 바지-인 상황에서 상기 다이렉트 버스를 이용하여, 마이크를 통하여 수신되는 마이크 데이터에 대한 에코 제거를 수행하여 보정 데이터를 발생한다(단계 S300). 상기 에코 제거는 도 4 등을 참조하여 후술한다.
상기 보이스 트리거 시스템에 의해 상기 보정 데이터에 기초하여 상기 보이스 트리거 동작을 수행한다(단계 S400).
본 발명의 실시예들에 따른 애플리케이션 프로세서, 이를 포함하는 전자 장치 및 그 동작 방법은, 보이스 트리거 시스템을 애플리케이션 프로세서에 함께 집적함으로써 보이스 트리거 동작과 관련된 기능을 저전력으로 그리고 효율적으로 구현할 수 있으며, 바지-인 상황에서 시스템 버스 및 호스트 프로세서를 이용하지 않고 다이렉트 버스를 이용하여 에코 제거를 수행함으로써, 저전력으로 오디오 재생을 수행하면서 보이스 트리거 동작의 정확도(즉, 인식률)를 향상시킬 수 있다.
도 2a는 본 발명의 실시예들에 따른 전자 장치를 나타내는 블록도이다.
도 2a를 참조하면, 전자 장치(1000)는 애플리케이션 프로세서(AP, application processor)(2000), 메모리 장치(1200), 저장 장치(1300), 복수의 기능 모듈들(1400, 1500, 1600, 1700) 및 전력 관리 장치(PMIC, power management integrated circuit)(1800)를 포함할 수 있다.
애플리케이션 프로세서(2000)는 전자 장치(1000)의 전반적인 동작을 제어할 수 있다. 다시 말하면, 애플리케이션 프로세서(2000)는 메모리 장치(1200), 저장 장치(1300) 및 복수의 기능 모듈들(1400, 1500, 1600, 1700)을 제어할 수 있다. 예를 들어, 애플리케이션 프로세서(2000)는 시스템 온 칩(SoC, system on chip)일 수 있다.
애플리케이션 프로세서(2000)는 시스템 버스(2100), 시스템 버스에 연결되는 중앙 처리 유닛(CPU, central processing unit) 또는 호스트 프로세서(100), 보이스 트리거 시스템(VTS, voice trigger system)(200) 및 오디오 처리 시스템(AUD, audio processing system)(250)을 포함할 수 있다.
보이스 트리거 시스템(200)은 시스템 버스(2100)에 전기적으로 연결되고 트리거 인터페이스를 통하여 제공되는 트리거 입력 신호에 기초하여 보이스 트리거 동작을 수행하여 트리거 이벤트를 발생한다. 후술하는 바와 같이, 오디오 처리 시스템(250)은 적어도 오디오 서브 시스템을 포함할 수 있다. 상기 오디오 서브 시스템은 시스템 버스(2100)에 전기적으로 연결되고 오디오 인터페이스를 통하여 재생 및 녹음되는 오디오 스트림을 처리하고 상기 오디오 인터페이스 및 메모리 장치 사이의 상기 오디오 스트림의 전송을 지원한다. 보이스 트리거 시스템(200) 및 오디오 처리 시스템(250)의 실시예들은 도 3 내지 18b를 참조하여 후술한다.
메모리 장치(1200) 및 저장 장치(1300)는 전자 장치(1000)의 동작에 필요한 인스트럭션, 데이터 등을 저장할 수 있다. 예를 들어, 메모리 장치(1200)는 DRAM(dynamic random access memory) 장치, SRAM(static random access memory) 장치, 모바일 DRAM 장치 등과 같은 휘발성 메모리 장치에 상응할 수 있고, 저장 장치(1300)는 EPROM(erasable programmable read-only memory) 장치, EEPROM(electrically erasable programmable read-only memory) 장치, 플래시 메모리(flash memory) 장치, PRAM(phase change random access memory) 장치, RRAM(resistance random access memory) 장치, NFGM(nano floating gate memory) 장치, PoRAM(polymer random access memory) 장치, MRAM(magnetic random access memory) 장치, FRAM(ferroelectric random access memory) 장치 등과 같은 비휘발성 메모리 장치에 상응할 수 있다. 실시예에 따라서, 저장 장치(1300)는 임베디드 멀티미디어 카드(embedded multimedia card; eMMC), 유니버셜 플래시 스토리지(universal flash storage; UFS), 솔리드 스테이트 드라이브(solid state drive; SSD), 하드 디스크 드라이브(hard disk drive; HDD), 씨디롬(CD-ROM) 등을 더 포함할 수도 있다.
복수의 기능 모듈들(1400, 1500, 1600, 1700)은 전자 장치(1000)의 다양한 기능들을 각각 수행할 수 있다. 예를 들어, 전자 장치(1000)는 통신 기능을 수행하기 위한 통신 모듈(1400)(예를 들어, CDMA(code division multiple access) 모듈, LTE(long term evolution) 모듈, RF(radio frequency) 모듈, UWB(ultra-wideband) 모듈, WLAN(wireless local area network) 모듈, WIMAX(worldwide interoperability for microwave access) 모듈 등), 카메라 기능을 수행하기 위한 카메라 모듈(1500), 표시 기능을 수행하기 위한 디스플레이 모듈, 터치 입력 기능을 수행하기 위한 터치 패널 모듈 등을 포함하는 입출력 모듈(1600), 오디오 신호의 입출력을 위한 마이크 모듈, 스피커 모듈 등을 포함하는 오디오 모듈(1700) 등을 포함할 수 있다. 실시예에 따라서, 전자 장치(1000)는 GPS(global positioning system) 모듈, 자이로스코프(gyroscope) 모듈 등을 더 포함할 수 있다. 다만, 전자 장치(1000)에 구비되는 복수의 기능 모듈들(1400, 1500, 1600, 1700)의 종류는 상기 언급한 모듈들에 한정되지는 않는다.
전력 관리 장치(1800)는 애플리케이션 프로세서(2000), 메모리 장치(1200), 저장 장치(1300) 및 복수의 기능 모듈들(1400, 1500, 1600, 1700)에 각각 구동 전압을 제공할 수 있다.
도 2b는 도 2a의 전자 장치의 구현 예를 나타내는 도면이다.
도 2a의 전자 장치(1000)는 컴퓨터(computer), 노트북(laptop), 셀룰러 폰(cellular), 스마트 폰(smart phone), MP3 플레이어, PDA(personal digital assistant), PMP(portable multimedia player), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(internet of things) 기기, IoE(internet of everything) 기기, e-북(e-book), VR(virtual reality) 기기, AR(augmented reality) 기기 등과 같은 장치일 수 있다. 전자 장치(1000)는 사용자의 직접 입력에 의해 조작되는 장치 또는 인터넷 또는 다른 네트워크 시스템을 이용하여 통신할 수 있는 장치일 수 있다. 도 2b의 전자 장치(1000a)는 도 2a의 전자 장치(1000)의 일 예로서 터치스크린을 가진 모바일 폰 또는 스마트 폰을 도시한 것이다.
도 2b를 참조하면, 전자 장치(1000a)는 전면카메라(2), 스피커(3), 근접센서(4), 조도센서(5), USB(universal serial bus) 인터페이스(6), 전원 버튼(7), 볼륨조절 버튼(8), 디스플레이 및 터치스크린(9), 아이콘(10), 메뉴버튼(11), 홈 버튼(12), 취소버튼(13), 마이크(14), 오디오 출력 인터페이스(15) 및 안테나(16)를 포함할 수 있다.
전면카메라(2)는 터치스크린(9) 방향의 카메라로 영상통화 또는 카메라의 용도로 사용된다. 스피커(3)는 사용자가 터치스크린(9)의 아이콘(10)을 터치하거나 음성으로 입력신호를 보내어 멀티미디어 데이터를 재생할 경우, 전화교환망을 통해 다른 사용자와 통화를 할 경우 또는 전자 장치(1000a)의 조작음이나 알림음을 재생할 경우 오디오 데이터를 출력한다. 근접센서(4)는 사용자가 전화통화를 하기 위해 전자 장치(1000a)를 귀에 가까이 할 경우 전력소모를 줄이면서 의도하지 않은 터치로 인한 잘못된 동작을 방지하기 위해 디스플레이 및 터치 스크린(9)을 오프여부를 제어하기 위한 센서이다. 조도 센서(5)는 전자 장치(1000a) 주변으로부터 입사되는 빛의 양에 따라 디스플레이 및 터치 스크린(9)과 전면카메라(2)의 동작을 제어한다. USB 인터페이스(6)는 전자 장치(1000a)와 외부와 데이터 통신 및 전원공급을 받기 위한 입출력 인터페이스이다.
전원버튼(7)은 전자 장치(1000a)의 전원을 온오프하거나, 디스플레이 및 터치스크린(9)의 화면을 온오프할 수 있고, 볼륨조절 버튼(8)은 스피커(3)의 오디오 출력을 제어할 수 있다. 아이콘(10)은 각각의 기능에 따라 디스플레이 및 터치스크린(9)에 복수의 아이콘들(10)이 위치할 수 있다. 예를 들어, 사용자는 멀티미디어 데이터를 재생하기 위하여 아이콘(10)을 터치할 수 있다.
메뉴버튼(11)은 아이콘들을 포함한 메뉴 및 설정메뉴를 열람하게 할 수 있고, 홈버튼(12)은 디스플레이 및 터치스크린(9)에서 전자 장치(1000a)가 소정의 동작을 수행하고 있는 도중에도 멀티워킹(multi-working)을 위해 홈 화면을 보여줄 수 있다. 취소버튼(13)은 전자 장치(1000a)가 소정의 동작 수행 중에 상기 동작을 취소하고 이전의 화면으로 되돌아 가기 위한 버튼이다.
마이크(14)는 음성통화 또는 음성입력 신호를 위한 입출력 인터페이스이고, 오디오 출력 인터페이스(15), 예를 들면 이어폰 꽂이는 재생되는 멀티미디어 데이터의 오디오 출력을 위한 것이다. 도시하지는 않았으나, 오디오 출력 및 마이크 입력은 블루투스(Bluetooth) 등의 장치를 통해서도 인터페이스 될 수 있다. 안테나(16)는 디지털미디어 방송 서비스의 수신에 이용될 수 있다.
전자 장치(1000a)의 상기 각 구성요소의 구체적인 실시예는 당업자에게 실현 가능한 범위에서 다양하게 구현될 수 있으며, 본 발명의 실시예들에 부합하는 범위 내에서 일부 구성요소는 생략되거나 다른 구성요소로 대체될 수 있다.
도 3은 본 발명의 실시예들에 따른 애플리케이션 프로세서를 나타내는 블록도이다.
도 3을 참조하면, 애플리케이션 프로세서(2000)는 시스템 버스(system bus)(SYSBUS)(2100), 호스트 프로세서(CPU)(100), 보이스 트리거 시스템(200), 오디오 서브 시스템(300) 및 센서 허브(400)를 포함할 수 있다. 오디오 서브 시스템(300) 및 센서 허브(400)는 도 2a의 오디오 처리 시스템(250)에 포함될 수 있다. 실시예들에 따라서, 애플리케이션 프로세서(2000)는 액티브 파워 관리부(active power manager)(APM), 메일 박스 모듈(mailbox module)들(MBXa, MBXb, MBXc) 및 인터럽트 콘트롤러(interrupt controller)(ITRC)를 더 포함할 수 있다.
시스템 버스(2100)는 인터커넥트 장치(interconnect) 또는 백본(backbone)이라 지칭할 수도 있다. 시스템 버스(2100)는 상위 계층의 버스, 하위 계층의 버스 및 이들을 연결하는 브리지를 포함하여 구현될 수 있다. 예를 들어, 시스템 버스(2100)는 AXI(advanced extensible interface), AHB(advanced high-performance bus), APB(advanced peripheral bus)와 같은 AMBA(advanced microcontroller bus architecture), 그 외의 다른 다양한 버스를 포함할 수 있으며, 이들을 연결하는 브리지를 포함할 수 있다. 호스트 프로세서(100)는 시스템 버스(2100)를 통하여 외부의 메모리 장치(1200) 및/또는 저장 장치(1300)에 액세스할 수 있다. 또한, 호스트 프로세서(100)는 시스템 버스(2100)를 통하여 보이스 트리거 시스템(200), 오디오 서브 시스템(300), 센서 허브(400)와 교신할 수 있다.
도 3에는 편의상 하나의 인터럽트 콘트롤러(ITRC)를 도시하였으나, 인터럽트 콘트롤러(ITRC)는 적어도 하나의 GIC(general interrupt controller), 적어도 하나의 VIC(vectored interrupt controller) 등을 포함할 수 있다. 예를 들어, 인터럽트 콘트롤러(ITRC)는 프로그램 가능 인터럽트 콘트롤러(PIC, programmable interrupt controller)일 수 있다. 프로그램 가능 인터럽트 콘트롤러는 일반적으로 복수의 계층으로 이루어지며, 벡터로 표시되는 우선 순위 체제를 가진 콘트롤러일 수 있다. 프로그램 가능 인터럽트 콘트롤러는 주변 장치로부터 인터럽트 신호를 받아 우선 순위 문제를 해결하고, 인터럽트 처리 루틴을 표시하는 포인터 주소와 함께 프로세서, 제어기 등에 인터럽트를 요청할 수 있다.
액티브 파워 관리부(APM)는 애플리케이션 프로세서(2000)의 전원을 관리할 수 있다. 액티브 파워 관리부(APM)는 애플리케이션 프로세서(2000)의 각 영역 또는 각 기능 블록에 공급되는 파워를 관리할 수 있다. 메일 박스 모듈들(MBXa, MBXb, MBXc)은 애플리케이션 프로세서(2000)의 구성 요소들 사이의 데이터 전송 또는 애플리케이션 프로세서(2000)와 외부 장치 사이의 데이터 전송의 동기화를 지원할 수 있다. 메일 박스 모듈들(MBXa, MBXb, MBXc)에 대해서는 도 6b를 참조하여 후술한다.
도 3에서는 보이스 트리거 시스템(200)과 오디오 서브 시스템(300)이 1개의 메일 박스 모듈(MBXc)을 통해 연결되고 보이스 트리거 시스템(200)과 센서 허브(400)가 2개의 메일 박스 모듈들(MBXa, MBXb) 및 액티브 파워 관리부(APM)를 통해 연결되는 것으로 도시하였으나, 실시예에 따라서 보이스 트리거 시스템(200)과 오디오 서브 시스템(300)이 2개의 메일 박스 모듈들 및 액티브 파워 관리부를 통해 연결되거나 보이스 트리거 시스템(200)과 센서 허브(400)가 1개의 메일 박스 모듈을 통해 연결될 수도 있다.
보이스 트리거 시스템(200)은 시스템 버스(2100)에 전기적으로 연결되고 트리거 인터페이스를 통하여 제공되는 트리거 입력 신호에 기초하여 보이스 트리거 동작을 수행할 수 있다. 일 실시예에서, 보이스 트리거 시스템(200)은 디지털 마이크(digital microphone)(DMIC)(40) 및/또는 오디오 코덱(audio coder and decoder)(CODEC)(50)으로부터 상기 트리거 입력 신호를 수신할 수 있다. 즉, 보이스 트리거 시스템(200)의 상기 트리거 인터페이스는 디지털 마이크(40) 및 오디오 코덱(50)에 직접 연결될 수 있다. 오디오 코덱(50)은 디지털 마이크(40) 또는 아날로그 마이크(analog microphone)(AMIC)(61)로부터 입력되는 오디오 신호 및 스피커(62)로 출력되는 오디오 신호에 대한 인코딩 및 디코딩(또는, 아날로그-디지털 변환(ADC, analog-to-digital conversion) 및 디지털-아날로그 변환(DAC, digital-to-analog conversion))을 수행할 수 있다. 디지털 마이크(40)는 전자 장치의 보드 상에 애플리케이션 프로세서(2000)와 함께 실장되는 온-보드 마이크(on-board microphone)일 수 있다. 아날로그 마이크(61) 및 스피커(62)는 오디오 코덱(50)의 단자에 전기적으로 탈부착 가능한 장치일 수 있다.
오디오 서브 시스템(300)은 시스템 버스(2100)에 전기적으로 연결되고 오디오 인터페이스를 통하여 재생 및 녹음되는 오디오 스트림을 처리하고 상기 오디오 인터페이스 및 메모리 장치(1200) 사이의 상기 오디오 스트림의 전송을 지원할 수 있다. 일 실시예에서, 오디오 서브 시스템(300)은 오디오 코덱(50) 및/또는 블루투스 모듈(Bluetooth module)(BTM)(70)과 상기 오디오 스트림을 교환할 수 있다. 다시 말해, 오디오 서브 시스템(300)의 상기 오디오 인터페이스는 오디오 코덱(50) 및 블루투스 모듈(BTM), USB 모듈에 직접 연결될 수 있다. 블루투스 모듈(70)은 블루투스 오디오 모듈(BTAUD)(80)을 통하여 블루투스 마이크(Bluetooth microphone)(BMIC)(81) 및 블루투스 스피커(82)와 연결되며, 블루투스 마이크(81)로부터 오디오 신호를 입력받거나 블루투스 스피커(82)로 오디오 신호를 출력할 수 있다. 실시예에 따라서, 블루투스 모듈(70)은 임의의 블루투스 장치(85)와 직접 연결될 수도 있다. 한편, 도 3에 도시하지는 않았으나, 오디오 서브 시스템(300)은 USB 모듈에 연결되어 상기 USB 모듈과 상기 오디오 스트림을 교환할 수도 있다.
센서 허브(400)는 시스템 버스(2100)에 전기적으로 연결되고 하나 이상의 센서들(SEN1, SEN2)(31, 32)로부터 제공되는 감지 신호를 처리할 수 있다. 예를 들어, 센서 허브(400)는 센서들(31, 32)로부터의 신호들에 기초하여 전자 장치와 관련된 물리적 양을 측정하거나 동작 상태를 검출하고, 측정되거나 검출된 정보를 처리할 수 있다. 예를 들어, 센서들(31, 32)은 모션 센서(motion sensor), 자이로 센서(gyro sensor), 대기압 센서, 자기 센서, 가속도 센서, 그립(grip) 센서, 근접 센서, 생체 센서, 온도/습도 센서, 조도(illumination) 센서, 자외선(ultra violet, UV) 센서, 전기 코(electro-nose, E-nose) 센서, 근전도(electromyography, EMG) 센서, 뇌파도(electroencephalogram, EEG) 센서, 심전도(electrocardiogram, ECG) 센서, 적외선(infrared, IR) 센서, 홍채 센서, 지문 센서 중 적어도 하나를 포함할 수 있으며, 이에 한정되는 것은 아니다.
일 실시예에서, 도 3에 도시된 바와 같이, 시스템 버스(2100), 보이스 트리거 시스템(200), 오디오 서브 시스템(300) 및 센서 허브(400)는 하나의 반도체 칩으로서 애플리케이션 프로세서(2000)에 함께 집적될 수 있다. 다른 실시예에서, 시스템 버스(2100), 보이스 트리거 시스템(200) 및 오디오 서브 시스템(300)은 하나의 반도체 칩으로서 애플리케이션 프로세서(2000)에 함께 집적되고, 센서 허브(400)는 애플리케이션 프로세서(2000)의 외부에 구현될 수 있다. 한편, 도 5를 참조하여 후술하는 다이렉트 버스(500) 또한 애플리케이션 프로세서(2000)에 함께 집적될 수 있다.
도 4는 본 발명의 실시예들에 따른 애플리케이션 프로세서에 포함되는 에코 제거기를 나타내는 블록도이다.
도 4를 참조하면, 에코 제거기(echo canceler 또는 acoustic echo canceler)(95)는 필터(filter)(96) 및 에코 억제기(echo suppressor)(97)를 포함할 수 있다.
오디오 서브 시스템(300)으로부터 제공되는 오디오 출력 신호(x(t))는 스피커(98)를 통해 출력되며, 사용자에게 제공될 수 있다. 또한, 마이크(99)는 오디오 입력 신호(y(t))를 수신할 수 있다. 도시하지는 않았지만, 오디오 출력 신호(x(t))는 디지털-아날로그 변환되어 스피커(98)를 통해 출력될 수 있고, 오디오 입력 신호(y(t))는 마이크(99)로부터 수신된 후에 아날로그-디지털 변환될 수 있다.
마이크(99)에 의해 수신된 오디오 입력 신호(y(t))는 근단(near-end) 신호(v(t)) 및 에코 신호(s(t))를 포함할 수 있다. 근단 신호(v(t))는 마이크(99)가 수신하기를 사용자가 의도하는 신호이며, 사용자가 원하는(desired) 신호 또는 주(primary) 신호라고 지칭될 수도 있다. 에코 신호(s(t))는 스피커(98)로부터의 출력에 의해 발생하는 에코 성분을 나타내는 신호이다. 도시하지는 않았지만, 오디오 입력 신호(y(t))는 노이즈를 더 포함할 수도 있다. 상기 에코 성분 및 상기 노이즈는 근단 신호(v(t))에 대한 간섭으로 작용하며, 이를 제거 또는 억제할 필요가 있다.
일 실시예에서, 에코 제거를 수행하기 위해 더블토크 검출(doubletalk detection), 스텝 사이즈 제어(step-size control) 등과 같은 알고리즘이 이용될 수 있다.
필터(96)는 오디오 출력 신호(x(t)) 및 오디오 입력 신호(y(t))를 기초로 오디오 입력 신호(y(t))에 포함되는 에코 신호(s(t))를 추정하여 추정 에코 신호(s'(t))를 발생할 수 있다. 다시 말하면, 필터(96)는 오디오 입력 신호(y(t)) 내의 상기 에코 성분 및 상기 에코 성분을 유발하는 에코 경로를 모델링하며, 상기 에코 경로가 어떻게 오디오 출력 신호(x(t))의 일부를 상기 에코 성분으로 변경하는지를 추정할 수 있다. 오디오 출력 신호(x(t))는 참조(reference) 신호로서 이용될 수 있다.
상기 에코 경로는, 스피커(98)로부터 마이크(99)까지 원단(far-end) 신호가 이동하는 음향 경로의 효과를 나타낸다. 상기 원단 신호는 스피커(98)로부터 마이크(99)까지 바로 이동할 수도 있고, 또는 외부 환경의 다양한 표면으로부터 반사될 수도 있다. 스피커(98)로부터 출력되는 상기 원단 신호가 지나가는 상기 에코 경로는, 시간에 걸쳐 변할 수 있는 주파수 및 위상 응답을 갖는 시스템으로 간주될 수도 있다.
일 실시예에서, 상기 에코 경로는 임의의 선형 필터(예를 들면, 유한 임펄스 응답(finite impulse response; FIR) 필터 또는 무한 임펄스 응답(infinite impulse response; IIR) 필터)를 활용하여 모델링될 수 있다. 예를 들어, 상기 에코 경로의 추정치는 (N+1)(N은 자연수)개의 값을 갖는 벡터일 수 있고, 필터(96)는 시간에서 유한한 길이를 가지는 N차 필터로 구현될 수 있다.
일 실시예에서, 상기 에코 경로의 추정치는 명시적으로 계산될 필요는 없으며, 최소 제곱 평균(Least Mean Squares; LMS), 정규 최소 제곱 평균(Normalized Least Mean Squares; NLMS), 고속 인접 투사(Fast Affine Projection; FAP) 및 순환 최소 제곱(Recursive Least Squares; RLS)과 같은 확률적 기울기 알고리즘(stochastic gradient algorithm)으로부터 획득되는 필터 계수로서 표현될 수 있다.
일 실시예에서, 상기 에코 경로의 추정치는 시간에 따라 계속적으로 업데이트될 수 있다.
에코 억제기(97)는 추정 에코 신호(s'(t)) 및 오디오 입력 신호(y(t))에 기초하여 추정 근단 신호(v'(t))를 발생할 수 있다. 예를 들어, 에코 억제기(97)는 추정 에코 신호(s'(t))를 기초로 오디오 입력 신호(y(t))에 에코 억제를 적용하여 추정 근단 신호(v'(t))를 발생할 수 있다. 상기 에코 경로가 정확하게 추정될수록, 추정 근단 신호(v'(t))는 근단 신호(v(t))에 가까워질 수 있다.
일 실시예에서, 에코 억제기(97)는 에코 감산기(subtractor)의 형태로 구현될 수 있다. 예를 들어, 상기 에코 감산기는 오디오 입력 신호(y(t))에서 추정 에코 신호(s'(t))를 감산하여 추정 근단 신호(v'(t))를 발생할 수 있다.
에코 제거기(95)의 상기 각 구성요소의 구체적인 실시예는 당업자에게 실현 가능한 범위에서 다양하게 구현될 수 있으며, 본 발명의 실시예들에 부합하는 범위 내에서 일부 구성요소는 생략/추가되거나 다른 구성요소로 대체될 수 있다. 또한, 실시예에 따라서 에코 제거기(95)의 일부 또는 전부는 소프트웨어(즉, 프로그램)의 형태로 구현되어 저장 장치에 저장될 수도 있고, 하드웨어의 형태로 구현될 수도 있다.
도 5는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 보이스 트리거 시스템 및 오디오 서브 시스템의 연결 관계를 나타내는 블록도이다. 도 5에는 편의상 도 3에 도시된 호스트 프로세서(100) 등은 그 도시를 생략하였다. 이하 도 3과 중복되는 설명은 생략될 수 있다.
도 5를 참조하면, 애플리케이션 프로세서(2001)는 시스템 버스(2100), 보이스 트리거 시스템(201), 오디오 서브 시스템(301), 다이렉트 버스(500) 및 메일 박스 모듈(MBX)을 포함할 수 있다. 오디오 서브 시스템(301)은 도 2a의 오디오 처리 시스템(250)에 포함될 수 있다.
보이스 트리거 시스템(201)은 시스템 버스(2100)에 전기적으로 연결되고 트리거 인터페이스(TIF)를 통하여 제공되는 트리거 입력 신호(SDMIC, SAMIC)에 기초하여 보이스 트리거 동작을 수행할 수 있다. 보이스 트리거 시스템(201)은 디지털 마이크(40)로부터 트리거 입력 신호(SDMIC)를 수신하거나 오디오 코덱(50)으로부터 트리거 입력 신호(SAMIC)를 수신할 수 있다. 신호 전송의 동기화를 위해 마이크 클록 신호(MICCLK)가 보이스 트리거 시스템(201), 디지털 마이크(40) 및 오디오 코덱(50) 사이에서 전송될 수 있다. 트리거 입력 신호(SDMIC, SAMIC) 및 마이크 클록 신호(MICCLK)는 패드들(PD11, PD12, PD13)을 통하여 전송될 수 있다. 패드들(PD11, PD12, PD13)은 사용되지 않는 다른 패드들로부터 간섭을 받지 않도록 설정될 수 있다.
오디오 서브 시스템(301)은 시스템 버스(2100)에 전기적으로 연결되고 오디오 인터페이스(AIF)를 통하여 재생 및 녹음되는 오디오 스트림을 처리하고 상기 오디오 인터페이스 및 메모리 장치(1200) 사이의 상기 오디오 스트림의 전송을 지원할 수 있다. 일 실시예에서, 오디오 서브 시스템(301)은 오디오 코덱(50)과 상기 오디오 스트림을 교환할 수 있다. 오디오 서브 시스템(301)은 오디오 입력 패드(PD21)를 통하여 오디오 코덱(50)으로부터 오디오 입력 신호(SDI)를 수신하고 오디오 출력 패드(PD22)를 통하여 오디오 출력 신호(SDO)를 오디오 코덱(50)으로 전송할 수 있다.
보이스 트리거 시스템(201)은 트리거 인터페이스 회로(VTS interface circuit)(IFV)(211), 래퍼(wrapper)(WRPP)(221), 트리거 메모리(VTS memory)(MEMV)(231) 및 트리거 프로세서(VTS processor)(PRCV)(241)를 포함할 수 있다.
트리거 인터페이스 회로(211)는 패드들(PD11, PD12, PD13)과 함께 트리거 인터페이스(TIF)를 형성하고 디지털 마이크(40) 또는 오디오 코덱(50)으로부터 제공되는 트리거 입력 신호(SDMIC, SAMIC)를 샘플링하고 샘플링된 데이터를 변환할 수 있다. 래퍼(221)는 트리거 인터페이스 회로(211)에 의해 변환된 데이터를 트리거 메모리(231)에 저장할 수 있다. 래퍼(221)는 트리거 메모리(231)에 일정 데이터를 저장하면 트리거 프로세서(241)로 인터럽트를 발생하고, 인터럽트 발생시 트리거 프로세서(241)는 트리거 메모리(231)에 저장된 데이터에 기초하여 상기 보이스 트리거 동작을 수행할 수 있다.
일 실시예에서, 보이스 트리거 시스템(201)은 펄스 밀도 변조(PDM, pulse density modulation) 신호를 트리거 입력 신호(SDMIC, SAMIC)로서 수신하고, 트리거 인터페이스 회로(211)는 수신된 PDM 신호를 펄스 코드 변조(PCM, pulse code modulation) 데이터로 변환하고, 래퍼(221)는 PCM 데이터를 트리거 메모리(231)에 저장할 수 있다. 래퍼(221)는 직접 메모리 액세스 콘트롤러로 구현될 수도 있다.
오디오 서브 시스템(301)은 오디오 인터페이스 회로(audio interface circuit)(IFA)(311), 직접 메모리 액세스 콘트롤러(direct access memory controller)(DMA)(321), 오디오 메모리(audio memory)(MEMA)(331) 및 오디오 프로세서(audio processor)(PRCA)(341)를 포함할 수 있다.
오디오 인터페이스 회로(311)는 패드들(PD21, PD22)과 함께 오디오 인터페이스(AIF)를 형성하고 오디오 입력 신호(SDI) 및 오디오 출력 신호(SDO)를 통하여 상기 오디오 스트림을 송수신할 수 있다. 오디오 메모리(331)는 오디오 스트림의 데이터를 저장하고, 직접 메모리 액세스 콘트롤러(321)는 오디오 메모리(331)의 액세스, 즉 오디오 메모리(331)로부터의 데이터 독출 및 오디오 메모리(331)로의 데이터 기입을 제어할 수 있다. 오디오 프로세서(341)는 오디오 메모리(331)에 저장된 데이터를 처리할 수 있다.
일 실시예에서, 오디오 서브 시스템(301)의 오디오 프로세서(341)는 에코 제거기(AEC)(701)를 포함할 수 있다. 에코 제거기(701)는 도 4의 에코 제거기(95)일 수 있다.
일 실시예에서, 오디오 인터페이스 회로(311)는 I2S 또는 IIS (Inter-IC Sound, Integrated Interchip Sound) 표준에 부합할 수 있다. 도 5에는 편의상 클록 신호에 대한 도시를 생략하였으나, 오디오 인터페이스 회로(311)는 I2S 표준에 따른 클록 신호에 기초하여 동작할 수 있다. 실시예에 따라서, 오디오 인터페이스 회로(311)는 디지털 마이크(40) 및/또는 오디오 코덱(50)에 직접 연결될 수도 있다.
다이렉트 버스(500)는 보이스 트리거 시스템(201) 및 오디오 서브 시스템(301)을 전기적으로 연결하고, 바지-인(barge-in) 상황에서 보이스 트리거 시스템(201) 및 오디오 서브 시스템(301) 사이의 직접 경로를 제공한다. 상기 바지-인 상황 또는 환경은, 보이스 트리거 시스템(201)에 의해 상기 보이스 트리거 동작을 수행하는 동안에 오디오 서브 시스템(301)에 의한 오디오 재생을 동시에 수행하는 것, 즉 사운드 입력과 사운드 출력이 동시에 수행되는 것을 나타낸다. 다이렉트 버스(500)에 대해서는 도 6a를 참조하여 후술한다.
상기 바지-인 상황에서 상기 보이스 트리거 동작의 인식률을 높이기 위해 에코 제거를 수행할 필요가 있다. 본 발명에서는 상기 오디오 인터페이스를 통하여 상기 오디오 재생을 수행하는 동안에, 다이렉트 버스(500)를 이용하여, 마이크(예를 들어, 디지털 마이크(40) 또는 아날로그 마이크(61))를 통하여 수신되는 마이크 데이터에 대한 에코 제거를 수행하여 보정 데이터를 발생하고, 보이스 트리거 시스템(201)에 의해 상기 보정 데이터에 기초하여 상기 보이스 트리거 동작을 수행한다. 오디오 서브 시스템(301)의 에코 제거기(701)에 의해 상기 에코 제거가 수행될 수 있다.
또한, 애플리케이션 프로세서(2001)는 보이스 트리거 시스템(201) 및 오디오 서브 시스템(301) 사이의 데이터 전송의 동기화를 지원하는 메일 박스 모듈(MBX)을 더 포함할 수 있다.
애플리케이션 프로세서(2001)는 다이렉트 버스(500) 및 메일 박스 모듈(MBX)을 이용하여 시스템 버스(2100)와 독립적으로 보이스 트리거 시스템(201) 및 오디오 서브 시스템(301) 사이의 데이터 전송을 수행할 수 있다. 이에 따라, 상기 오디오 인터페이스를 통하여 상기 오디오 재생을 수행하는 동안에, 그리고 상기 에코 제거를 수행하는 동안에 호스트 프로세서(100) 및 시스템 버스(2100)는 상기 보이스 트리거 동작을 위해 액티브 모드로 전환함이 없이 슬립 모드를 유지할 수 있다.
도 6a는 도 5의 애플리케이션 프로세서에 포함되는 다이렉트 버스의 일 예를 나타내는 도면이다.
도 5 및 6a를 참조하면, 다이렉트 버스(500a)는 버스 매트릭스(510), 제1 직접 경로(①) 및 제2 직접 경로(②)를 포함할 수 있다.
상술한 것처럼, 상기 바지-인 상황에서 에코 제거를 수행하기 위해, 다이렉트 버스(500a)는 보이스 트리거 시스템(201) 및 오디오 서브 시스템(301) 사이의 직접 경로를 제공할 수 있다. 상기 직접 경로는 보이스 트리거 시스템(201)으로부터 오디오 서브 시스템(301)으로의 제1 데이터 전송을 수행하는 제1 직접 경로(①), 및 오디오 서브 시스템(301)으로부터 보이스 트리거 시스템(201)으로의 제2 데이터 전송을 수행하는 제2 직접 경로(②)를 포함할 수 있다.
오디오 서브 시스템(301)은 보이스 트리거 시스템(201)에 저장된 데이터가 필요한 경우에 제1 직접 경로(①)를 이용할 수 있다. 구체적으로, 오디오 프로세서(341)는 데이터 요청(REQ FROM PRCA)을 발행하고, 데이터 요청(REQ FROM PRCA)에 기초하여 트리거 메모리(231)에 액세스(ACC TO MEMV)하며, 트리거 메모리(231)에 저장된 데이터가 제1 직접 경로(①)를 통하여 오디오 서브 시스템(301) 및 오디오 프로세서(341)에 전달될 수 있다.
보이스 트리거 시스템(201)은 오디오 서브 시스템(301)에 저장된 데이터가 필요한 경우에 제2 직접 경로(②)를 이용할 수 있다. 구체적으로, 트리거 프로세서(241)는 데이터 요청(REQ FROM PRCV)을 발행하고, 데이터 요청(REQ FROM PRCV)에 기초하여 오디오 메모리(331)에 액세스(ACC TO MEMA)하며, 오디오 메모리(331)에 저장된 데이터가 제2 직접 경로(②)를 통하여 보이스 트리거 시스템(201) 및 트리거 프로세서(241)에 전달될 수 있다.
상술한 데이터 요청(REQ FROM PRCV, REQ FROM PRCA) 및 액세스(ACC TO MEMV, ACC TO MEMA)는 버스 매트릭스(510)에 의해 제어될 수 있다.
버스 매트릭스(510), 제1 및 제2 직접 경로들(①, ②)에 기초하여, 보이스 트리거 시스템(201) 및 오디오 서브 시스템(301)은 시스템 버스(2100)를 통하지 않고 직접 데이터를 주고받을 수 있다. 따라서, 에코 제거 수행 시에 시스템 버스(2100)가 유휴(idle) 상태로 진입하지 못하거나 유휴 상태에서 웨이크업(wake up)되는 경우를 방지할 수 있고, 저전력으로 오디오 재생을 수행하면서 보이스 트리거 동작의 인식률을 높일 수 있다.
도 6b는 도 5의 애플리케이션 프로세서에 포함되는 메일 박스 모듈의 일 예를 나타내는 도면이다.
도 6b를 참조하면, 메일 박스 모듈(900)은 인터페이스(910), 메시지 박스(920), 복수의 레지스터들(INTGR0, INTCR0, INTMR0, INTSR0, INTMSR0)을 포함하는 제1 레지스터 회로(930) 및 복수의 레지스터들(INTGR1, INTCR1, INTMR1, INTSR1, INTMSR1)을 포함하는 제2 레지스터 회로(940)를 포함할 수 있다. 도 6b에는 메일 박스 모듈(900)이 인터페이스(910)(예를 들어, APB 인터페이스)를 통하여 시스템 버스(2100)의 브리지, 예를 들어, AHB-APB 브리지(AHB2APB)에 연결되고, 메시지 박스(920)가 6*32 비트의 공유된 레지스터로 구현된 예가 도시되어 있으나, 이에 한정되는 것은 아니다. 인터페이스(910)의 타입, 메시지 박스(920)의 레지스터의 개수 및 비트수 등은 다양하게 변경될 수 있다. 제1 레지스터 회로(930)는 트리거 프로세서(PRCV)로의 인터럽트(IRQ TO PRCV)를 발행하고 제2 레지스터 회로(940)는 오디오 프로세서(PRCA)로의 인터럽트(IRQ TO PRCA)를 발행한다. 이러한 메일 박스 모듈(900)을 이용하여 보이스 트리거 시스템(201) 및 오디오 서브 시스템(301) 사이의 데이터 전송을 동기화할 수 있다.
트리거 프로세서(PRCV) 및 오디오 프로세서(PRCA) 중 하나가 메시지 박스(920)에 메시지를 기입한 후 인터럽트(IRQ)를 전송하는 방식으로 쌍방향 통신을 할 수 있으며, 폴링(polling) 방법 등을 통하여 적절하게 보이스 트리거 시스템(201) 및 오디오 서브 시스템(301) 사이의 데이터 전송의 동기화를 구현할 수 있다.
도 7은 본 발명의 실시예들에 따른 애플리케이션 프로세서의 동작 방법을 나타내는 순서도이다. 도 8은 도 7의 애플리케이션 프로세서의 동작 방법을 설명하기 위한 블록도이다.
도 7 및 8을 참조하면, 오디오 서브 시스템(ASS)에 의해 오디오 출력 신호(SDO)에 대응하는 오디오 출력 데이터에 기초하여 오디오 인터페이스(AIF)의 출력 패드를 통하여 오디오 재생을 수행하는 동안에, 보이스 트리거 시스템(VTS)은 트리거 인터페이스(TIF)를 통하여 트리거 입력 신호(SMIC)를 수신할 수 있다(단계 S510).
보이스 트리거 시스템(VTS)은 트리거 입력 신호(SMIC)의 샘플 데이터(DSM)를 오디오 서브 시스템(ASS)에 전송할 수 있다(단계 S520). 예를 들어, 샘플 데이터(DSM)는 시스템 버스(2100)를 통하지 않고 다이렉트 버스(500)에 포함되는 제1 직접 경로(예를 들어, 도 6a의 ①)를 통하여 전송될 수 있다.
오디오 서브 시스템(ASS)에 포함되는 에코 제거기(AEC)는 오디오 출력 신호(SDO)에 대응하는 상기 오디오 출력 데이터에 기초하여 샘플 데이터(DSM)에 대한 에코 제거를 수행하여 보정 샘플 데이터(CDSM)를 발생할 수 있다(단계 S530). 상기 오디오 출력 데이터는 참조 신호로서 이용되고, 샘플 데이터(DSM)는 상기 에코 제거를 위한 수신 신호로서 이용될 수 있다.
오디오 서브 시스템(ASS)은 보정 샘플 데이터(CDSM)를 보이스 트리거 시스템(VTS)에 전송할 수 있다(단계 S540). 예를 들어, 보정 샘플 데이터(CDSM)는 시스템 버스(2100)를 통하지 않고 다이렉트 버스(500)에 포함되는 제2 직접 경로(예를 들어, 도 6a의 ②)를 통하여 전송될 수 있다.
보이스 트리거 시스템(VTS)은 보정 샘플 데이터(CDSM)에 기초하여 상기 보이스 트리거 동작을 수행할 수 있다(단계 S550). 에코 제거된 보정 샘플 데이터(CDSM)에 기초하여 상기 보이스 트리거 동작을 수행함으로써, 상기 보이스 트리거 동작의 인식률을 높일 수 있다.
도 9는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 동작 방법을 나타내는 순서도이다. 도 10은 도 9의 애플리케이션 프로세서의 동작 방법을 설명하기 위한 블록도이다.
도 9 및 10을 참조하면, 오디오 서브 시스템(ASS)에 의해 오디오 출력 신호(SDO)에 대응하는 오디오 출력 데이터에 기초하여 오디오 인터페이스(AIF)의 출력 패드를 통하여 오디오 재생을 수행하는 동안에, 오디오 서브 시스템(ASS)은 오디오 인터페이스(AIF)의 입력 패드를 통하여 오디오 입력 신호(SDI)를 수신할 수 있다(단계 S610).
오디오 서브 시스템(ASS)에 포함되는 에코 제거기(AEC)는 오디오 출력 신호(SDO)에 대응하는 상기 오디오 출력 데이터에 기초하여 오디오 입력 신호(SDI)에 대응하는 오디오 입력 데이터에 대한 에코 제거를 수행하여 보정 오디오 입력 데이터(CSDI)를 발생할 수 있다(단계 S620). 상기 오디오 출력 데이터는 참조 신호로서 이용되고, 상기 오디오 입력 데이터는 상기 에코 제거를 위한 수신 신호로서 이용될 수 있다.
오디오 서브 시스템(ASS)은 보정 오디오 입력 데이터(CSDI)를 보이스 트리거 시스템(VTS)에 전송할 수 있다(단계 S630). 예를 들어, 보정 오디오 입력 데이터(CSDI)는 시스템 버스(2100)를 통하지 않고 다이렉트 버스(500)에 포함되는 제2 직접 경로(도 6a의 ②)를 통하여 전송될 수 있다.
보이스 트리거 시스템(VTS)은 보정 오디오 입력 데이터(CSDI)에 기초하여 상기 보이스 트리거 동작을 수행할 수 있다(단계 S640). 에코 제거된 보정 오디오 입력 데이터(CSDI)에 기초하여 상기 보이스 트리거 동작을 수행함으로써, 상기 보이스 트리거 동작의 인식률을 높일 수 있다.
일 실시예에서, 상기 오디오 재생이 수행되는 동안 트리거 인터페이스(TIF)는 디스에이블될 수 있다. 다시 말하면, 트리거 인터페이스(TIF)는 트리거 입력 신호(SMIC)를 수신하지 않을 수 있으며, 보이스 트리거 시스템(VTS)은 트리거 입력 신호(SMIC) 대신에 에코 제거된 보정 오디오 입력 데이터(CSDI)를 이용하여 상기 보이스 트리거 동작을 수행할 수 있다.
도 11은 본 발명의 실시예들에 따른 애플리케이션 프로세서의 보이스 트리거 시스템 및 오디오 서브 시스템의 연결 관계를 나타내는 블록도이다. 도 11에는 편의상 도 3에 도시된 호스트 프로세서(100) 등은 그 도시를 생략하였다. 이하 도 3 및 5와 중복되는 설명은 생략될 수 있다.
도 11을 참조하면, 애플리케이션 프로세서(2002)는 시스템 버스(2100), 보이스 트리거 시스템(202), 오디오 서브 시스템(302), 다이렉트 버스(500) 및 메일 박스 모듈(MBX)을 포함할 수 있다. 오디오 서브 시스템(302)은 도 2a의 오디오 처리 시스템(250)에 포함될 수 있다.
보이스 트리거 시스템(202)은 트리거 인터페이스 회로(212), 래퍼(222), 트리거 메모리(232) 및 트리거 프로세서(242)를 포함할 수 있다.
오디오 서브 시스템(302)은 오디오 인터페이스 회로(312), 직접 메모리 액세스 콘트롤러(322), 오디오 메모리(332) 및 오디오 프로세서(342)를 포함할 수 있다.
도 5의 애플리케이션 프로세서(2001)에서 에코 제거기(701)가 오디오 서브 시스템(301)에 포함되는 것과 비교하여, 도 11의 애플리케이션 프로세서(2002)에서 에코 제거기(702)는 보이스 트리거 시스템(202)의 트리거 프로세서(242)에 포함될 수 있다. 에코 제거기(702)는 도 4의 에코 제거기(95)일 수 있다. 도 11의 실시예에서, 보이스 트리거 시스템(202)의 에코 제거기(702)에 의해 상기 에코 제거가 수행될 수 있다.
도 12는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 동작 방법을 나타내는 순서도이다. 도 13은 도 12의 애플리케이션 프로세서의 동작 방법을 설명하기 위한 블록도이다.
도 12 및 13을 참조하면, 오디오 서브 시스템(ASS)에 의해 오디오 출력 신호(SDO)에 대응하는 오디오 출력 데이터(SDO')에 기초하여 오디오 인터페이스(AIF)의 출력 패드를 통하여 오디오 재생을 수행하는 동안에, 보이스 트리거 시스템(VTS)은 트리거 인터페이스(TIF)를 통하여 트리거 입력 신호(SMIC)를 수신할 수 있다(단계 S710).
오디오 서브 시스템(ASS)은 오디오 출력 데이터(SDO')를 보이스 트리거 시스템(VTS)에 전송할 수 있다(단계 S720). 예를 들어, 오디오 출력 데이터(SDO')는 시스템 버스(2100)를 통하지 않고 다이렉트 버스(500)에 포함되는 제2 직접 경로(예를 들어, 도 6a의 ②)를 통하여 전송될 수 있다.
보이스 트리거 시스템(VTS)에 포함되는 에코 제거기(AEC)는 오디오 출력 데이터(SDO')에 기초하여 트리거 입력 신호(SMIC)의 샘플 데이터에 대한 에코 제거를 수행하여 보정 샘플 데이터를 발생할 수 있다(단계 S730). 오디오 출력 데이터(SDO')는 참조 신호로서 이용되고, 상기 샘플 데이터는 상기 에코 제거를 위한 수신 신호로서 이용될 수 있다.
보이스 트리거 시스템(VTS)은 상기 보정 샘플 데이터에 기초하여 상기 보이스 트리거 동작을 수행할 수 있다(단계 S740). 에코 제거된 상기 보정 샘플 데이터에 기초하여 상기 보이스 트리거 동작을 수행함으로써, 상기 보이스 트리거 동작의 인식률을 높일 수 있다.
한편, 도 8, 10 및 13의 실시예에서, 다이렉트 버스(500)를 이용하여 데이터(DSM, CDSM, CSDI, SDO')를 전송하는데 있어서, 데이터 전송의 동기화를 위해 메일 박스 모듈(MBX)을 이용할 수 있다.
도 14는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 보이스 트리거 시스템 및 오디오 서브 시스템의 연결 관계를 나타내는 블록도이다. 도 14에는 편의상 도 3에 도시된 호스트 프로세서(100) 등은 그 도시를 생략하였다. 이하 도 3 및 5와 중복되는 설명은 생략될 수 있다.
도 14를 참조하면, 애플리케이션 프로세서(2003)는 시스템 버스(2100), 보이스 트리거 시스템(203), 오디오 서브 시스템(303), 다이렉트 버스(500) 및 메일 박스 모듈(MBX)을 포함할 수 있다. 오디오 서브 시스템(303)은 도 2a의 오디오 처리 시스템(250)에 포함될 수 있다.
보이스 트리거 시스템(203)은 트리거 인터페이스 회로(213), 래퍼(223), 트리거 메모리(233) 및 트리거 프로세서(243)를 포함할 수 있다.
오디오 서브 시스템(303)은 오디오 인터페이스 회로(313), 직접 메모리 액세스 콘트롤러(323), 오디오 메모리(333) 및 오디오 프로세서(343)를 포함할 수 있다.
도 5의 애플리케이션 프로세서(2001)에서 에코 제거기(701)가 오디오 서브 시스템(301)에 포함되고 도 11의 애플리케이션 프로세서(2002)에서 에코 제거기(702)가 보이스 트리거 시스템(202)에 포함되는 것과 비교하여, 도 14의 애플리케이션 프로세서(2003)에서 에코 제거기(703)는 트리거 인터페이스(TIF)에 연결되는 오디오 코덱(55)에 포함될 수 있다. 에코 제거기(703)는 도 4의 에코 제거기(95)일 수 있다. 도 14의 실시예에서, 오디오 코덱(55)의 에코 제거기(703)에 의해 에코 제거가 수행될 수 있다.
도 15는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 동작 방법을 나타내는 순서도이다. 도 16은 도 15의 애플리케이션 프로세서의 동작 방법을 설명하기 위한 블록도이다.
도 15 및 16을 참조하면, 오디오 서브 시스템(ASS)에 의해 오디오 출력 신호(SDO)에 대응하는 오디오 출력 데이터에 기초하여 오디오 인터페이스(AIF)의 출력 패드를 통하여 오디오 재생을 수행하는 동안에, 오디오 코덱(CODEC)은 아날로그 마이크로부터 마이크 데이터(DMC)를 수신할 수 있다(단계 S810).
오디오 코덱(CODEC)의 에코 제거기(AEC)는 상기 오디오 출력 데이터에 기초하여 마이크 데이터(DMC)에 대한 에코 제거를 수행하여 보정 트리거 입력 신호(CSAIC)를 발생할 수 있다(단계 S820). 상기 오디오 출력 데이터는 참조 신호로서 이용되고, 마이크 데이터(DMC)는 상기 에코 제거를 위한 수신 신호로서 이용될 수 있다.
오디오 코덱(CODEC)은 보정 트리거 입력 신호(CSAIC)를 트리거 인터페이스(TIF)를 통하여 보이스 트리거 시스템(VTS)에 전송할 수 있다(단계 S830).
보이스 트리거 시스템(VTS)은 보정 트리거 입력 신호(CSAIC)의 샘플 데이터에 기초하여 상기 보이스 트리거 동작을 수행할 수 있다(단계 S740). 에코 제거된 상기 보정 트리거 입력 신호에 기초하여 상기 보이스 트리거 동작을 수행함으로써, 상기 보이스 트리거 동작의 인식률을 높일 수 있다.
도 16의 실시예에서는, 보정 트리거 입력 신호(CSAIC)가 트리거 인터페이스(TIF)를 통하여 보이스 트리거 시스템(VTS)에 직접 전송될 수 있으므로, 애플리케이션 프로세서의 호스트 프로세서/시스템 버스뿐만 아니라 다이렉트 버스도 액티브 모드로 전환함이 없이 슬립 모드를 유지할 수 있다.
한편, 도시하지는 않았지만, 도 5, 11 및 14의 실시예에서 오디오 코덱(50, 55)이 보이스 트리거 시스템에 포함되거나, 보이스 트리거 시스템 및 오디오 서브 시스템 사이에 배치되거나, 오디오 서브 시스템이 블루투스 마이크(81) 및 블루투스 스피커(82)와 연결되는 블루투스 모듈(70)과 추가적으로 연결되거나, 오디오 서브 시스템이 USB 마이크 및 USB 스피커와 연결되는 USB 모듈과 추가적으로 연결되거나, 또는 오디오 코덱(50)이 블루투스 모듈(70) 및/또는 상기 USB 모듈로 대체될 수도 있다.
도 17은 본 발명의 실시예들에 따른 애플리케이션 프로세서의 보이스 트리거 시스템 및 오디오 서브 시스템의 연결 관계를 나타내는 블록도이다. 도 17에는 편의상 도 3에 도시된 호스트 프로세서(100) 등은 그 도시를 생략하였다. 이하 도 3 및 5와 중복되는 설명은 생략될 수 있다.
도 17을 참조하면, 애플리케이션 프로세서(2004)는 시스템 버스(2100), 보이스 트리거 시스템(201), 오디오 서브 시스템(301), 공유 메모리(shared memory)(800) 및 메일 박스 모듈(MBX)을 포함할 수 있다. 오디오 서브 시스템(301)은 도 2a의 오디오 처리 시스템(250)에 포함될 수 있다.
도 5의 애플리케이션 프로세서(2001)에서 보이스 트리거 시스템(201) 및 오디오 서브 시스템(301) 사이에 다이렉트 버스(500)가 배치되는 것과 비교하여, 도 17의 애플리케이션 프로세서(2004)에서 다이렉트 버스(500)가 공유 메모리(800)로 대체될 수 있다. 공유 메모리(800)는 보이스 트리거 시스템(201) 및 오디오 서브 시스템(301) 사이에 배치되고, 상기 바지-인 상황에서 보이스 트리거 시스템(201)과 오디오 서브 시스템(301) 사이에 전달되는 데이터를 저장할 수 있다. 상기 오디오 인터페이스를 통하여 상기 오디오 재생을 수행하는 동안에, 공유 메모리(800)를 이용하여, 상기 마이크를 통하여 수신되는 상기 마이크 데이터에 대한 에코 제거를 수행하여 상기 보정 데이터를 발생하고 보이스 트리거 시스템(201)에 의해 상기 보정 데이터에 기초하여 상기 보이스 트리거 동작을 수행할 수 있다.
한편, 도시하지는 않았으나, 도 11 및 14의 애플리케이션 프로세서(2002, 2003)에 포함되는 다이렉트 버스(500) 역시 공유 메모리(800)로 대체될 수 있다.
도 18a 및 18b는 본 발명의 실시예들에 따른 애플리케이션 프로세서의 파워 도메인을 설명하기 위한 도면들이다.
애플리케이션 프로세서는 서로 다른 파워들을 각각 공급받는 복수의 파워 도메인을 포함할 수 있고, 도 18a 및 18b에는 예시적으로 제1 파워 도메인(PWDM1) 및 제2 파워 도메인(PWDM2)이 도시되어 있다. 제1 파워 도메인(PWDM1)은 애플리케이션 프로세서의 액티브 모드 및 스탠바이 모드(또는 슬립 모드)에서 모두 전원이 공급되는 상시 파워 도메인(always-powered domain)이고, 제2 파워 도메인(PWDM2)는 스탠바이 모드에서 전원이 차단되는 파워 세이브 도메인(power-save domain)일 수 있다.
도 18a를 참조하면, 상시 파워 도메인(PWDM1)에는 시스템 카운터(system counter)(SYSCNT), 액티브 파워 관리부(APM) 및 보이스 트리거 시스템(VTS)이 배치될 수 있다. 파워 세이브 도메인(PWDM2)에는 호스트 프로세서(CPU), 오디오 서브 시스템(ABOX), 센서 허브(CHUB) 등과 같은 복수의 하드웨어 블록들이 배치될 수 있다.
시스템 카운터(SYSCNT)는 시간 정보(TM)를 발생하여 시스템의 전역에 제공할 수 있다. 액티브 파워 관리부(AMP)는 복수의 파워 인에이블 신호들(EN)을 발생하여 각 구성 요소의 파워의 공급 및 차단 등을 제어할 수 있다.
본 발명에서 액티브 모드는 적어도 호스트 프로세서(CPU)가 인에이블되어 운영 체제(OS, operating system)가 동작(running)하는 모드를 나타내고, 슬립 모드는 호스트 프로세서(CPU)가 디스에이블되는 저전력 모드 또는 스탠바이 모드를 나타낸다.
보이스 트리거 시스템(VTS)은 전술한 트리거 이벤트를 나타내는 인터럽트 신호(ITRR)를 발생할 수 있다.
도 18a의 배치와 다르게, 도 18b에서와 같이 보이스 트리거 시스템(VTS)이 제2 파워 도메인(PWDM2)에 배치될 수 있다.
도 18a 및 18b에 도시된 바와 같이, 호스트 프로세서(CPU), 보이스 트리거 시스템(VTS), 오디오 서브 시스템(ABOX) 및 센서 허브(CHUB)는 파워 게이팅 회로들(PG1~PG4)을 각각 포함할 수 있고, 파워 게이팅 회로들(PG1~PG4)은 파워 인에이블 신호들(EN1~EN4)에 응답하여 선택적으로 파워를 공급할 수 있다. 이와 같이, 보이스 트리거 시스템(VTS), 오디오 서브 시스템(ABOX) 및 센서 허브(CHUB)의 각각은 호스트 프로세서(CPU)와 독립적으로 파워 게이팅되어 호스트 프로세서(CPU)와 독립적으로 인에이블될 수 있다.
본 발명의 실시예들은 보이스 트리거 기능을 지원하는 임의의 집적 회로, 전자 장치 및 시스템에 유용하게 이용될 수 있다. 예를 들어, 본 발명의 실시예들은 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular), 스마트 폰(smart phone), MP3 플레이어, PDA(personal digital assistant), PMP(portable multimedia player), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(internet of things) 기기, IoE(internet of everything) 기기, e-북(e-book), VR(virtual reality) 기기, AR(augmented reality) 기기 등과 같은 전자 기기에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.
Claims (20)
- 시스템 버스;
상기 시스템 버스에 전기적으로 연결된 호스트 프로세서;
상기 시스템 버스에 전기적으로 연결되고 트리거 인터페이스를 통하여 제공되는 트리거 입력 신호에 기초하여 보이스 트리거 동작을 수행하여 트리거 이벤트를 발생하는 보이스 트리거 시스템;
상기 시스템 버스에 전기적으로 연결되고 오디오 인터페이스를 통하여 재생 및 녹음되는 오디오 스트림을 처리하는 오디오 서브 시스템; 및
상기 보이스 트리거 시스템 및 상기 오디오 서브 시스템을 전기적으로 연결하고, 상기 보이스 트리거 동작을 수행하는 동안에 오디오 재생을 동시에 수행하는 바지-인(barge-in) 상황에서 상기 보이스 트리거 시스템 및 상기 오디오 서브 시스템 사이의 직접 경로를 제공하는 다이렉트 버스를 포함하고,
상기 바지-인 상황에서 상기 오디오 인터페이스를 통하여 상기 오디오 재생을 수행하는 동안에, 상기 다이렉트 버스를 이용하여, 마이크를 통하여 수신되는 마이크 데이터에 대한 에코 제거(echo cancellation)를 수행하여 보정 데이터를 발생하고 상기 보이스 트리거 시스템에 의해 상기 보정 데이터에 기초하여 상기 보이스 트리거 동작을 수행하며,
상기 보이스 트리거 시스템은 상기 트리거 입력 신호의 샘플 데이터를 상기 다이렉트 버스를 통하여 상기 오디오 서브 시스템에 전송하고,
상기 오디오 서브 시스템은 오디오 출력 데이터에 기초하여 상기 샘플 데이터에 대한 상기 에코 제거를 수행하여 상기 보정 데이터에 대응하는 보정 샘플 데이터를 발생하고, 상기 보정 샘플 데이터를 상기 다이렉트 버스를 통하여 상기 보이스 트리거 시스템에 전송하며,
상기 보이스 트리거 시스템은 상기 보정 샘플 데이터에 기초하여 상기 보이스 트리거 동작을 수행하는 애플리케이션 프로세서. - 제 1 항에 있어서, 상기 다이렉트 버스는,
상기 보이스 트리거 시스템으로부터 상기 오디오 서브 시스템으로의 제1 데이터 전송을 수행하는 제1 직접 경로; 및
상기 오디오 서브 시스템으로부터 상기 보이스 트리거 시스템으로의 제2 데이터 전송을 수행하는 제2 직접 경로를 포함하는 것을 특징으로 하는 애플리케이션 프로세서. - 제 2 항에 있어서, 상기 오디오 서브 시스템은,
상기 에코 제거를 수행하는 에코 제거기를 포함하는 것을 특징으로 하는 애플리케이션 프로세서. - 제 3 항에 있어서,
상기 오디오 출력 데이터에 기초하여 상기 오디오 인터페이스의 출력 패드를 통하여 상기 오디오 재생을 수행하는 동안에,
상기 보이스 트리거 시스템은 상기 트리거 인터페이스를 통하여 상기 트리거 입력 신호를 수신하는 것을 특징으로 하는 애플리케이션 프로세서. - 제 4 항에 있어서,
상기 보이스 트리거 시스템은 상기 트리거 입력 신호의 상기 샘플 데이터를 상기 제1 직접 경로를 통하여 상기 오디오 서브 시스템에 전송하고,
상기 오디오 서브 시스템의 상기 에코 제거기는 상기 오디오 출력 데이터에 기초하여 상기 샘플 데이터에 대한 에코 제거를 수행하여 상기 보정 샘플 데이터를 발생하고,
상기 오디오 서브 시스템은 상기 보정 샘플 데이터를 상기 제2 직접 경로를 통하여 상기 보이스 트리거 시스템에 전송하는 것을 특징으로 하는 애플리케이션 프로세서. - 제 3 항에 있어서,
상기 오디오 출력 데이터에 기초하여 상기 오디오 인터페이스의 출력 패드를 통하여 상기 오디오 재생을 수행하는 동안에,
상기 오디오 서브 시스템은 상기 오디오 인터페이스의 입력 패드를 통하여 오디오 입력 신호를 수신하는 것을 특징으로 하는 애플리케이션 프로세서. - 제 6 항에 있어서,
상기 오디오 서브 시스템의 상기 에코 제거기는 상기 오디오 출력 데이터에 기초하여 상기 오디오 입력 신호의 오디오 입력 데이터에 대한 에코 제거를 수행하여 보정 오디오 입력 데이터를 발생하고,
상기 오디오 서브 시스템은 상기 보정 오디오 입력 데이터를 상기 제2 직접 경로를 통하여 상기 보이스 트리거 시스템에 전송하며,
상기 보이스 트리거 시스템은 상기 보정 오디오 입력 데이터에 기초하여 상기 보이스 트리거 동작을 수행하는 것을 특징으로 하는 애플리케이션 프로세서. - 제 6 항에 있어서,
상기 오디오 재생이 수행되는 동안 상기 트리거 인터페이스는 디스에이블되는 것을 특징으로 하는 애플리케이션 프로세서. - 제 2 항에 있어서, 상기 보이스 트리거 시스템은,
상기 에코 제거를 수행하는 에코 제거기를 포함하는 것을 특징으로 하는 애플리케이션 프로세서. - 제 9 항에 있어서,
상기 오디오 출력 데이터에 기초하여 상기 오디오 인터페이스의 출력 패드를 통하여 상기 오디오 재생을 수행하는 동안에,
상기 보이스 트리거 시스템은 상기 트리거 인터페이스를 통하여 상기 트리거 입력 신호를 수신하는 것을 특징으로 하는 애플리케이션 프로세서. - 제 10 항에 있어서,
상기 오디오 서브 시스템은 상기 오디오 출력 데이터를 상기 제2 직접 경로를 통하여 상기 보이스 트리거 시스템에 전송하고,
상기 보이스 트리거 시스템의 상기 에코 제거기는 상기 오디오 출력 데이터에 기초하여 상기 트리거 입력 신호의 샘플 데이터에 대한 에코 제거를 수행하여 보정 샘플 데이터를 발생하고,
상기 보이스 트리거 시스템은 상기 보정 샘플 데이터에 기초하여 상기 보이스 트리거 동작을 수행하는 것을 특징으로 하는 애플리케이션 프로세서. - 제 2 항에 있어서, 상기 트리거 인터페이스에 연결된 오디오 코덱은,
상기 에코 제거를 수행하는 에코 제거기를 포함하는 것을 특징으로 하는 애플리케이션 프로세서. - 제 12 항에 있어서,
상기 오디오 출력 데이터에 기초하여 상기 오디오 인터페이스의 출력 패드를 통하여 상기 오디오 재생을 수행하는 동안에,
상기 오디오 코덱은 마이크로부터 상기 마이크 데이터를 수신하는 것을 특징으로 하는 애플리케이션 프로세서. - 제 13 항에 있어서,
상기 오디오 코덱의 상기 에코 제거기는 상기 오디오 출력 데이터에 기초하여 상기 마이크 데이터에 대한 에코 제거를 수행하여 보정 트리거 입력 신호를 발생하고,
상기 오디오 코덱은 상기 보정 트리거 입력 신호를 상기 트리거 인터페이스를 통하여 상기 보이스 트리거 시스템에 전송하며,
상기 보이스 트리거 시스템은 상기 보정 트리거 입력 신호의 샘플 데이터에 기초하여 상기 보이스 트리거 동작을 수행하는 것을 특징으로 하는 애플리케이션 프로세서. - 제 1 항에 있어서,
상기 다이렉트 버스는, 상기 보이스 트리거 시스템 및 상기 오디오 서브 시스템 사이에 배치되고, 상기 바지-인 상황에서 상기 보이스 트리거 시스템과 상기 오디오 서브 시스템 사이에 전달되는 데이터를 저장하는 공유 메모리로 대체되고,
상기 오디오 인터페이스를 통하여 상기 오디오 재생을 수행하는 동안에, 상기 공유 메모리를 이용하여, 상기 마이크를 통하여 수신되는 상기 마이크 데이터에 대한 에코 제거를 수행하여 상기 보정 데이터를 발생하고 상기 보이스 트리거 시스템에 의해 상기 보정 데이터에 기초하여 상기 보이스 트리거 동작을 수행하는 것을 특징으로 하는 애플리케이션 프로세서. - 제 1 항에 있어서,
상기 시스템 버스, 상기 호스트 프로세서, 상기 보이스 트리거 시스템, 상기 오디오 서브 시스템 및 상기 다이렉트 버스는 하나의 반도체 칩에 함께 집적되는 것을 특징으로 하는 애플리케이션 프로세서. - 제 1 항에 있어서,
상기 오디오 인터페이스를 통하여 상기 오디오 재생을 수행하는 동안에, 상기 호스트 프로세서 및 상기 시스템 버스는 상기 보이스 트리거 동작을 위해 액티브(active) 모드로 전환함이 없이 슬립(sleep) 모드를 유지하는 것을 특징으로 하는 애플리케이션 프로세서. - 제 1 항에 있어서,
상기 보이스 트리거 시스템 및 상기 오디오 서브 시스템의 각각은 상기 호스트 프로세서와 독립적으로 파워 게이팅되어 상기 호스트 프로세서와 독립적으로 인에이블되는 것을 특징으로 하는 애플리케이션 프로세서. - 애플리케이션 프로세서; 및
적어도 하나의 오디오 입출력 장치를 포함하고,
상기 애플리케이션 프로세서는,
시스템 버스;
상기 시스템 버스에 전기적으로 연결된 호스트 프로세서;
상기 시스템 버스에 전기적으로 연결되고 트리거 인터페이스를 통하여 제공되는 트리거 입력 신호에 기초하여 보이스 트리거 동작을 수행하여 트리거 이벤트를 발생하는 보이스 트리거 시스템;
상기 시스템 버스에 전기적으로 연결되고 오디오 인터페이스를 통하여 재생 및 녹음되는 오디오 스트림을 처리하는 오디오 서브 시스템; 및
상기 보이스 트리거 시스템 및 상기 오디오 서브 시스템을 전기적으로 연결하고, 상기 보이스 트리거 동작을 수행하는 동안에 오디오 재생을 동시에 수행하는 바지-인(barge-in) 상황에서 상기 보이스 트리거 시스템 및 상기 오디오 서브 시스템 사이의 직접 경로를 제공하는 다이렉트 버스를 포함하고,
상기 바지-인 상황에서 상기 오디오 인터페이스를 통하여 상기 오디오 재생을 수행하는 동안에, 상기 다이렉트 버스를 이용하여, 마이크를 통하여 수신되는 마이크 데이터에 대한 에코 제거(echo cancellation)를 수행하여 보정 데이터를 발생하고 상기 보이스 트리거 시스템에 의해 상기 보정 데이터에 기초하여 상기 보이스 트리거 동작을 수행하며,
상기 보이스 트리거 시스템은 상기 트리거 입력 신호의 샘플 데이터를 상기 다이렉트 버스를 통하여 상기 오디오 서브 시스템에 전송하고,
상기 오디오 서브 시스템은 오디오 출력 데이터에 기초하여 상기 샘플 데이터에 대한 상기 에코 제거를 수행하여 상기 보정 데이터에 대응하는 보정 샘플 데이터를 발생하고, 상기 보정 샘플 데이터를 상기 다이렉트 버스를 통하여 상기 보이스 트리거 시스템에 전송하며,
상기 보이스 트리거 시스템은 상기 보정 샘플 데이터에 기초하여 상기 보이스 트리거 동작을 수행하는 전자 장치. - 시스템 버스와, 상기 시스템 버스에 전기적으로 연결되는 호스트 프로세서, 보이스 트리거 시스템, 오디오 서브 시스템 및 다이렉트 버스를 하나의 반도체 칩에 함께 집적하여 형성된 애플리케이션 프로세서에서, 상기 보이스 트리거 시스템에 의해 트리거 인터페이스를 통하여 제공되는 트리거 입력 신호에 기초하여 보이스 트리거 동작을 수행하여 트리거 이벤트를 발생하는 단계;
상기 애플리케이션 프로세서에서, 상기 오디오 서브 시스템에 의해 오디오 인터페이스를 통하여 재생 및 녹음되는 오디오 스트림을 처리하는 단계;
상기 보이스 트리거 동작을 수행하는 동안에 상기 오디오 인터페이스를 통하여 오디오 재생을 동시에 수행하는 바지-인(barge-in) 상황에서, 상기 보이스 트리거 시스템 및 상기 오디오 서브 시스템을 전기적으로 연결하고 상기 바지-인 상황에서 상기 보이스 트리거 시스템 및 상기 오디오 서브 시스템 사이의 직접 경로를 제공하는 상기 다이렉트 버스를 이용하여, 마이크를 통하여 수신되는 마이크 데이터에 대한 에코 제거(echo cancellation)를 수행하여 보정 데이터를 발생하는 단계; 및
상기 보이스 트리거 시스템에 의해 상기 보정 데이터에 기초하여 상기 보이스 트리거 동작을 수행하는 단계를 포함하며,
상기 보이스 트리거 시스템은 상기 트리거 입력 신호의 샘플 데이터를 상기 다이렉트 버스를 통하여 상기 오디오 서브 시스템에 전송하고,
상기 오디오 서브 시스템은 오디오 출력 데이터에 기초하여 상기 샘플 데이터에 대한 상기 에코 제거를 수행하여 상기 보정 데이터에 대응하는 보정 샘플 데이터를 발생하고, 상기 보정 샘플 데이터를 상기 다이렉트 버스를 통하여 상기 보이스 트리거 시스템에 전송하며,
상기 보이스 트리거 시스템은 상기 보정 샘플 데이터에 기초하여 상기 보이스 트리거 동작을 수행하는 애플리케이션 프로세서의 동작 방법.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180009496A KR102629385B1 (ko) | 2018-01-25 | 2018-01-25 | 바지-인 관련 직접 경로를 지원하는 저전력 보이스 트리거 시스템을 포함하는 애플리케이션 프로세서, 이를 포함하는 전자 장치 및 그 동작 방법 |
US16/185,776 US10971154B2 (en) | 2018-01-25 | 2018-11-09 | Application processor including low power voice trigger system with direct path for barge-in, electronic device including the same and method of operating the same |
DE102018128225.7A DE102018128225A1 (de) | 2018-01-25 | 2018-11-12 | Anwendungsprozessor mit Sprachtriggersystem mit niedriger Leistung und direktem Weg zum Unterbrechen, elektronisches Gerät mit demselben und Verfahren zum Betreiben desselben |
TW107140152A TWI776988B (zh) | 2018-01-25 | 2018-11-13 | 包含具插話用直接路徑之低電力語音觸發系統的應用處理器、包含該處理器的電子裝置及其操作方法 |
CN201910033457.5A CN110083225B (zh) | 2018-01-25 | 2019-01-14 | 应用处理器、电子装置以及操作应用处理器的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180009496A KR102629385B1 (ko) | 2018-01-25 | 2018-01-25 | 바지-인 관련 직접 경로를 지원하는 저전력 보이스 트리거 시스템을 포함하는 애플리케이션 프로세서, 이를 포함하는 전자 장치 및 그 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190090596A KR20190090596A (ko) | 2019-08-02 |
KR102629385B1 true KR102629385B1 (ko) | 2024-01-25 |
Family
ID=67145229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180009496A KR102629385B1 (ko) | 2018-01-25 | 2018-01-25 | 바지-인 관련 직접 경로를 지원하는 저전력 보이스 트리거 시스템을 포함하는 애플리케이션 프로세서, 이를 포함하는 전자 장치 및 그 동작 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10971154B2 (ko) |
KR (1) | KR102629385B1 (ko) |
CN (1) | CN110083225B (ko) |
DE (1) | DE102018128225A1 (ko) |
TW (1) | TWI776988B (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110238417A1 (en) * | 2010-03-26 | 2011-09-29 | Kabushiki Kaisha Toshiba | Speech detection apparatus |
US20140222436A1 (en) * | 2013-02-07 | 2014-08-07 | Apple Inc. | Voice trigger for a digital assistant |
Family Cites Families (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4266254A (en) * | 1977-06-06 | 1981-05-05 | National Semiconductor Corp. | Integrated circuit for recording and playback of such recording |
US4501012A (en) * | 1980-11-17 | 1985-02-19 | Nissan Motor Company, Limited | Speech recognition system for an automotive vehicle |
US4870704A (en) * | 1984-10-31 | 1989-09-26 | Flexible Computer Corporation | Multicomputer digital processing system |
US4736317A (en) * | 1985-07-17 | 1988-04-05 | Syracuse University | Microprogram-coupled multiple-microprocessor module with 32-bit byte width formed of 8-bit byte width microprocessors |
JPH07113840B2 (ja) * | 1989-06-29 | 1995-12-06 | 三菱電機株式会社 | 音声検出器 |
US5657422A (en) * | 1994-01-28 | 1997-08-12 | Lucent Technologies Inc. | Voice activity detection driven noise remediator |
US5708704A (en) * | 1995-04-07 | 1998-01-13 | Texas Instruments Incorporated | Speech recognition method and system with improved voice-activated prompt interrupt capability |
US6101472A (en) * | 1997-04-16 | 2000-08-08 | International Business Machines Corporation | Data processing system and method for navigating a network using a voice command |
GB2325112B (en) * | 1997-05-06 | 2002-07-31 | Ibm | Voice processing system |
US6151397A (en) * | 1997-05-16 | 2000-11-21 | Motorola, Inc. | Method and system for reducing undesired signals in a communication environment |
US6411929B1 (en) * | 1997-11-27 | 2002-06-25 | Hitachi, Ltd. | Speech recognition method and system |
US6574597B1 (en) * | 1998-05-08 | 2003-06-03 | At&T Corp. | Fully expanded context-dependent networks for speech recognition |
US6098043A (en) * | 1998-06-30 | 2000-08-01 | Nortel Networks Corporation | Method and apparatus for providing an improved user interface in speech recognition systems |
US6970925B1 (en) * | 1999-02-03 | 2005-11-29 | William H. Gates, III | Method and system for property notification |
US6353867B1 (en) * | 2000-01-14 | 2002-03-05 | Insilicon Corporation | Virtual component on-chip interface |
US6678661B1 (en) * | 2000-02-11 | 2004-01-13 | International Business Machines Corporation | Method and system of audio highlighting during audio edit functions |
US6725193B1 (en) * | 2000-09-13 | 2004-04-20 | Telefonaktiebolaget Lm Ericsson | Cancellation of loudspeaker words in speech recognition |
DE60213973T2 (de) * | 2001-12-26 | 2006-12-14 | Neomax Co., Ltd. | Herstellungsverfahren für einen permanentmagneten und presseinrichtung |
US7587318B2 (en) * | 2002-09-12 | 2009-09-08 | Broadcom Corporation | Correlating video images of lip movements with audio signals to improve speech recognition |
US20040243405A1 (en) * | 2003-05-29 | 2004-12-02 | International Business Machines Corporation | Service method for providing autonomic manipulation of noise sources within computers |
AU2003302486A1 (en) * | 2003-09-15 | 2005-04-06 | Zakrytoe Aktsionernoe Obschestvo Intel | Method and apparatus for encoding audio |
CA2539442C (en) * | 2003-09-17 | 2013-08-20 | Nielsen Media Research, Inc. | Methods and apparatus to operate an audience metering device with voice commands |
US20050114118A1 (en) * | 2003-11-24 | 2005-05-26 | Jeff Peck | Method and apparatus to reduce latency in an automated speech recognition system |
US20050136848A1 (en) * | 2003-12-22 | 2005-06-23 | Matt Murray | Multi-mode audio processors and methods of operating the same |
US8170875B2 (en) | 2005-06-15 | 2012-05-01 | Qnx Software Systems Limited | Speech end-pointer |
US9101279B2 (en) * | 2006-02-15 | 2015-08-11 | Virtual Video Reality By Ritchey, Llc | Mobile user borne brain activity data and surrounding environment data correlation system |
US20080140412A1 (en) * | 2006-12-07 | 2008-06-12 | Jonathan Travis Millman | Interactive tutoring |
US20100121997A1 (en) * | 2007-03-16 | 2010-05-13 | Hui Lin | Method for writing digital contents to a plurality of storage cards and the system for the same |
JP4869420B2 (ja) * | 2010-03-25 | 2012-02-08 | 株式会社東芝 | 音情報判定装置、及び音情報判定方法 |
CN103098131B (zh) * | 2010-08-24 | 2015-03-11 | 杜比国际公司 | 调频立体声无线电接收器的间歇单声道接收的隐藏 |
US8972251B2 (en) * | 2011-06-07 | 2015-03-03 | Qualcomm Incorporated | Generating a masking signal on an electronic device |
WO2014144579A1 (en) * | 2013-03-15 | 2014-09-18 | Apple Inc. | System and method for updating an adaptive speech recognition model |
TWI624709B (zh) * | 2013-06-25 | 2018-05-21 | 寇平公司 | 具有麥克風陣列的眼鏡及其用以減降雜訊的方法 |
US10186262B2 (en) * | 2013-07-31 | 2019-01-22 | Microsoft Technology Licensing, Llc | System with multiple simultaneous speech recognizers |
US9251806B2 (en) * | 2013-09-05 | 2016-02-02 | Intel Corporation | Mobile phone with variable energy consuming speech recognition module |
WO2015038105A1 (en) * | 2013-09-11 | 2015-03-19 | Intel Corporation | Low power voice triggers for finding mobile devices |
US9385779B2 (en) * | 2013-10-21 | 2016-07-05 | Cisco Technology, Inc. | Acoustic echo control for automated speaker tracking systems |
US20150112690A1 (en) | 2013-10-22 | 2015-04-23 | Nvidia Corporation | Low power always-on voice trigger architecture |
GB2523984B (en) | 2013-12-18 | 2017-07-26 | Cirrus Logic Int Semiconductor Ltd | Processing received speech data |
EP3084760A4 (en) * | 2013-12-20 | 2017-08-16 | Intel Corporation | Transition from low power always listening mode to high power speech recognition mode |
US9460735B2 (en) * | 2013-12-28 | 2016-10-04 | Intel Corporation | Intelligent ancillary electronic device |
JP2015138147A (ja) * | 2014-01-22 | 2015-07-30 | シャープ株式会社 | サーバ、対話装置、対話システム、対話方法および対話プログラム |
US10133332B2 (en) * | 2014-03-31 | 2018-11-20 | Intel Corporation | Location aware power management scheme for always-on-always-listen voice recognition system |
KR102208477B1 (ko) * | 2014-06-30 | 2021-01-27 | 삼성전자주식회사 | 마이크 운용 방법 및 이를 지원하는 전자 장치 |
KR102299330B1 (ko) | 2014-11-26 | 2021-09-08 | 삼성전자주식회사 | 음성 인식 방법 및 그 전자 장치 |
TW201640322A (zh) | 2015-01-21 | 2016-11-16 | 諾爾斯電子公司 | 用於聲音設備之低功率語音觸發及方法 |
US9653079B2 (en) * | 2015-02-12 | 2017-05-16 | Apple Inc. | Clock switching in always-on component |
US9672821B2 (en) * | 2015-06-05 | 2017-06-06 | Apple Inc. | Robust speech recognition in the presence of echo and noise using multiple signals for discrimination |
US9691378B1 (en) * | 2015-11-05 | 2017-06-27 | Amazon Technologies, Inc. | Methods and devices for selectively ignoring captured audio data |
US10089989B2 (en) | 2015-12-07 | 2018-10-02 | Semiconductor Components Industries, Llc | Method and apparatus for a low power voice trigger device |
US10089987B2 (en) * | 2015-12-21 | 2018-10-02 | Invensense, Inc. | Music detection and identification |
KR102501083B1 (ko) * | 2016-02-05 | 2023-02-17 | 삼성전자 주식회사 | 음성 인식 방법 및 이를 사용하는 전자 장치 |
US9805714B2 (en) * | 2016-03-22 | 2017-10-31 | Asustek Computer Inc. | Directional keyword verification method applicable to electronic device and electronic device using the same |
KR101850762B1 (ko) | 2016-07-19 | 2018-04-20 | 최병락 | 내구성이 우수한 방풍부재용 혼합섬유 모헤어 |
US10121494B1 (en) * | 2017-03-30 | 2018-11-06 | Amazon Technologies, Inc. | User presence detection |
CN107577449B (zh) * | 2017-09-04 | 2023-06-23 | 百度在线网络技术(北京)有限公司 | 唤醒语音的拾取方法、装置、设备及存储介质 |
JP2019053165A (ja) * | 2017-09-14 | 2019-04-04 | 株式会社東芝 | 音声認識装置 |
US10482868B2 (en) * | 2017-09-28 | 2019-11-19 | Sonos, Inc. | Multi-channel acoustic echo cancellation |
CN111357048A (zh) * | 2017-12-31 | 2020-06-30 | 美的集团股份有限公司 | 用于控制家庭助手装置的方法和系统 |
-
2018
- 2018-01-25 KR KR1020180009496A patent/KR102629385B1/ko active IP Right Grant
- 2018-11-09 US US16/185,776 patent/US10971154B2/en active Active
- 2018-11-12 DE DE102018128225.7A patent/DE102018128225A1/de active Pending
- 2018-11-13 TW TW107140152A patent/TWI776988B/zh active
-
2019
- 2019-01-14 CN CN201910033457.5A patent/CN110083225B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110238417A1 (en) * | 2010-03-26 | 2011-09-29 | Kabushiki Kaisha Toshiba | Speech detection apparatus |
US20140222436A1 (en) * | 2013-02-07 | 2014-08-07 | Apple Inc. | Voice trigger for a digital assistant |
Also Published As
Publication number | Publication date |
---|---|
KR20190090596A (ko) | 2019-08-02 |
CN110083225B (zh) | 2024-06-21 |
DE102018128225A1 (de) | 2019-07-25 |
US10971154B2 (en) | 2021-04-06 |
TW201933086A (zh) | 2019-08-16 |
TWI776988B (zh) | 2022-09-11 |
CN110083225A (zh) | 2019-08-02 |
US20190228772A1 (en) | 2019-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11256638B2 (en) | Application processor supporting interrupt during audio playback, electronic device including the same and method of operating the same | |
US11216399B2 (en) | Application processor for low power operation, electronic device including the same and method of operating the same | |
KR102629424B1 (ko) | 보안 기능을 지원하는 저전력 보이스 트리거 시스템을 포함하는 애플리케이션 프로세서, 이를 포함하는 전자 장치 및 그 동작 방법 | |
KR102459920B1 (ko) | 저전력 에코 제거를 지원하는 애플리케이션 프로세서, 이를 포함하는 전자 장치 및 그 동작 방법 | |
CN108681474A (zh) | 应用预加载方法、装置、存储介质及终端 | |
KR102629385B1 (ko) | 바지-인 관련 직접 경로를 지원하는 저전력 보이스 트리거 시스템을 포함하는 애플리케이션 프로세서, 이를 포함하는 전자 장치 및 그 동작 방법 | |
KR102530391B1 (ko) | 외부 인터럽트를 지원하는 저전력 보이스 트리거 시스템을 포함하는 애플리케이션 프로세서, 이를 포함하는 전자 장치 및 그 동작 방법 | |
US11409680B2 (en) | Method of operating audio subsystem for USB module, system-on-chip performing the same and method of operating system-on-chip using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |