Some content of this application is unavailable at the moment.
If this situation persist, please contact us atFeedback&Contact
1. (WO2019004582) REAL-TIME VOICE RECOGNITION APPARATUS EQUIPPED WITH ASIC CHIP AND SMARTPHONE
Document

명세서

발명의 명칭

기술분야

1   2  

배경기술

3   4   5   6   7   8   9   10   11   12   13  

발명의 상세한 설명

기술적 과제

14   15  

과제 해결 수단

16   17   18  

발명의 효과

19   20  

도면의 간단한 설명

21   22   23   24   25   26   27   28   29   30   31   32   33   34  

발명의 실시를 위한 최선의 형태

35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135  

청구범위

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29  

도면

1   2   3   4   5   6   7   8   9   10   11   12   13  

명세서

발명의 명칭 : 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치

기술분야

[1]
본 발명은 실시간 음성인식 장치에 관한 것으로, 더욱 상세하게는 클라우드 컴퓨터를 사용하지 않고 한 개의 스마트폰과 한 개의 아식(Application Specific Integrated Circuits:ASIC) 칩을 사용함으로써 개인의 프라이버시가 보장되고 지연시간이 짧아 실시간으로 음성 입력신호를 글자로 변환하여 출력하는 것이 가능한 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치에 관한 것이다.
[2]

배경기술

[3]
2012년에 그래픽처리장치(Graphic Processing Unit:이하 'GPU'라 한다.)의 보급과 알렉스넷(Alexnet)의 등장으로 기계학습(machine learning)의 정확도가 획기적으로 개선되어 영상인식, 음성인식 및 의료진단을 포함한 광범위한 응용분야에 기계학습이 활발하게 적용되기 시작하였다.
[4]
현재 바이두(Baidu)등 대부분의 음성인식 장치는 사용자의 단말기에서 수신한 음성신호를 클라우드 컴퓨터로 전송하고 클라우드 컴퓨터에 연결된 GPU를 활용한 대규모 병렬처리를 통해 음성을 인식하고 그 결과를 사용자의 단말기로 재전송한다.
[5]
현재 클라우드 컴퓨터를 사용하는 음성인식장치는 정확도가 95% 정도에 도달하여, 미국의 전화회사에서는 청각장애가 있는 사용자를 위해 사용자의 전화기에 엘씨디(Liquid Crystal Display:LCD) 등의 평판 디스플레이 화면을 부착하고, 전화국에서 사용자의 전화기로 음성신호와 글자(text) 신호를 동시에 전송하여 글자신호는 사용자의 전화기에 부착된 평판 디스플레이에 표시하고 음성신호는 사용자의 귀 가까이에 위치하는 수화기에 동시에 전달함으로써, 청각장애가 있는 사용자가 전화통화를 보다 쉽게 할 수 있게 하였다.
[6]
현재 많이 사용되고 있는 클라우드 컴퓨터를 이용한 음성인식기술은, 클라우드 컴퓨터와 사용자 사이의 인터넷 통신에 필요한 시간때문에 반응시간이 느리고 모든 사용자의 음성신호가 클라우드 컴퓨터로 보내지므로 개인의 프라이버시 문제가 발생할 소지가 있다.
[7]
반응시간과 개인 프라이버시의 문제를 해결하기 위해, 최근에는 소프트웨어 기계학습 알고리즘인 심층신경망(Deep Neural Network:이하 'DNN'이라 한다.), 회선신경망(Convolutional Neural Network:이하 'CNN' 이라 한다.), 순환신경망(Recurrent Neural Network:이하 'RNN'이라 한다.) 등을 하드웨어인 현장프로그래머블 게이트 어레이(Field Programmable Gate Array:이하 'FPGA'라 한다.)나 ASIC 칩으로 구현하여 음성인식의 동작속도를 빠르게 하고 전력소모도 감소시키는 연구가 활발하게 진행되고 있다 (ISSCC 2017등).
[8]
음성신호는 비교적 긴 시간동안 특성이 지속되는 성질 때문에, 음성인식을 위해서는 RNN 알고리즘과 엘에스티엠(Long Short-Term Memory:이하 'LSTM'이라 한다.) 알고리즘을 동시에 사용하는 것이 효과적이라고 알려져 있다. 음성인식을 위해 LSTM-RNN을 FPGA로 구현한 연구가 발표되었는데, 문법언어모델(Lexical/Language model) 처리에 필요한 단어사전(word dictionary)과 문장사전(sentence dictionary)을 저장하기 위해 FPGA칩 외부에 위치하는 수백 Mbit 이상의 대용량 메모리 칩을 필요로 한다. 이러한 대용량 메모리를 로직회로와 같이 한 개의 ASIC 칩에 구현하기가 어려워 음성인식용 LSTM-RNN을 ASIC 칩으로 구현한 연구는 아직 발표되지 않았다.
[9]
스마트폰의 응용프로세서(Application Processor:이하 'AP'라 한다.) 칩에 내장된 중앙처리장치(Central Processing Unit:이하 'CPU'라 한다.)와 GPU를 활용하여 소프트웨어 방식으로 전체의 음성인식 동작을 수행할 수 있으나 이러한 경우에도 실시간(real time) 동작을 수행하기에는 어려움이 있다.
[10]
일반적인 음성인식 프로그램인 씨엠유 스핑크스(CMU Sphinx)의 경우에 60% 정도 시간은 음성모델(Acoustic model) 처리에 사용되고 40% 정도 시간은 문법언어모델 처리에 사용된다.
[11]
즉, 기존의 음성인식장치는, 스마트폰 등의 단말기(terminal)에 입력된 음성정보를 무선 또는 유선의 인터넷 통신을 통하여 클라우드 컴퓨터에 전송하고 클라우드 컴퓨터가 상기 음성정보를 단어글자(word text)로 변환하고 변환된 단어글자를 인터넷 통신을 통하여 상기 단말기로 재전송한다. 이러한 기존의 음성인식 방식에서는 클라우드 컴퓨터의 처리속도는 매우 빠르지만 단말기와 클라우드 컴퓨터 사이의 두 번의 인터넷 통신에 소요되는 시간 때문에 지연시간이 길어져서 실시간 동작이 어려운 경우가 많다.
[12]
또한 사용자의 모든 음성정보가 클라우드 컴퓨터에 집중되므로, 사용자의 대화내용에 대한 개인 프라이버시 문제가 발생할 소지도 있다.
[13]

발명의 상세한 설명

기술적 과제

[14]
본 발명이 해결하고자 하는 기술적 과제는, 클라우드 컴퓨터를 사용하지 않고 한 개의 스마트폰과 한 개의 아식(Application Specific Integrated Circuits:ASIC) 칩을 사용하여 실시간으로 음성 입력신호를 글자로 변환하여 출력함으로써, 지연시간이 짧고 개인 프라이버시 문제가 없으며 실시간으로 처리가 가능한 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치를 제공하는데 있다.
[15]

과제 해결 수단

[16]
본 발명의 제1 실시예에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치는, 실시간 음성인식 장치에 있어서, 제1 디지털 음성신호를 입력으로 받아 특징벡터를 출력하고 상기 특징벡터로부터 음소확률점수를 출력하는 아식(ASIC)칩; 및 데이터 포트를 통해 상기 아식(ASIC)칩과 연결되며 상기 아식(ASIC)칩으로부터 상기 음소확률점수를 입력으로 받아 단어글자를 출력하고 상기 단어글자를 사용자의 필요에 따라 처리하여 출력하는 스마트폰;을 포함하는 것을 특징으로 한다.
[17]
본 발명의 제2 실시예에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치는, 제1 파라미터 데이터(Dp1)를 출력하고 제2 파라미터 데이터(Dp2)를 입력으로 받는 디램(DRAM)칩; 제1 디지털 음성신호와 상기 제1 파라미터 데이터(Dp1)를 입력으로 받아 음소확률점수(PS)와 제2 파라미터 데이터(Dp2)를 출력하는 아식(ASIC)칩; 및 데이터 포트를 통해 상기 아식(ASIC)칩과 연결되며 상기 아식(ASIC)칩으로부터 상기 음소확률점수를 입력으로 받아 단어글자를 출력하고 상기 단어글자를 사용자의 필요에 따라 처리하여 출력하는 스마트폰;을 포함하는 것을 특징으로 한다.
[18]

발명의 효과

[19]
본 발명에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치에 의하면, 클라우드 컴퓨터를 사용하지 않고 한 개의 스마트폰과 한 개의 아식(ASIC) 칩을 사용함으로써 개인의 프라이버시가 보장되고 지연시간이 짧아 실시간으로 음성 입력신호를 글자로 변환하여 출력할 수 있는 효과가 있다.
[20]

도면의 간단한 설명

[21]
도 1은 본 발명의 제1 실시예에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 블록도이다.
[22]
도 2는 본 발명의 제1 실시예에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치에서 사용하는 주파수 대역의 경계 주파수 값을 나타내는 도면이다.
[23]
도 3은 본 발명의 제1 실시예에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 특징추출부의 상세 블록도이다.
[24]
도 4는 도 3의 대역통과필터(BPF)의 전달함수 특성을 나타내는 도면이다.
[25]
도 5는 본 발명의 제1 실시예에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 음성모델처리부의 상세 블록도이다.
[26]
도 6은 도 1에 도시된 본 발명의 제1 실시예에서 연결장치와 스마트폰의 상세 블록도이다.
[27]
도 7은 본 발명의 제1 실시예에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 문법언어모델처리부의 동작을 설명하는 개념도이다.
[28]
도 8은 본 발명의 제1실시예에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 스마트폰에서 수행되는 음성인식 프로그램의 의사 코드(pseudo code)를 나타내는 도면이다.
[29]
도 9는 본 발명의 제1 실시예에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 제3 디지털 음성신호 생성부의 블록도이다.
[30]
도 10은 본 발명의 제1 실시예에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 출력처리부의 프로그램 동작을 설명하기 위한 도면이다.
[31]
도 11은 본 발명의 제2 실시예에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 블록도이다.
[32]
도 12는 본 발명의 제2 실시예에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 음성모델처리부의 상세 블록도이다.
[33]
도 13은 본 발명의 제2 실시예에서 연결장치와 스마트폰의 상세 블록도이다.
[34]

발명의 실시를 위한 최선의 형태

[35]
본 발명에서는 지연시간이 짧고 개인 프라이버시 문제가 없으며 실시간으로 처리가 가능한 음성인식 장치를 구현하고자 한다.
[36]
실시간 처리가 가능하기 위해서는, 음성인식장치가 어떤 정해진 지속시간의 음성데이터를 처리하는데 소요되는 시간이 상기 음성데이터의 지속시간보다 짧아야 한다. 실시간 처리 여부를 정량적으로 표시하기 위해, 음성인식장치가 한 번에 처리하는 음성데이터 지속시간을 상기 음성인식장치의 상기 음성데이터 처리 시간으로 나눈 값을 실시간 팩터(real time factor)라고 정의한다. 실시간 동작이 되려면, 실시간 팩터가 1.0 보다 커야 한다. 일반적인 음성인식 프로그램인 칼디(Kaldi)의 경우에, 개인용 컴퓨터(PC)의 3.7GHz 클락 CPU를 사용하여 실행하면 실시간 팩터가 0.55가 되어, 실시간 동작이 불가능하다고 알려져 있다.
[37]
그런데 개인 프라이버시 문제가 없는 실시간 음성인식 동작을 달성하기 위해서는, 클라우드 컴퓨터를 사용하지 않고 스마트폰 등의 단말기를 사용하여 음성인식 동작을 빠르게 처리할 수 있어야 한다. 음성인식 처리과정은 다음과 같이 구성된다. 입력된 음성신호(audio speech)가 특징추출(feature extraction), 음성모델처리(acoustic model processing), 문법언어모델처리(lexical language model processing) 과정을 순차적으로(sequentially) 거쳐 단어글자(word text)로 변환된다.
[38]
소프트웨어 방식으로 음성인식장치를 구현하기 위해, 대표적 단말기인 현재의 스마트폰만을 사용하여 음성인식 동작을 수행할 경우에 현재의 스마트폰 기술로는 처리시간이 길어져서 실시간 동작이 어렵다.
[39]
하드웨어 방식으로 음성인식장치를 구현하기 위해, 스마트폰의 데이터 포트에 외장(external) ASIC 칩을 동글(dongle) 형태로 연결하고 스마트폰에 입력된 음성신호를 상기 ASIC 칩에 전송하고 상기 ASIC 칩은 전송된 음성신호를 단어글자로 변환하여 상기 스마트폰으로 전송하면, 개인 프라이버시 문제가 발생하지 않고 지연시간이 매우 짧은 실시간 음성인식장치를 구현할 수 있다.
[40]
그런데, 음성인식 처리의 한 과정인 문법언어모델 처리에 필요한 단어사전과 문장사전을 저장하는데 필요한 방대한 양의 메모리(100Mbits 이상)를 현재의 기술로는 논리회로와 함께 한 개의 ASIC 칩에 구현하기가 어렵다. 따라서, 현재의 기술로는 하드웨어 방식만으로 음성인식장치를 구현하기가 곤란하다.
[41]
따라서 본 발명에서는, 현재의 기술로 개인 프라이버시 문제가 없고 지연시간이 짧은 실시간 음성인식장치를 구현하기 위해, 하드웨어와 소프트웨어의 코 디자인(co-design) 방식을 사용하였다.
[42]
즉, 한 개의 외장 ASIC 칩을 사용하여 비교적 계산과정이 복잡하여 시간이 많이 소요되는 특징추출과 음성모델처리는 하드웨어로 수행하고, 대용량 메모리가 필요한 문법언어모델처리는 스마트폰에서 소프트웨어로 수행한다. 본 발명의 실시예에서는 하드웨어 ASIC 칩 구현을 용이하게 하기 위해 현재 음성인식에 보편적으로 많이 사용하는 RNN 방식 중에서 하드웨어 크기가 가장 작다고 알려진 GRU(gated recurrent unit)-RNN 방식을 사용하는데, 본 발명의 사상은 모든 LSTM-RNN 방식에 적용 가능하다.
[43]
스마트폰에 내장된 플래시(flash) 메모리 또는 DRAM 등의 메모리부에 상기 문법언어모델 처리에 필요한 단어사전(word dictionary)과 문장사전(sentence dictionary)을 저장하고, 상기 문법언어모델 처리에 필요한 소요시간을 최소화하기 위해 스마트폰에 내장된 AP(application processor)의 CPU(central processing unit)와 GPU를 동시에 동작시켜 병렬처리를 수행한다. GPGPU(general purpose GPU) 프로그램을 위해 개발된 오픈씨엘(Open Computing Language : 이하 'OpenCL'이라 한다.)을 사용하여 GPU 병렬처리 프로그램을 용이하게 할 수 있다.
[44]
본 발명의 실시예는 제1 실시예와 제2 실시예의 두 가지로 구분하여 설명한다. 제1 실시예는 하나의 아식칩(ASIC chip)과 하나의 스마트폰으로 실시간 음성인식장치를 구성하고, 제2 실시예는 제1 실시예의 구성요소에 하나의 DRAM칩을 추가하여 하나의 아식칩, 하나의 DRAM칩과 하나의 스마트폰으로 실시간 음성인식장치를 구성한다.
[45]
이하, 첨부된 도면을 참고하여 본 발명을 보다 상세히 설명하기로 한다.
[46]
도 1은 본 발명의 제1 실시예에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 블록도이다.
[47]
도 1을 참고하면 본 발명에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치(1000)는 제1 디지털 음성신호(A IN)를 입력으로 받아 특징벡터(FV)를 출력하고 상기 특징벡터(FV)로부터 음소확률점수(PS)를 출력하는 아식(ASIC)칩(100)과 데이터 포트를 통해 상기 아식(ASIC)칩과 연결되며 상기 아식(ASIC)칩으로부터 상기 음소확률점수(PS)를 입력으로 받아 단어글자(Word Text)를 출력하고 상기 단어글자를 사용자의 필요에 따라 처리하여 출력하는 스마트폰(200)을 구비한다.
[48]
보다 구체적으로, 상기 아식(ASIC)칩(100)은 입력신호 선택부(110), 특징추출부(120), 음성모델처리부(130), 전원전압변환부(140) 및 연결장치(150)를 구비한다.
[49]
입력신호선택부(110)는 스마트폰의 마이크로폰에 수신되어 스마트폰의 데이터 포트(210)와 연결장치(150)를 통해 상기 입력신호선택부(110)로 전달되는 제2 디지털 음성신호(A2)와 상기 스마트폰(200)의 마이크로폰이 아닌 외부 마이크로폰에서 수신되어 상기 입력신호선택부(110)로 전달되는 제3 디지털 음성신호(A3) 중에서 하나를 선택하여 상기 제1 디지털 음성신호(A IN)로 출력한다.
[50]
상기 제2 디지털 음성신호(A2), 제3 디지털 음성신호(A3) 및 제1 디지털 음성신호(A IN)는 모두 디지털로 변환된 음성신호이다. 상기 특징추출부(120)는 상기 제1 디지털 음성신호(A IN)를 입력으로 받아 구성요소가 41개인 상기 특징벡터(FV: feature vector)를 출력한다. 사람의 귀는 Hertz 단위의 주파수를 선형적으로 구분하지 못하고 주파수의 log인 Mel frequency m에 대해 선형적으로 반응한다고 알려져 있다. Hertz 단위로 표시한 기존 주파수 f에 대한 Mel 주파수 m은 수학식 1로 표시되는데, Mel 주파수 대역에서 균일한 간격으로 주파수 대역을 여러 개로 나누면, 기존 주파수 대역에서는 저주파 대역이 세밀하게 나누어지고 고주파 대역에서는 듬성듬성하게 나누어진다.
[51]
[수식1]


[52]
도 2는 본 발명에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치에서 사용하는 주파수 대역의 경계 주파수 값을 나타내는 도면이다.
[53]
본 발명의 실시예에서는, 도 2에 도시된 대로 150 Hz부터 7000 Hz까지의 기존 주파수 대역(fi)을 Mel 주파수 대역(mi)에서 균일하게 41개(i=1, 2, 3, ..., 42)의 주파수 대역(frequency band)으로 나누었다. 주파수가 제일 낮은 대역은 f1=150Hz (m1=218.8)에서 f2=196.9Hz(m2=279.4)까지의 주파수 대역이다.
[54]
특징추출부(120)는 상기 제1 디지털 음성신호(A IN)와 하나 이상의 제1 제어신호(C1)를 입력으로 받아 상기 특징벡터(FV)를 출력한다.
[55]
상기 특징추출부(120)는 패스트 퓨리에 변환부(FFT, 121), 복수개의 대역통과필터(BPF, 122), 복수개의 적분기(INT, 123), 복수개의 로그부(LOG, 124) 및 역이산 코사인 변환부(I-DCT, 125)를 구비한다.(도 3)
[56]
음성모델처리부(130)는 상기 특징벡터(FV)와 하나 이상의 제2 제어신호(C2)를 입력으로 받아 상기 음소확률점수(PS)를 출력한다.
[57]
특징추출부(120) 및 음성모델처리부(130)의 상세한 구성에 대해서는 후술하기로 한다.
[58]
전원전압변환부(140)는 연결장치(150)로부터 상기 제2 직류전압(DC2)을 입력으로 받아 상기 제3 직류전압(DC3)을 상기 입력신호선택부(110), 상기 특징추출부(120) 및 상기 음성모델처리부(130)로 각각 출력한다.
[59]
연결장치(150)는 상기 음성모델처리부(130)로부터 상기 음소확률점수(PS)를 입력으로 받아 상기 스마트폰(200)으로 출력하며 상기 스마트폰(200)으로부터 데이터와 제1 직류전압(DC1)을 입력으로 받아 상기 입력선택 제어신호(SEL), 상기 제1 제어신호(C1), 상기 제2 제어신호(C2) 및 제2 직류전압(DC2)을 출력한다.
[60]
상기 연결장치(150)는 상기 스마트폰의 데이터 포트(210)를 통하여 상기 스마트폰과 연결되고, 상기 입력신호선택부(110)로 상기 제2 디지털 음성신호(A2)와 상기 입력선택 제어신호(SEL)를 출력하며, 상기 특징추출부(120)로 하나 이상의 상기 제1제어신호(C1)를 출력하고, 상기 음성모델처리부(130)로 하나 이상의 상기 제2제어신호(C2)를 출력하고, 상기 전원전압변환부(140)로 제2 직류전압(DC2)을 출력한다.
[61]
본 발명에 따른 음성인식장치는, 음성인식 과정을 클라우드 컴퓨터를 사용하지 않고 외장 아식(ASIC)칩(100)과 스마트폰(200)을 이용하여 수행하므로 대화내용에 관해 개인 프라이버시가 보장되고, 비교적 계산시간이 많이 소요되는 특징추출부(120, Feature Extractor)와 음성모델처리부(130, Acoustic Model Processor)는 아식(ASIC)칩에 구현하여 동작속도를 빠르게 하고 대용량 메모리가 필요한 문법언어모델처리부(220)의 동작을 스마트폰에서 GPU(270)를 활용한 병렬처리 소프트웨어로 수행함으로써 상기 문법언어모델처리부 동작에 필요한 대용량 메모리를 아식(ASIC)칩에 구현하지 않고도 실시간(real time) 처리가 가능하다.
[62]
스마트폰에서는, 시간에 대해 연속적으로 입력되는 음성신호를 시간 프레임(time frame) 단위로 나누어 처리한다. 스마트폰에서 음성신호를 실시간으로 처리하려면, 한 개의 시간 프레임 단위(예 10ms)의 음성입력 데이터를 음성인식장치가 처리하는데 걸리는 시간이 상기 단위 프레임 지속시간(예 10ms) 보다 짧아야 한다. 실시간 동작여부를 정량적으로 나타내기 위해 실시간 팩터(real time factor)를 수학식 2로 정의하고, 실시간 팩터가 1 보다 커야 실시간 동작이 가능하다.
[63]
[수식2]


[64]
도 1에서 제1 디지털 음성신호(A IN)의 한 프레임 데이터가 ASIC 칩 안에 위치한 특징추출부(120, feature extractor)에 입력되면 상기 특징추출부(120)는 입력된 상기 제1 디지털 음성신호에 해당하는 특징벡터 (FV: feature vector)를 출력한다. 상기 특징벡터(FV)는 40 채널 MFCC(Mel frequency cepstrum coefficient) 출력에 상기 제1 디지털 음성신호(A IN)의 한 프레임 시간 동안의 에너지를 더하여 41개로 구성된다.
[65]
상기 특징벡터(FV)는 상기 ASIC 칩 안에 위치한 음성모델처리부(130, acoustic model processor)로 입력되고 상기 음성모델처리부(130)는 상기 특징벡터에 해당하는 음소확률점수(PS, phoneme score)를 출력한다. 음소(phoneme)는 음성의 최소단위 음절에 해당하는 것으로 영어와 한글의 경우는 대체로 40~61개 정도로 구분되는데, 본 발명의 실시예에서는 트레이닝(training) 과정에 필요한 여유분을 추가하여 상기 음소확률점수(PS)는 61개로 한다.
[66]
상기 음소확률점수는 상기 특징벡터가 각 음소에 해당할 확률을 계산한 표로서 벡터값을 나타낸다. 상기 음소확률점수(PS)가 스마트폰에 입력되면, 스마트폰은 문법언어모델처리부(220, Lexical/Language Model Processing Unit)의 프로그램을 구동하여 상기 음소확률점수에 대응되는 단어(word)를 찾아 단어글자(word text)로 출력한다. 이 출력된 단어글자(word text)는 도1의 출력처리부(230)의 프로그램에 입력되어 사용자가 이용하기 편리한 형태로 변환된다.
[67]
[68]
도 3은 본 발명에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 특징추출부의 상세 블록도이다.
[69]
특징추출부(120)는 패스트 퓨리에 변환부(121), 복수개의 대역통과필터(122), 복수개의 적분기(123), 복수개의 로그부(124) 및 역이산 코사인 변환부(125)를 구비한다.
[70]
상기 특징추출부(120)는 입력된 제1 디지털 음성신호(A IN)에 대해 패스트 퓨리에 변환부(121)에서 패스트 퓨리에 변환(FFT: fast Fourier transform)를 수행하고, 상기 패스트 퓨리에 변환부(121)의 출력을 40개의 대역통과필터(122, BPF: band pass filter)를 통과시키고, 40개의 적분기(123, INT: integrator)에서 상기 각 대역통과필터(122)의 출력인 복수개의 주파수에 대한 파워 스펙트럼(power spectrum)을 각각 한 개씩의 적분기(123)를 통과시켜 한 개의 파워(power)값으로 변환한다.(Parseval 정리)
[71]
이후 상기 변환된 파워(power)값에 대해 복수개의 로그부(124)에서 각각 로그(log) 값을 취한 후에 구해지는 40개의 로그(log) 값들에 대해 역이산 코사인 변환부(125)에서 역이산 코사인 변환(inverse discrete cosine transform:I-DCT)을 수행하여 40개의 MFCC(mel frequency cepstrum coefficient)를 출력한다.
[72]
상기 특징추출부(120)에 입력되는 제1 디지털 음성신호(A IN)는 샘플링 속도가 16kS/sec인 16비트 PCM(pulse code modulation) 데이터인데, 10ms의 프레임(frame) 단위로 나누어 매 10ms마다 한 개의 프레임 데이터를 취하는데 한 프레임 데이터는 160개의 16비트 데이터로 구성된다.
[73]
상기 10ms의 한 프레임 데이터를 직전에 입력된 20ms 데이터와 합하여 가장 최근 시간에 입력된 3개 프레임 데이터인 480개의 데이터를 만든다. 상기 480개 데이터의 앞과 뒤에 각각 16개씩의 '0'을 더하여(zero padding) 512개의 16비트 데이터를 만들고, 상기 512개의 데이터에 대해 FFT를 시행한다. 상기 FFT 결과는 주파수가 0(DC)부터 8000Hz까지 31.25Hz의 균일한 주파수 간격으로 나열된 주파수에 대한 파워 스펙트럼(power spectrum) 값을 나타낸다.
[74]
도 4는 도 3의 대역통과필터의 전달함수 특성을 나타내는 도면이다.
[75]
상기 40개의 대역통과필터(122)는 각각 도 4에 도시된 대로 삼각형 피라미드 형태의 전달함수를 가지는데, 상기 전달함수는 도 2에 도시된 41개 주파수 대역 중에서 인접한 두 개의 주파수 대역에서만 0이 아닌 값을 가지고, 각 전달함수의 면적이 모두 같도록 각 전달함수의 계수값이 조정되어 있다.
[76]
본 발명의 실시예에서 패스트 퓨리에 변환(fast Fourier transform)을 하는 샘플 숫자를 512개로 정한 이유는, 상기 40개의 MFCC 채널의 모든 채널이 3개 이상의 패스트 퓨리에 변환부(121)의 출력 스펙트럼 값을 포함하도록 하기 위함이다. 도 2에서, 40개 MFCC 채널 중에서, 주파수가 가장 낮은 채널인 f1=150Hz부터 f3=246.5Hz까지의 채널은 상기 FFT 출력 중에서 3개의 주파수에 대한 파워(power) 스펙트럼을 포함하고, 주파수가 가장 높은 채널인 f40=6215Hz 부터 f42=7000Hz 까지의 채널은 상기 패스트 퓨리에 변환부(121)의 출력 중에서 25개의 주파수에 대한 파워(power) 스펙트럼을 포함한다. 이는, 상기 패스트 퓨리에 변환부(121)의 출력 파워(power) 스펙트럼은 기존 주파수 대역에서 31.25Hz의 균일한 간격으로 출력되고 (f3-f1)/31.25=3.1이고 (f42-f40)/31.25=25.1이기 때문이다.
[77]
[78]
도 5는 본 발명의 제1 실시예에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 음성모델처리부의 상세 블록도이다.
[79]
상기 음성모델처리부(130)는 41개의 구성요소를 가지는 상기 특징벡터(FV: feature vector)를 입력으로 받아 61개의 구성요소를 가지는 음소확률점수(PS: phoneme score) 벡터를 출력한다. 본 발명의 실시예에서 상기 음성모델처리부(130)는 ASIC 칩 안에 구현해야 하므로, 사용되는 파라미터(parameter) 메모리를 최소화하기 위해 음성인식에 적합한 LSTM(long short term memory) 방식 중에서 제일 간략화된 방식으로 알려진 GRU (gated recurrent unit) 방식을 사용한다. 그런데, 본 발명의 사상은 모든 LSTM-RNN 방식에 적용 가능하다.
[80]
도 5에 도시된 GRU-RNN(131)은 입력신호벡터 x_t, 이전 시간의 상태(state) 벡터 h_t-1, 파라미터값(param)을 입력으로 받고 상태벡터 h_t를 출력한다. 플립플롭(flip-flop)으로 구성된 시간지연소자(136)는 상기 h_t를 입력으로 받아 h_t-1을 출력한다.
[81]
제1 먹스(MUX1, 137)는 상기 h_t-1, 상기 특징추출부(120)의 출력인 상기 특징벡터(FV), 제3 제어신호(C3)를 입력으로 받아 상기 제3 제어신호(C3)에 따라 상기 h_t-1과 상기 특징벡터 중에서 하나를 선택하여 상기 x_t로 출력한다. 제2 먹스(MUX2, 134)는 L1, L2, L3와 제4 제어신호(C4)를 입력으로 받아 상기 제4 제어신호(C4)에 따라 상기 L1, L2, L3 중에서 하나를 선택하여 상기 GRU-RNN의 파라미터값(param)으로 출력한다.
[82]
상기 파라미터값(param)은 GRU-RNN 동작에 필요한 6개 매트릭스(W, U, Wz, Uz, Wr, Ur)와 3개 벡터(bz, bh, br)의 구성요소 값이다. DNN(132, deep neural network)은 상기 h_t-1과 제5 제어신호(C5)를 입력으로 받아 상기 제5 제어신호(C5)가 액티브(active) 상태인 경우에 상기 h_t-1에 해당하는 음소확률점수(PS) 벡터를 출력한다.
[83]
상기 L1, L2, L3은 각각 GRU-RNN의 3 레이어(layer)에 해당하는 상기 파라미터값(param)들(W, U, Wz, Uz, Wr, Ur, bz, bh, br)의 조합으로 파라미터 메모리(133)에 저장된다. controller(135)는 상기 제어신호 C3, C4, C5의 서로 다른 조합을 출력하여 각 레이어의 동작을 제어한다. 레이어 1 동작에서는 상기 제1 먹스(MUX1, 137)는 상기 특징벡터(FV)를 선택하여 x_t로 출력하고 상기 제2 먹스(MUX2, 134)는 상기 L1을 선택하여 파라미터값(param)으로 출력하고, 상기 레이어 1 동작 다음에 실시하는 레이어 2 동작에서는 상기 제1 먹스(MUX1, 137)는 상기 h_t-1을 선택하여 x_t로 출력하고 상기 제2 먹스(MUX2, 134)는 상기 L2를 선택하여 파라미터값(param)으로 출력하고, 상기 레이어 2 동작 다음에 실시하는 레이어 3 동작에서는 상기 제1 먹스(MUX1, 137)는 상기 h_t-1을 선택하여 x_t로 출력하고 상기 제2 먹스(MUX2, 134)는 상기 L3을 선택하여 파라미터값(param)으로 출력한다. 상기 레이어 3 동작 다음에 상기 제5 제어신호(C5)를 액티브(active) 상태로 바꾸어 상기 DNN(132)을 동작시켜 음소확률점수(PS)를 출력하고, 그 다음에 다시 상기 레이어 1 동작부터 시작하여 상기 과정을 반복한다.
[84]
이로써 한 개의 GRU-RNN 하드웨어를 사용하면서도 파라미터값(param)만 변경하여 3 레이어의 GRU-RNN 동작을 수행한다. 도 5의 상기 GRU-RNN (131)의 내부 동작은 다음의 수학식 3, 4, 5, 6 으로 표시된다.
[85]
[수식3]


[86]
[수식4]


[87]
[수식5]


[88]
[수식6]


[89]
상기 수학식 4와 상기 수학식 6의 sigmod 함수는 괄호 { } 안의 값을 0과 1 사이의 값으로 변환하는 함수이고, 상기 수학식 5의 tanh 함수는 괄호 { } 안의 값을 -1과 1 사이의 값으로 변환하는 함수이다.
[90]
본 발명의 실시예에서는 음성인식의 정확도를 높이기 위해, 3 레이어 GRU-RNN 동작을 실시하고 상태(state) 개수를 256개로 하였다. 따라서, 상기 수학식 4, 5, 6의 상기 Wz, Uz, W, U, Wr, Ur은 각각 256 x 256 매트릭스이고, bz, bh, br은 각각 256개의 구성요소를 가지는 벡터이다. 상기 3 레이어의 각 레이어마다 6개의 256 x 256 매트릭스와 3개의 256 x 1 벡터가 필요하고 마지막 단인 상기 DNN(132)에서 256 x 61 매트릭스와 한 개의 256 x 1 벡터가 필요하므로, 본 발명에 따른 상태개수가 256개인 3 레이어 GRU-RNN 동작을 위해 필요한 파라미터값(param) 개수는 수학식 7에 보인대로 대체로 120만개 정도이다.
[91]
[수식7]


[92]
GRU 구조가 아닌 일반적인 LSTM 구조에서는 대략 220만개의 파라미터값(param)이 필요하므로, 본 발명의 실시예에서 GRU-RNN 구조가 LSTM-RNN 구조보다 파라미터의 개수가 45% 정도 작다.
[93]
[94]
도 6은 도 1에 보인 본 발명의 제1 실시예에서 연결장치와 스마트폰의 상세 블록도이다.
[95]
상기 연결장치(150)는 상기 ASIC 칩(100)에 포함되는 연결장치 회로부(151)와 전기적 연결장치(152)를 포함한다. 상기 연결장치 회로부(151)는 USB PHY/LINK 형태의 회로부로서 USB 1.1 또는 USB 2.0 표준을 사용한다.
[96]
상기 전기적 연결장치(152)는 상기 연결장치 회로부(151)를 상기 스마트폰(200)의 데이터 포트(210)에 연결하는데 사용된다. 상기 전기적 연결장치(152)는 커넥터 또는 커넥터와 케이블의 조합으로 구성되고, 상기 커넥터 또는 케이블은 USB 1.1/USB 2.0 표준에 따라 D+, D-, VBUS, GND의 4개 도선을 포함하는데, 케이블일 경우는 상기 D+, D-, VBUS, GND 도선의 케이블 색깔이 각각 그린(green), 화이트(white), 레드(red) 및 블랙(black)이다.
[97]
도 6과 도 1을 비교하면, 상기 연결장치(150)의 상기 전기적 연결장치(152)는 상기 VBUS와 상기 GND 도선을 통하여 상기 스마트폰(200)으로부터 제1직류전압(DC1, 5V)을 공급받아 이를 그대로 바이패스하여 전원전압변환부(140)에 제2직류전압(DC2)으로 공급한다.
[98]
따라서, 본 발명에 따른 상기 ASIC 칩(100)은 상기 스마트폰(200)으로부터 직류전원을 공급받으므로 추가로 외부 전원장치를 필요로 하지 않는다. 상기 연결장치(150)의 상기 전기적 연결장치(152)는 상기 D+, D-, GND 도선으로 양??향 차동신호전송로를 구성하여 상기 연결장치 회로부(151)와 상기 스마트폰(200)의 상기 데이터 포트(210)를 연결한다.
[99]
상기 차동신호전송로는 상기 스마트폰(200)에 내장된 마이크로폰(290)에 수신된 음성신호를 상기 ASIC 칩(100)에 내장된 상기 입력신호선택부(110, MUX)에 제2 디지털 음성신호(A2) 입력으로 전달하는데 사용된다. 이를 위해 상기 마이크로폰(290)에 수신된 음성신호는 상기 스마트폰에 내장된 오디오 코덱(280), 스마트폰 버스(250), USB 호스트 컨트롤러(host controller, 240), 상기 스마트폰 데이터 포트(210)와 상기 연결장치(150)의 상기 전기적 연결장치(152), 상기 연결장치 회로부(151)를 차례로 통과하여 상기 입력신호선택부(110, MUX)에 입력된다.
[100]
또한 상기 양방향 차동신호전송로는, 상기 스마트폰의 CPU(260)로부터 상기 ASIC 칩의 상기 입력신호선택부(110), 상기 특징추출부(120) 및 상기 음성모델처리부(130)에 제어신호나 데이터를 보내거나, 상기 ASIC 칩의 상기 음성모델처리부(130)에서 출력되는 음소확률점수(PS)를 스마트폰의 CPU(260) 또는 GPU(270)에 전송하는데 사용된다.
[101]
[102]
도 7은 본 발명에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 문법언어모델처리부의 프로그램 동작을 설명하기 위한 개념도이다.
[103]
문법언어모델처리는, 방대한 분량의 단어사전(word dictionary)과 문장사전(sentence dictionary)을 필요로 하므로, ASIC 칩에서 하드웨어 방식으로 수행하기가 어렵다. 따라서, 본 발명에서는 상기 문법언어처리를 스마트폰을 이용하여 소프트웨어 방식으로 수행한다.
[104]
최근 스마트폰의 내장 메모리 용량은 DRAM이 4Gbyte, 플래시 메모리가 64GByte 정도이고 향후 이보다 더 증가할 것으로 예상된다. 따라서, 표제 단어(entry word) 개수가 수십만 개인 사전도 스마트폰 메모리에 쉽게 저장할 수 있다. 옥스퍼드 영어 사전(Oxford English dictionary) 2판 경우에 표제단어 숫자가 29만개 정도이므로, 표제단어만 포함하면 6Mbyte 정도 메모리에 저장 가능하다.
[105]
본 발명에서 음성모델처리에 사용한 GRU-RNN 알고리즘은 직전 데이터 결과가 다음 계산에 사용되므로, GPU(graphic processing unit)를 사용한 병렬처리가 어렵다. 따라서, 본 발명에서는 상기 문법언어모델처리부의 프로그램시 GRU-RNN 알고리즘을 사용하지 않고 WFST (weighted finite state transducer) 알고리즘을 사용한다.
[106]
기존의 음성인식장치에서는 문법언어모델 처리를 위해 HMM(hidden Markov model)과 n-gram 모델을 주로 사용한다. 그런데, 상태(state) 개수 S에 대해 HMM은 처리하는 데이터 크기가 S 제곱에 비례하는데(O(S^2)) WFST는 상기 데이터 크기가 S에 비례하므로(O(S)), 최근에는 문법모델처리를 위해 HMM 대신에 주로 WFST를 사용한다. 또 n-gram모델은 데이터 처리에 필요한 사전(dictionary)크기가 수백MByte로 매우 큰데 비해, WFST는 상기 사전 크기가 n-gram 모델보다 훨씬 작아서, 최근에는 언어모델처리를 위해 n-gram 모델 대신에 WFST 모델을 많이 사용한다.
[107]
도 1에 도시된 대로 상기 문법언어모델처리부(220)는 음소확률점수(PS)를 입력으로 받아 단어글자(word text)를 출력한다. 본 발명의 실시예에서, 상기 문법언어모델처리부(220)는 스마트폰에 포함된 AP(application processor)의 CPU/GPU 및 메모리 소자를 활용하는 소프트웨어 방식을 채택하였다.
[108]
도 7의 문법언어모델처리부의 개념도를 보면, 본 발명의 실시예에 따른 문법언어모델처리부(220)는 스마트폰의 CPU/GPU에서 수행되는 문법언어모델처리 프로그램(221)과 스마트폰의 메모리 저장소자 가운데 하나인 DRAM에 저장되는 단어사전(Word Dictionary, 222)과 문장사전(Sentence Dictionary, 223)으로 구성된다. 본 발명의 실시예에서는, 문법언어모델을 문법모델과 언어모델의 두 단계로 분리하지 않고, 묶어서 한 단계로 처리한다. 상기 문법언어모델처리 프로그램(221)은 입력되는 상기 음소확률점수(PS)에 WFST 알고리즘을 적용하고 상기 단어사전(222)과 상기 문장사전(223)을 활용하여 상기 단어글자(word text)를 출력한다.
[109]
또한 본 발명에서는 OpenCL을 활용한 GP(general purpose) GPU 병렬 프로그램을 최대한 활용하여 상기 문법언어모델처리 프로그램(221)의 수행시간을 최소화하여 실시간 동작을 확보하였다.
[110]
도 8은 본 발명에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 스마트폰에서 수행되는 음성인식 프로그램의 의사 코드(pseudo code)를 나타내는 도면이다.
[111]
OpenCL을 사용하면 병렬 GPU 프로그램을 비교적 쉽게 제작할 수 있다.
[112]
[113]
도 9는 본 발명에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 제3 디지털 음성신호 생성부의 회로도이다.
[114]
상기 제3 디지털 음성신호 생성부(160)는, 복수 개의 마이크로폰(300)에서 수신되는 복수 개의 아날로그 신호를 처리하여 한 개의 상기 제3 디지털 음성신호(A3)로 출력한다. 이를 위해, 상기 복수 개의 마이크로폰(300) 출력신호를 각각 입력으로 받아 증폭된 아날로그 신호를 출력하는 복수 개의 아날로그 증폭기(163), 상기 아날로그 증폭기의 출력을 각각 입력으로 받아 디지털 신호를 출력하는 복수 개의 아날로그-디지털 변환기(162) 및 상기 복수 개의 아날로그-디지털 변환기의 출력을 모두 입력으로 받아 한 개의 상기 제3 디지털 음성신호(A3)을 출력하는 한 개의 디지털신호처리 부(161)를 구비한다.
[115]
상기 디지털신호처리부(161)는 빔포밍(beamforming)과 노이즈 감소기능을 포함한다. 상기 복수 개의 아날로그 증폭기(163), 상기 복수 개의 아날로그-디지털 변환기(162)와 상기 한 개의 디지털신호처리부(161)는 입력신호선택부(110), 특징추출부(120), 음성모델처리부(130), 전원전압변환부(140) 및 연결장치 회로부(151)와 함께 한 개의 ASIC 칩(100)에 구현할 수 있다.
[116]
[117]
도 10은 본 발명에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 출력처리부의 프로그램 동작을 설명하기 위한 도면이다.
[118]
본 발명에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 출력처리부(230)는 프로그램 기능을 통해 문법언어모델처리부(220)의 출력인 단어글자(word text)를 사용자가 이용하기 편리하게 변환한다.
[119]
즉, 출력처리부(230)는 상기 문법언어모델처리부(220)의 출력인 단어글자(word text)를, 상기 스마트폰(200)의 디스플레이(231)에 표시하고, 상기 스마트폰의 메모리(232)에 저장하고, 음성합성장치(233)를 통하여 음성으로 변환하여 상기 스마트폰에 유선 또는 무선으로 연결된 스피커(234)를 통하여 출력하거나, 상기 스마트폰의 무선전송장치(235)를 통하여 상기 스마트폰 외부의 다른 장치(400)로 전송할 수 있다.
[120]
[121]
도 11은 본 발명의 제2 실시예에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 블록도이다.
[122]
도11 과 도 1을 비교하면, 도 11은 도 1에 DRAM칩(500), DRAM 제어부(170)와 다섯 개의 신호가 추가되었다. 상기 다섯 개의 신호는 각각 제1 파라미터 데이터(Dp1), 제2 파라미터 데이터(Dp2), 제3 파라미터 데이터(Dp3), 제4 파라미터 데이터(Dp4)와 제6 제어신호(C6)이다. 본 발명의 제1 실시예에서는, 신경망(neural network) 계층(layer) 수가 3이고 상태(state)수가 250인 GRU-RNN을 구현하기 위해 대략 120만개의 파라미터가 필요하며(수학식 7), 이를 도 5에 도시된 음성모델처리부(130)의 파라미터 메모리(133)에 저장한다.
[123]
본 발명의 제1 실시예에서는 상기 파라미터 메모리(133)를 아식(ASIC)칩 내부에 SRAM(static random access memory) 형태로 제작하는데 상당히 넓은 칩 면적을 차지한다. 따라서 본 발명의 제1 실시예에서는 상기 파라미터 메모리(133)의 칩 면적 제약 때문에 신경망 계층(neural network layer) 숫자를 4 이상으로 증가시키기가 어렵다. 최근 단어(word) 정확도가 95% 이상인 음성인식장치에서는 신경망 계층 수가 7이다.
[124]
본 발명의 제2 실시예에서는, 신경망 계층 숫자를 8 이상으로 증가시켜 단어 정확도를 향상시키기 위해 별도의 DRAM칩(500)을 추가하여 GRU-RNN 동작에 필요한 파라미터를 상기 DRAM칩에 저장한다. GRU-RNN 동작수행에 필요한 파라미터 값은 필요할 때마다 상기 DRAM칩(500)에서 읽어오는데, 이를 위해 상기 DRAM칩(500)은 제1 파라미터 데이터(Dp1)을 출력하고 상기 DRAM 제어부(170)는 상기 제1 파라미터 데이터(Dp1)를 입력하고 제3 파라미터 데이터(Dp3)를 출력한다. 음성모델처리부(130)는 제3 파라미터 데이터(Dp3)를 입력하여 GRU-RNN 동작을 수행한다. 신경망 트레이닝 과정에서 상기 스마트폰(200)에서 상기 DRAM칩(500)으로 파라미터 값들을 다운로드하는데, 이를 위해 상기 연결장치(150)는 상기 데이터 포트(210)를 통하여 상기 스마트폰(200)으로부터 데이터를 입력받고 제6 제어신호(C6)와 제4 파라미터 데이터(Dp4)를 출력한다.
[125]
상기 DRAM 제어부(170)는 상기 제6 제어신호(C6)와 상기 제4 파라미터 데이터(Dp4)를 입력하고 상기 제6 제언신호에 따라 상기 제4 파라미터 데이터(Dp4)를 제2 파라미터 데이터(Dp2)로 출력한다. 상기 DRAM칩(500)은 상기 제2 파라미터 데이터(Dp2)를 입력하여 상기 DRAM칩(500) 내부에 저장한다. 상기 DRAM칩(500)은 그래픽 DRAM으로 하고 상기 제1 파라미터 데이터(Dp1), 상기 제2 파라미터 데이터(Dp2)와 상기 제3 파라미터 데이터(Dp3)는 8비트 또는 그 이상의 디지털 바이너리(binary, 이진) 신호이다.
[126]
[127]
도 12는 본 발명의 제2 실시예에 따른 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치의 음성모델처리부의 상세 블록도이다.
[128]
DRAM 제어부(170)는, 상기 연결장치(150)의 출력신호인 제6 제어신호(C6)와 상기 DRAM칩(500)의 출력신호인 제1 파라미터 데이터(Dp1)를 입력으로 받고, 상기 제6 제어신호에 따라 상기 제1 파라미터 데이터(Dp1)를 제3 파라미터 데이터(Dp3)로 출력한다. 버퍼 메모리(138)는 상기 제3 파라미터 데이터(Dp3)를 입력으로 받아 파라미터값(param)을 출력한다. 상기 파라미터값(param)은 GRU-RNN(131)에 입력되어 상기 수학식 4, 상기 수학식 5와 상기 수학식 6의 여섯 개 매트릭스(Wz, Uz, W, U, Wr, Ur)의 구성요소 값으로 대체된다.
[129]
상기 GRU-RNN이 250개의 병렬 MAC(multiplier and accumulator)로 구성될 경우에 상기 파라미터값(param)은 250개의 파라미터 값을 나타낸다. 한 파라미터가 16비트인 경우에 상기 파라미터값(param)은 250 x 16 = 4,096비트 신호이다. 상기 제3 파라미터 데이터(Dp3)가 32비트 바이너리 디지털 신호이면, 상기 버퍼메모리(138)의 입력신호(Dp3)와 출력신호(param)의 비트 수는 각각 32비트와 4,096비트로서 입력신호와 출력신호의 비트 수가 서로 달라서, 상기 버퍼메모리(138)는 입력신호의 비트 수와 출력신호의 비트 수를 조정하는 역할을 수행한다.
[130]
상기 GRU-RNN이 250개의 병렬 MAC로 구성되고 상기 DRAM칩(500)이 GDDR5(graphic double data rate 5) 표준을 사용하여 5Gbps 32비트 병렬 출력하는 그래픽 DRAM이면, 상기 제1 파라미터 데이터(Dp1), 상기 제2 파라미터 데이터(Dp2), 상기 제3 파라미터 데이터(Dp3)이 모두 데이터 대역폭(data bandwidth)이 32 x 5Gbps = 160 Gbps가 된다.
[131]
상기 버퍼메모리(138)의 동작에 의해 상기 제3 파라미터 데이터(Dp3)와 상기 파라미터값(param)은 데이터 대역폭이 모두 160 Gbps가 된다. 또 파라미터 한 개가 16비트이면, 상기 경우에 250개의 병렬 MAC로 구성된 상기 GRU-RNN의 동작 클락속도는 160 Gbps / (250 x 16) = 40MHz 또는 그 이하이어야 한다.
[132]
[133]
도 13은 본 발명의 제2 실시예에서 연결장치와 스마트폰의 상세 블록도이다. 상기 DRAM칩(500)은 상기 ASIC칩(100)에서 공급하는 제3 직류전압(DC3)을 공급전압으로 사용한다.
[134]
[135]
이상에서 본 발명의 바람직한 실시예에 대하여 상세히 설명하였지만, 본 발명의 권리범위가 이에 한정되는 것이 아니라 다음의 청구범위에서 정의하는 본 발명의 기본 개념을 바탕으로 보다 다양한 실시예로 구현될 수 있으며, 이러한 실시예들 또한 본 발명의 권리범위에 속하는 것이다.

청구범위

[청구항 1]
실시간 음성인식 장치에 있어서, 제1 디지털 음성신호를 입력으로 받아 특징벡터를 생성하고 상기 특징벡터로부터 음소확률점수를 출력하는 아식(ASIC)칩; 및 데이터 포트를 통해 상기 아식(ASIC)칩과 연결되며 상기 아식(ASIC)칩으로부터 상기 음소확률점수를 입력으로 받아 단어글자를 출력하고 상기 단어글자를 사용자의 필요에 따라 처리하여 출력하는 스마트폰;을 포함하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 2]
제1 항에 있어서, 상기 아식(ASIC)칩은 입력선택 제어신호(SEL)에 따라 제2 디지털 음성신호와 제3 디지털 음성신호 중에서 한 개를 선택하여 상기 제1 디지털 음성신호(A IN)로 출력하는 입력신호 선택부; 상기 제1 디지털 음성신호와 하나 이상의 제1 제어신호(C1)를 입력으로 받아 상기 특징벡터를 출력하는 특징추출부; 상기 특징벡터와 하나 이상의 제2 제어신호(C2)를 입력으로 받아 상기 음소확률점수를 출력하는 음성모델처리부; 상기 음성모델처리부로부터 상기 음소확률점수를 입력으로 받아 상기 스마트폰으로 출력하며 상기 스마트폰으로부터 데이터와 제1 직류전압(DC1)을 입력으로 받아 상기 제2 디지털 음성신호, 상기 입력선택 제어신호(SEL), 상기 제1 제어신호(C1), 상기 제2 제어신호(C2) 및 제2 직류전압(DC2)을 출력하는 연결장치; 및 상기 제2 직류전압(DC2)을 입력으로 받아 제3 직류전압(DC3)을 출력하는 전원전압변환부;를 구비하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 3]
제 2항에 있어서, 상기 연결장치는 상기 스마트폰의 데이터 포트를 통하여 상기 스마트폰과 연결되고, 상기 입력신호선택부로 상기 제2 디지털 음성신호(A2)와 상기 입력선택 제어신호(SEL)를 출력하며, 상기 특징추출부로 하나 이상의 상기 제1제어신호를 출력하고, 상기 음성모델처리부로 하나 이상의 상기 제2제어신호를 출력하고, 상기 전원전압변환부로 제2 직류전압(DC2)을 출력하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 4]
제 3항에 있어서, 상기 연결장치는 상기 아식칩에 포함되는 연결장치 회로부; 및 커넥터 또는 케이블을 통해 상기 스마트폰의 데이터 포트와 연결되는 전기적 연결장치;를 구비하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 5]
제 4항에 있어서, 상기 연결장치는 상기 전기적 연결장치를 통해 상기 스마트폰으로부터 전원을 공급받는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 6]
제 1항 또는 제 2항에 있어서, 상기 스마트폰과 상기 아식칩은 USB 1.1 또는 USB 2.0 표준에 따라 연결되는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 7]
제 2항에 있어서, 상기 전원전압변환부는 상기 제3 직류전압(DC3)을 상기 연결장치, 상기 입력신호선택부, 상기 특징추출부 및 상기 음성모델처리부로 각각 출력하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 8]
제 2항에 있어서, 상기 음성모델처리부는 LSTM(long short term memory) 또는 GRU(gated recurrent unit) 방식의 RNN(recurrent neural network) 알고리즘을 사용하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 9]
제 2항에 있어서, 상기 아식(ASIC)칩은 상기 제3 디지털 음성신호를 생성하여 상기 입력신호 선택부에 제공하는 제3 디지털 음성신호 생성부를 더 구비하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 10]
제 9항에 있어서, 상기 제3 디지털 음성신호 생성부는 외부의 마이크로폰에서 출력되는 적어도 하나 이상의 아날로그 오디오 신호를 각각 입력으로 받아 이를 증폭하여 적어도 하나 이상의 아날로그 출력신호를 출력하는 적어도 하나 이상의 아날로그 증폭기; 상기 적어도 하나 이상의 아날로그 출력신호를 입력으로 받아 적어도 하나 이상의 디지털 음성신호를 출력하는 적어도 하나 이상의 아날로그-디지털 변환기; 및 상기 적어도 하나 이상의 디지털 음성신호를 입력으로 받아 하나의 제3 디지털 음성신호를 출력하는 디지털 신호처리부;를 구비하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 11]
제 10항에 있어서, 상기 디지털 신호처리부는 빔포밍 기능을 포함하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 12]
제 1항 또는 제 2항에 있어서, 상기 스마트폰은 상기 아식(ASIC)칩으로부터 상기 음소확률점수를 입력으로 받아 단어글자(word text)를 출력하여 문법언어모델 처리 기능을 수행하는 문법언어모델 처리부; 및 상기 단어글자(word text)를 입력으로 받아 상기 사용자의 필요에 따라 출력 처리하는 기능을 수행하는 출력처리부;를 구비하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 13]
제 12항에 있어서, 상기 출력처리부는 상기 단어글자를 상기 스마트폰에 내장된 디스플레이 장치에 표시하거나, 상기 스마트폰의 메모리부에 저장하거나, 상기 스마트폰의 무선통신 기능을 이용하여 외부 장치로 전송하거나, 상기 스마트폰에서 음성으로 합성하여 상기 스마트폰에 내장된 음성출력장치 또는 상기 스마트폰과 유선 또는 무선으로 연결된 외부 음성출력장치로 출력하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 14]
제 12항에 있어서, 상기 문법언어모델 처리부는 상기 문법언어모델 처리 기능을 수행하기 위해 상기 스마트폰에 내장된 중앙처리장치(Central Processing Unit:CPU) 및 그래픽처리장치(Graphic Processing Unit:GPU)를 동시에 사용하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 15]
실시간 음성인식 장치에 있어서, 제1 파라미터 데이터(Dp1)를 출력하고 제2 파라미터 데이터(Dp2)를 입력으로 받는 디램(DRAM)칩; 제1 디지털 음성신호와 상기 제1 파라미터 데이터(Dp1)를 입력으로 받아 음소확률점수(PS)와 제2 파라미터 데이터(Dp2)를 출력하는 아식(ASIC)칩; 및 데이터 포트를 통해 상기 아식(ASIC)칩과 연결되며 상기 아식(ASIC)칩으로부터 상기 음소확률점수를 입력으로 받아 단어글자를 출력하고 상기 단어글자를 사용자의 필요에 따라 처리하여 출력하는 스마트폰;을 포함하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 16]
제 15항에 있어서, 상기 아식(ASIC)칩은 입력선택 제어신호(SEL)에 따라 제2 디지털 음성신호와 제3 디지털 음성신호 중에서 한 개를 선택하여 상기 제1 디지털 음성신호(A IN)로 출력하는 입력신호 선택부; 상기 제1 디지털 음성신호와 하나 이상의 제1 제어신호(C1)를 입력으로 받아 상기 특징벡터를 출력하는 특징추출부; 상기 특징벡터와 하나 이상의 제2 제어신호(C2)와 제3 파라미터 데이터(Dp3)를 입력으로 받아 상기 음소확률점수를 출력하는 음성모델처리부; 상기 제1 파라미터 데이터(Dp1), 제4 파라미터 데이터(Dp4), 하나 이상의 제6 제어신호(C6)를 입력으로 받고 상기 제2 파라미터 데이터와 상기 제3 파라미터 데이터를 출력하는 디램(DRAM) 제어부; 상기 음성모델처리부로부터 상기 음소확률점수를 입력으로 받아 상기 스마트폰으로 출력하며 상기 스마트폰으로부터 데이터와 제1 직류전압(DC1)을 입력으로 받아 상기 제2 디지털 음성신호(A2), 상기 제4 파라미터 데이터(Dp4), 상기 입력선택 제어신호(SEL), 상기 제1 제어신호(C1), 상기 제2 제어신호(C2), 상기 제6 제어신호(C6) 및 제2 직류전압(DC2)을 출력하는 연결장치; 및 상기 제2 직류전압(DC2)을 입력으로 받아 상기 제3 직류전압(DC3)을 출력하는 전원전압변환부;를 구비하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 17]
제 16항에 있어서, 상기 연결장치는 상기 스마트폰의 데이터 포트를 통하여 상기 스마트폰과 연결되고, 상기 입력신호선택부로 상기 제2 디지털 음성신호(A2)와 상기 입력선택 제어신호(SEL)를 출력하며, 상기 특징추출부로 하나 이상의 상기 제1제어신호를 출력하고, 상기 음성모델처리부로 하나 이상의 상기 제2제어신호를 출력하고, 상기 디램(DRAM) 제어부로 하나 이상의 상기 제6제어신호와 상기 제4 파라미터 데이터를 출력하고, 상기 전원전압변환부로 제2 직류전압(DC2)을 출력하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 18]
제16항에 있어서, 상기 전원전압변환부는 상기 제3 직류전압(DC3)을 상기 입력신호선택부, 상기 특징추출부, 상기 음성모델처리부, 상기 연결장치, 상기 DRAM 제어부 및 상기 DRAM칩으로 각각 출력하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 19]
제 15항에 있어서, 상기 DRAM칩은 상기 DRAM칩의 동작에 필요한 모든 직류공급전압을 상기 아식(ASIC)칩으로부터 공급받는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 20]
제 15항에 있어서, 상기 제1 파라미터 데이터(Dp1)와 상기 제2 파라미터 데이터(Dp2)는 각각 8비트 이상의 비트수를 가지는 이진(바이너리) 디지털 신호인 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 21]
제 17항에 있어서, 상기 연결장치는 커넥터 또는 케이블을 통해 상기 스마트폰의 데이터 포트와 연결되는 전기적 연결장치를 통해 상기 스마트폰으로부터 전원을 공급받는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 22]
제 15항 또는 제 16항에 있어서, 상기 스마트폰과 상기 아식칩은 USB 1.1 또는 USB 2.0 표준에 따라 연결되는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 23]
제 16항에 있어서, 상기 음성모델처리부는 LSTM(long short term memory) 또는 GRU(gated recurrent unit) 방식의 RNN(recurrent neural network) 알고리즘을 사용하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 24]
제 16항에 있어서, 상기 아식(ASIC)칩은 상기 제3 디지털 음성신호를 생성하여 상기 입력신호 선택부에 제공하는 제3 디지털 음성신호 생성부를 더 구비하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 25]
제 24항에 있어서, 상기 제3 디지털 음성신호 생성부는 외부의 마이크로폰에서 출력되는 적어도 하나 이상의 아날로그 오디오 신호를 각각 입력으로 받아 이를 증폭하여 적어도 하나 이상의 아날로그 출력신호를 출력하는 적어도 하나 이상의 아날로그 증폭기; 상기 적어도 하나 이상의 아날로그 출력신호를 입력으로 받아 적어도 하나 이상의 디지털 음성신호를 출력하는 적어도 하나 이상의 아날로그-디지털 변환기; 및 상기 적어도 하나 이상의 디지털 음성신호를 입력으로 받아 하나의 제3 디지털 음성신호를 출력하는 디지털 신호처리부;를 구비하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 26]
제 25항에 있어서, 상기 디지털 신호처리부는 빔포밍 기능을 포함하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 27]
제 15항 또는 제 16항에 있어서, 상기 스마트폰은 상기 아식(ASIC)칩으로부터 상기 음소확률점수를 입력으로 받아 단어글자(word text)를 출력하여 문법언어모델 처리 기능을 수행하는 문법언어모델 처리부; 및 상기 단어글자(word text)를 입력으로 받아 상기 사용자의 필요에 따라 출력 처리하는 기능을 수행하는 출력처리부;를 구비하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 28]
제 27항에 있어서, 상기 출력처리부는 상기 단어글자를 상기 스마트폰에 내장된 디스플레이 장치에 표시하거나, 상기 스마트폰의 메모리부에 저장하거나, 상기 스마트폰의 무선통신 기능을 이용하여 외부 장치로 전송하거나, 상기 스마트폰에서 음성으로 합성하여 상기 스마트폰에 내장된 음성출력장치 또는 상기 스마트폰과 유선 또는 무선으로 연결된 외부 음성출력장치로 출력하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.
[청구항 29]
제 27항에 있어서, 상기 문법언어모델 처리부는 상기 문법언어모델 처리 기능을 수행하기 위해 상기 스마트폰에 내장된 중앙처리장치(Central Processing Unit:CPU) 및 그래픽처리장치(Graphic Processing Unit:GPU)를 동시에 사용하는 것을 특징으로 하는 아식칩과 스마트폰을 구비하는 실시간 음성인식 장치.

도면

[도1]

[도2]

[도3]

[도4]

[도5]

[도6]

[도7]

[도8]

[도9]

[도10]

[도11]

[도12]

[도13]