KR20190112680A - 인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법 - Google Patents

인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법 Download PDF

Info

Publication number
KR20190112680A
KR20190112680A KR1020190113337A KR20190113337A KR20190112680A KR 20190112680 A KR20190112680 A KR 20190112680A KR 1020190113337 A KR1020190113337 A KR 1020190113337A KR 20190113337 A KR20190113337 A KR 20190113337A KR 20190112680 A KR20190112680 A KR 20190112680A
Authority
KR
South Korea
Prior art keywords
word
class
speech
spoken
ratio
Prior art date
Application number
KR1020190113337A
Other languages
English (en)
Other versions
KR102281504B1 (ko
Inventor
채종훈
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020190113337A priority Critical patent/KR102281504B1/ko
Publication of KR20190112680A publication Critical patent/KR20190112680A/ko
Priority to US16/598,897 priority patent/US11398219B2/en
Application granted granted Critical
Publication of KR102281504B1 publication Critical patent/KR102281504B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/04Details of speech synthesis systems, e.g. synthesiser structure or memory management
    • G10L13/047Architecture of speech synthesisers
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • G10L13/10Prosody rules derived from text; Stress or intonation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/033Voice editing, e.g. manipulating the voice of the synthesiser
    • G10L13/0335Pitch control

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 일 실시 예에 따른 인공 지능을 이용한 음성 합성 장치는 메모리와 단말기로부터 사용자가 발화한 단어들에 대한 발화 정보를 수신하는 통신 프로세서 및 상기 발화 정보에 기반하여, 상기 사용자가 발화한 복수의 발화 단어들 각각에 대응하는 복수의 발화 IP 비율들을 획득하고, 복수의 성우들 각각에 상응하는 복수의 IP 비율 테이블들 및 상기 복수의 발화 IP 비율들을 비교하고, 비교 결과에 기초하여, 복수의 미 발화 단어들 각각에 대응하는 복수의 미 발화 IP 비율들을 획득하고, 상기 복수의 발화 IP 비율들 및 상기 복수의 미 발화 IP 비율들에 기초하여, 개인화 합성 음성 모델을 생성하는 프로세서를 포함하고, 단어의 띄어 읽기 정도를 나타내는 복수의 클래스들은 제1 띄어 읽기 정도에 대응하는 제1 클래스, 상기 제1 띄어 읽기 정도보다 큰 제2 띄어 읽기 정도에 대응하는 제2 클래스, 상기 제2 띄어 읽기 정도보다 큰 제3 띄어 읽기 정도에 대응하는 제3 클래스를 포함하고, 상기 마이너 클래스는 상기 제1 내지 3 클래스들 중 개수가 가장 적은 클래스이고, 각 발화 IP 비율 및 각 미 발화 IP 비율은 단어가 상기 마이너 클래스로 분류된 비율일 수 있다.

Description

인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법{VOICE SYTHESIZER USING ARTIFICIAL INTELLIGENCE AND OPERATING METHOD THEREOF}
본 발명은 음성 합성 장치에 관한 것으로, 보다 상세하게는 띄어 읽기 예측 성능을 고도화시킬 수 있는 음성 합성 장치에 관한 것이다.
스마트폰에 시작된 음성인식 기술 경쟁은 사물인터넷(IoT)의 본격 확산과 맞물려 이제 집 안에서 본격적으로 불붙을 전망이다.
특히, 주목할 만 한 점은 그 기기가 음성을 매개로 명령을 내리고, 대화를 나눌 수도 있는 인공지능(AI) 기기라는 점이다.
음성인식 서비스는 막대한 양의 데이터베이스를 활용하여, 사용자의 질문에 최적 답변을 선택하는 구조를 갖고 있다.
음성검색 기능 역시 입력된 음성데이터를 클라우드 서버에서 텍스트로 변환하여 분석하고, 그 결과에 따른 실시간 검색결과를 기기로 재전송하는 방식이다.
클라우드 서버는 수많은 단어들을 성별, 연령별, 억양별로 구분된 음성 데이터로 구분하여, 저장하고 실시간으로 처리할 수 있는 컴퓨팅 능력을 보유하고 있다.
음성 인식은 더 많은 음성데이터가 축적될수록, 인간과 동등한(Human parity) 수준 정도로, 정확해 질 것이다.
최근에는, 합성 음성 모델을 이용하여, 특정 화자의 목소리로 합성된 합성 음성을 제공하는 서비스가 등장하고 있다.
합성 음성 모델의 띄어 읽기 학습을 위해서는 하나의 문장(훈련 데이터) 및 문장을 구성하는 단어들에 띄어 읽기 정도를 레이블링한 레이블링 데이터를 포함하는 트레이닝 셋이 필요하다.
띄어 읽기 정도는 제1 띄어 읽기 정도, 제1 띄어 읽기 정도보다 큰 제2 띄어 읽기 정도, 제2 띄어 읽기 보다 큰 제3 띄어 읽기 정도로 구분될 수 있다.
하나의 문장에 대해, 합성 음성의 출력 시, 특정 띄어 읽기 정도의 카운팅 수가, 다른 띄어 읽기 정도의 카운팅 수보다 작은 경우와 같은 불균형이 일어나는 데이터를 사용하는 경우, 합성 음성 모델의 성능이 저하될 수 있다.
또한, 기존의 합성 음성 모델의 경우, 사용자의 발화 스타일을 고려하지 않고, 특정 성우의 발화 스타일에 따라 단어들을 띄어 읽는 일률적인 합성 음성을 제공하는데 그쳤다. 이에 따라 때로는 사용자의 합성 음성 청취에 거부감이 드는 문제가 있다.
본 발명은 인공 지능을 이용하여, 합성 음성의 출력 시, 띄어 읽기 예측 성능을 향상시킬 수 있는 음성 합성 장치의 제공을 목적으로 한다.
본 발명은 인공 지능을 이용하여, 개인의 띄어 읽기 스타일에 최적화된 합성 음성을 출력할 수 있는 음성 합성 장치의 제공을 목적으로 한다.
본 발명의 일 실시 예에 따른 본 발명의 일 실시 예에 따른 인공 지능을 이용한 음성 합성 장치는 메모리와 단말기로부터 사용자가 발화한 단어들에 대한 발화 정보를 수신하는 통신 프로세서 및 상기 발화 정보에 기반하여, 상기 사용자가 발화한 복수의 발화 단어들 각각에 대응하는 복수의 발화 IP 비율들을 획득하고, 복수의 성우들 각각에 상응하는 복수의 IP 비율 테이블들 및 상기 복수의 발화 IP 비율들을 비교하고, 비교 결과에 기초하여, 복수의 미 발화 단어들 각각에 대응하는 복수의 미 발화 IP 비율들을 획득하고, 상기 복수의 발화 IP 비율들 및 상기 복수의 미 발화 IP 비율들에 기초하여, 개인화 합성 음성 모델을 생성하는 프로세서를 포함하고, 단어의 띄어 읽기 정도를 나타내는 복수의 클래스들은 제1 띄어 읽기 정도에 대응하는 제1 클래스, 상기 제1 띄어 읽기 정도보다 큰 제2 띄어 읽기 정도에 대응하는 제2 클래스, 상기 제2 띄어 읽기 정도보다 큰 제3 띄어 읽기 정도에 대응하는 제3 클래스를 포함하고, 상기 마이너 클래스는 상기 제1 내지 3 클래스들 중 개수가 가장 적은 클래스이고, 각 발화 IP 비율 및 각 미 발화 IP 비율은 단어가 상기 마이너 클래스로 분류된 비율일 수 있다.
본 발명의 실시 예에 따르면, 합성 음성 모델의 성능이 향상됨에 따라, 자연스러운 합성 음성의 출력을 기대할 수 있다. 이에 따라, 청취자는 합성 음성의 청취에 거부감을 갖지 않을 수 있다.
본 발명의 실시 예에 따르면, 개인화된 합성 음성 모델이 제공됨에 따라, 사용자의 발화 스타일에 맞는 합성 음성이 출력되어, 사용자의 음성 인식 서비스에 대한 만족도가 크게 향상될 수 있다.
도 1은 본 발명과 관련된 단말기를 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 음성 시스템을 설명하기 위한 도면이다.
도 2는 본 발명에 따른 변형 가능한 이동 단말기의 다른 예를 설명하기 위한 개념도이다.
도 3은 본 발명의 일 실시 예에 따라 음성 신호로부터 사용자의 발화 특징을 추출하는 과정을 설명하는 도면이다.
도 4는 본 발명의 일 실시 예에 따른 음성 신호를 파워 스펙트럼으로 변환한 예를 설명한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 음성 합성 서버의 구성을 설명하기 위한 블록도이다.
도 6 및 도 7은 종래의 합성 음성을 통해 띄어 읽기 예측 시, 클래스 불균형 문제가 발생함을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시 예에 따른, 음성 합성 서버의 동작 방법을 설명하기 위한 흐름도이다.
도 9는 본 발명의 실시 예에 따른, 사전 정보에 기초하여, 단어에 대한 데이터 증강을 수행하는 과정을 설명하기 위한 흐름도이다.
도 10은 본 발명의 실시 예에 따라, 데이터 베이스에 저장된 단어 별, IP 빈도 수 대비, Non-IP 빈도 수를 보여주고 있다.
도 11은 Non-IP 빈도 수 대비 IP 빈도 수 간의 비율에 따라 결정된 오버 샘플링 레이트를 설명하기 위한 도면이다.
도 12는 본 발명의 일 실시 예에 따른 시스템의 동작 방법을 설명하기 위한 래더 다이어 그램이다.
도 13은 순환 인공 신경망의 기본 구조를 설명하기 위한 도면이다.
도 14는 본 발명의 일 실시 예에 따라, 합성 음성 모델을 이용하여, 문장을 구성하는 단어의 클래스를 구분하는 과정을 설명하는 도면이다.
도 15는 본 발명의 또 다른 실시 예에 따른 인공 지능을 이용한 음성 합성 서버의 동작 방법을 설명하기 위한 흐름도이다.
도 16은 본 발명의 일 실시 예에 따라 데이터 베이스에 저장된 각 단어의 사전 정보를 설명하는 도면이다.
도 17은 본 발명의 일 실시 예에 따른 합성 음성 모델의 예를 설명하는 도면이다.
도 18 내지 도 21은 본 발명의 실시 예에 따라 클래스 분류 확률 세트를 단어의 IP 비율 및 Non-IP 비율을 반영하여, 보정하는 예를 설명하는 도면이다.
도 22는 본 발명의 실시 예에 따라 IP 비율에 기반하여, 새롭게 획득된 제2 클래스 분류 확률 세트를 이용하여, 합성 음성 모델을 학습하는 과정을 설명하는 도면이다.
도 23은 본 발명의 또 다른 시스템의 동작 방법을 설명하기 위한 래더 다이어그램이다.
도 24는 본 발명의 실시 예에 따라, 복수의 성우들 각각에 대응하는 복수의 IP 테이블들을 설명하는 도면이다.
도 25는 본 발명의 일 실시 예에 따른 일반 IP 비율 테이블을 설명하는 도면이다.
도 26은 사용자의 발화 정보에 기초하여, 획득된 발화 단어들에 대한 개인화 IP 비율들 및 일반 IP 비율들을 포함하는 테이블을 설명하는 도면이다.
도 27은 본 발명의 일 실시 예에 따른 IP 비율 모델을 설명하기 위한 도면이다.
도 28은 본 발명의 실시 예에 따라 사용자가 미 발화한 단어들의 개인화 IP 비율들이 유추된 결과를 설명하는 도면이다.
도 29는 본 발명의 실시 예에 따라 음성 합성 장치가 개인화 합성 음성 모델을 업데이트하는 과정을 설명하는 흐름도이다.
도 30은 본 개시의 또 다른 실시 예에 따른 시스템의 동작 방법을 설명하기 위한 래더 다이어그램이다.
도 31은 본 개시의 일 실시 예에 따라 특정 사용자의 발화 정보에 기초하여 획득된 개인화 IP 비율 테이블을 설명하는 도면이다.
도 32는 본 개시의 실시 예에 따라, 개인화 IP 비율 테이블과 복수의 성우들 각각에 대응하는 복수의 IP 비율 테이블들 간을 비교하는 과정을 설명하는 도면이다.
도 33은 본 개시의 실시 예에 따라 최 근접 IP 비율 테이블에 포함된 IP 비율들을 미발화 단어들의 IP 비율들로 이용하는 예를 설명하는 도면이다.
도 34는 본 개시의 일 실시 예에 따른 개인화 합성 음성 모델의 학습 과정을 설명하는 도면이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 명세서에서 설명되는 단말기에는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)) 등이 포함될 수 있다.
그러나, 본 명세서에 기재된 실시 예에 따른 단말기(100)는 스마트 TV, 데스크탑 컴퓨터, 디지털사이니지 등과 같은 고정 단말기에도 적용될 수도 있다.
또한, 본 발명의 실시 예에 따른 단말기(100)는 고정 또는 이동 가능한 로봇에도 적용될 수 있다.
또한, 본 발명의 실시 예에 따른 단말기(100)는 음성 에이전트의 기능을 수행할 수 있다. 음성 에이전트는 사용자의 음성을 인식하고, 인식된 사용자의 음성에 적합한 응답을 음성으로 출력하는 프로그램일 수 있다.
단말기(100)는 무선 통신부(110), 입력부(120), 러닝 프로세서(130), 센싱부(140), 출력부(150), 인터페이스부(160), 메모리(170), 프로세서(180) 및 전원 공급부(190)를 포함할 수 있다.
무선 통신부(110)는, 방송 수신 모듈(111), 이동통신 모듈(112), 무선 인터넷 모듈(113), 근거리 통신 모듈(114), 위치정보 모듈(115) 중 적어도 하나를 포함할 수 있다.
방송 수신 모듈(111)은 방송 채널을 통하여 외부의 방송 관리 서버로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다.
이동통신 모듈(112)은, 이동통신을 위한 기술표준들 또는 통신방식(예를 들어, GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), CDMA2000(Code Division Multi Access 2000), EV-DO(Enhanced Voice-Data Optimized or Enhanced Voice-Data Only), WCDMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등)에 따라 구축된 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다.
무선 인터넷 모듈(113)은 무선 인터넷 접속을 위한 모듈을 말하는 것으로, 단말기(100)에 내장되거나 외장될 수 있다. 무선 인터넷 모듈(113)은 무선 인터넷 기술들에 따른 통신망에서 무선 신호를 송수신하도록 이루어진다.
무선 인터넷 기술로는, 예를 들어 WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), Wi-Fi(Wireless Fidelity) Direct, DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMAX(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등이 있다.
근거리 통신 모듈(114)은 근거리 통신(Short range communication)을 위한 것으로서, 블루투스(Bluetooth™), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee, NFC(Near Field Communication), Wi-Fi(Wireless-Fidelity), Wi-Fi Direct, Wireless USB(Wireless Universal Serial Bus) 기술 중 적어도 하나를 이용하여, 근거리 통신을 지원할 수 있다.
위치정보 모듈(115)은 이동 단말기의 위치(또는 현재 위치)를 획득하기 위한 모듈로서, 그의 대표적인 예로는 GPS(Global Positioning System) 모듈 또는 WiFi(Wireless Fidelity) 모듈이 있다. 예를 들어, 단말기는 GPS모듈을 활용하면, GPS 위성에서 보내는 신호를 이용하여 이동 단말기의 위치를 획득할 수 있다.
입력부(120)는 영상 신호 입력을 위한 카메라(121), 오디오 신호를 수신하기 위한 마이크로폰(122), 사용자로부터 정보를 입력 받기 위한 사용자 입력부(123)를 포함할 수 있다.
입력부(120)에서 수집한 음성 데이터나 이미지 데이터는 분석되어 사용자의 제어명령으로 처리될 수 있다.
입력부(120)는 영상 정보(또는 신호), 오디오 정보(또는 신호), 데이터, 또는 사용자로부터 입력되는 정보의 입력을 위한 것으로서, 영상 정보의 입력을 위하여, 단말기(100)는 하나 또는 복수의 카메라(121)들을 구비할 수 있다.
카메라(121)는 화상 통화모드 또는 촬영 모드에서 이미지 센서에 의해 얻어지는 정지영상 또는 동영상 등의 화상 프레임을 처리한다. 처리된 화상 프레임은 디스플레이부(151)에 표시되거나 메모리(170)에 저장될 수 있다.
마이크로폰(122)은 외부의 음향 신호를 전기적인 음성 데이터로 처리한다. 처리된 음성 데이터는 단말기(100)에서 수행 중인 기능(또는 실행 중인 응용 프로그램)에 따라 다양하게 활용될 수 있다. 한편, 마이크로폰(122)에는 외부의 음향 신호를 입력 받는 과정에서 발생되는 잡음(noise)을 제거하기 위한 다양한 잡음 제거 알고리즘이 구현될 수 있다.
사용자 입력부(123)는 사용자로부터 정보를 입력 받기 위한 것으로서, 사용자 입력부(123)를 통해 정보가 입력되면,
프로세서(180)는 입력된 정보에 대응되도록 단말기(100)의 동작을 제어할 수 있다.
사용자 입력부(123)는 기계식 (mechanical) 입력수단(또는, 메커니컬 키, 예를 들어, 단말기(100)의 전/후면 또는 측면에 위치하는 버튼, 돔 스위치 (dome switch), 조그 휠, 조그 스위치 등) 및 터치식 입력수단을 포함할 수 있다. 일 예로서, 터치식 입력수단은, 소프트웨어적인 처리를 통해 터치스크린에 표시되는 가상 키(virtual key), 소프트 키(soft key) 또는 비주얼 키(visual key)로 이루어지거나, 상기 터치스크린 이외의 부분에 배치되는 터치 키(touch key)로 이루어질 수 있다.
러닝 프로세서(130)는 데이터 마이닝, 데이터 분석, 지능형 의사 결정, 및 기계 학습 알고리즘 및 기술을 위해 이용될 정보를 수신, 분류, 저장 및 출력하도록 구성 될 수 있다.
러닝 프로세서(130)는 단말기에 의해 수신, 검출, 감지, 생성, 사전 정의 또는 다른 방식으로 출력되거나 수신, 검출, 감지, 생성, 사전 정의 또는 다른 방식으로 다른 컴포넌트, 디바이스, 단말기 또는 단말기와 통신하는 장치에 의해 출력되는 데이터를 저장하도록 구성된 하나 이상의 메모리 유닛을 포함 할 수 있다.
러닝 프로세서(130)는 단말기에 통합되거나 구현된 메모리를 포함 할 수 있다. 일부 실시 예에서, 러닝 프로세서(130)는 메모리(170)를 사용하여 구현 될 수 있다.
선택적으로 또는 부가 적으로, 러닝 프로세서(130)는 단말기에 직접 결합된 외부 메모리 또는 단말기와 통신하는 서버에서 유지되는 메모리와 같이 단말기와 관련된 메모리를 사용하여 구현 될 수 있다.
다른 실시 예에서, 러닝 프로세서(130)는 클라우드 컴퓨팅 환경에서 유지되는 메모리, 또는 네트워크와 같은 통신 방식을 통해 단말기에 의해 액세스 가능한 다른 원격 메모리 위치를 이용하여 구현 될 수 있다.
러닝 프로세서(130)는 일반적으로 감독 또는 감독되지 않은 학습, 데이터 마이닝, 예측 분석 또는 다른 머신에서 사용하기 위해 데이터를 식별, 색인화, 카테고리화, 조작, 저장, 검색 및 출력하기 위해 데이터를 하나 이상의 데이터베이스에 저장하도록 구성될 수 있다.
러닝 프로세서(130)에 저장된 정보는 다양한 상이한 유형의 데이터 분석 알고리즘 및 기계 학습 알고리즘 중 임의의 것을 사용하여 프로세서(180) 또는 단말기의 하나 이상의 다른 제어기에 의해 이용될 수 있다.
이러한, 알고리즘의 예로는, k-최근 인접 시스템, 퍼지 논리 (예: 가능성 이론), 신경 회로망, 볼츠만 기계, 벡터 양자화, 펄스 신경망, 지원 벡터 기계, 최대 마진 분류기, 힐 클라이밍, 유도 논리 시스템 베이지안 네트워크, 페리트넷 (예: 유한 상태 머신, 밀리 머신, 무어 유한 상태 머신), 분류기 트리 (예: 퍼셉트론 트리, 지원 벡터 트리, 마코프 트리, 의사 결정 트리 포리스트, 임의의 포리스트), 판돈 모델 및 시스템, 인공 융합, 센서 융합, 이미지 융합, 보강 학습, 증강 현실, 패턴 인식, 자동화 된 계획 등을 포함한다.
프로세서(180)는 데이터 분석 및 기계 학습 알고리즘을 사용하여 결정되거나, 생성된 정보에 기초하여 단말기의 적어도 하나의 실행 가능한 동작을 결정 또는 예측할 수 있다. 이를 위해, 프로세서(180)는 러닝 프로세서(130)의 데이터를 요청, 검색, 수신 또는 활용할 수 있고, 상기 적어도 하나의 실행 가능한 동작 중 예측되는 동작이나, 바람직한 것으로 판단되는 동작을 실행하도록 상기 단말기를 제어할 수 있다.
프로세서(180)는 지능적 에뮬레이션(즉, 지식 기반 시스템, 추론 시스템 및 지식 획득 시스템)을 구현하는 다양한 기능을 수행 할 수 있다. 이는 적응 시스템, 기계 학습 시스템, 인공 신경망 등을 포함하는, 다양한 유형의 시스템(예컨대, 퍼지 논리 시스템)에 적용될 수 있다.
프로세서(180)는, 또한 I/O 처리 모듈, 환경 조건 모듈, 음성 - 텍스트 (STT) 처리 모듈, 자연어 처리 모듈, 작업 흐름 처리 모듈 및 서비스 처리 모듈과 같이, 음성 및 자연 언어 음성 처리를 수반하는 연산을 가능하게 하는 서브 모듈을 포함할 수 있다.
이들 서브 모듈들 각각은, 단말기에서의 하나 이상의 시스템 또는 데이터 및 모델, 또는 이들의 서브셋 또는 수퍼 셋에 대한 액세스를 가질 수 있다. 또한, 이들 서브 모듈들 각각은, 어휘 색인, 사용자 데이터, 작업 흐름 모델, 서비스 모델 및 자동 음성 인식 (ASR) 시스템을 비롯한 다양한 기능을 제공할 수 있다.
다른 실시 예에서, 프로세서(180) 또는 단말기의 다른 양태는 상기 서브 모듈, 시스템, 또는 데이터 및 모델로 구현 될 수 있다.
일부 예에서, 러닝 프로세서(130)의 데이터에 기초하여, 프로세서(180)는 사용자 입력 또는 자연 언어 입력으로 표현된 문맥 조건 또는 사용자의 의도에 기초하여 요구 사항을 검출하고 감지하도록 구성 될 수 있다.
프로세서(180)는 문맥 조건 또는 사용자의 의도에 기초하여 요구 사항을 완전히 결정하는데 필요한 정보를 능동적으로 이끌어 내고, 획득할 수 있다. 예를 들어, 프로세서(180)는 역사적 입력 및 출력, 패턴 매칭, 모호하지 않은 단어, 입력 의도 등을 포함하는 과거 데이터를 분석함으로써 요구 사항을 결정하는데, 필요한 정보를 능동적으로 이끌어낼 수 있다.
프로세서(180)는 문맥 조건 또는 사용자의 의도에 기초하여 요구 사항에 응답하는 기능을 실행하기 위한 태스크 흐름을 결정할 수 있다.
프로세서(180)는 러닝 프로세서(130)에서 프로세싱 및 저장을 위한 정보를 수집하기 위해, 단말기에서 하나 이상의 감지 컴포넌트를 통해 데이터 분석 및 기계 학습 작업에 사용되는 신호 또는 데이터를 수집, 감지, 추출, 검출 및/또는 수신하도록 구성 될 수 있다.
정보 수집은 센서를 통해 정보를 감지하는 것, 메모리(170)에 저장된 정보를 추출하는 것 또는 통신 수단을 통해 다른 단말기, 엔티티 또는 외부 저장 장치로부터 정보를 수신하는 것을 포함 할 수 있다.
프로세서(180)는 단말기에서 사용 히스토리 정보를 수집하여, 저장할 수 있다.
프로세서(180)는 저장된 사용 히스토리 정보 및 예측 모델링을 사용하여 특정 기능을 실행하기 위한 최상의 매치를 결정할 수 있다.
프로세서(180)는 센싱부(140)를 통해 주변 환경 정보 또는 기타 정보를 수신하거나 감지 할 수 있다.
프로세서(180)는 무선 통신부(110)을 통해 방송 신호 및/또는 방송 관련 정보, 무선 신호, 무선 데이터를 수신할 수 있다.
프로세서(180)는 입력부(120)로부터 이미지 정보 (또는 해당 신호), 오디오 정보 (또는 해당 신호), 데이터 또는 사용자 입력 정보를 수신 할 수 있다.
프로세서(180)는 정보를 실시간으로 수집하고, 정보 (예를 들어, 지식 그래프, 명령 정책, 개인화 데이터베이스, 대화 엔진 등)를 처리 또는 분류하고, 처리 된 정보를 메모리(170) 또는 러닝 프로세서(130)에 저장할 수 있다.
단말기의 동작이 데이터 분석 및 기계 학습 알고리즘 및 기술에 기초하여 결정될 때, 프로세서(180)는 결정된 동작을 실행하기 위해 단말기의 구성 요소를 제어 할 수 있다. 그리고 프로세서(180)는 제어 명령에 따라 단말을 제어하여 결정된 동작을 수행 할 수 있다.
프로세서(180)는 특정 동작이 수행되는 경우, 데이터 분석 및 기계 학습 알고리즘 및 기법을 통해 특정 동작의 실행을 나타내는 이력 정보를 분석하고, 분석된 정보에 기초하여 이전에 학습 한 정보의 업데이트를 수행 할 수 있다.
따라서, 프로세서(180)는 러닝 프로세서(130)과 함께, 업데이트 된 정보에 기초하여 데이터 분석 및 기계 학습 알고리즘 및 기법의 미래 성능의 정확성을 향상시킬 수 있다.
센싱부(140)는 이동 단말기 내 정보, 이동 단말기를 둘러싼 주변 환경 정보 및 사용자 정보 중 적어도 하나를 센싱 하기 위한 하나 이상의 센서를 포함할 수 있다.
예를 들어, 센싱부(140)는 근접센서(141, proximity sensor), 조도 센서(142, illumination sensor), 터치 센서(touch sensor), 가속도 센서(acceleration sensor), 자기 센서(magnetic sensor), 중력 센서(G-sensor), 자이로스코프 센서(gyroscope sensor), 모션 센서(motion sensor), RGB 센서, 적외선 센서(IR 센서: infrared sensor), 지문인식 센서(finger scan sensor), 초음파 센서(ultrasonic sensor), 광 센서(optical sensor, 예를 들어, 카메라(121 참조)), 마이크로폰(microphone, 122 참조), 배터리 게이지(battery gauge), 환경 센서(예를 들어, 기압계, 습도계, 온도계, 방사능 감지 센서, 열 감지 센서, 가스 감지 센서 등), 화학 센서(예를 들어, 전자 코, 헬스케어 센서, 생체 인식 센서 등) 중 적어도 하나를 포함할 수 있다. 한편, 본 명세서에 개시된 이동 단말기는, 이러한 센서들 중 적어도 둘 이상의 센서에서 센싱되는 정보들을 조합하여 활용할 수 있다.
출력부(150)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시키기 위한 것으로, 디스플레이부(151), 음향 출력부(152), 햅팁 모듈(153), 광 출력부(154) 중 적어도 하나를 포함할 수 있다.
디스플레이부(151)는 단말기(100)에서 처리되는 정보를 표시(출력)한다. 예를 들어, 디스플레이부(151)는 단말기(100)에서 구동되는 응용 프로그램의 실행화면 정보, 또는 이러한 실행화면 정보에 따른 UI(User Interface), GUI(Graphic User Interface) 정보를 표시할 수 있다.
디스플레이부(151)는 터치 센서와 상호 레이어 구조를 이루거나 일체형으로 형성됨으로써, 터치 스크린을 구현할 수 있다. 이러한 터치 스크린은, 단말기(100)와 사용자 사이의 입력 인터페이스를 제공하는 사용자 입력부(123)로써 기능함과 동시에, 단말기(100)와 사용자 사이의 출력 인터페이스를 제공할 수 있다.
음향 출력부(152)는 호신호 수신, 통화모드 또는 녹음 모드, 음성인식 모드, 방송수신 모드 등에서 무선 통신부(110)로부터 수신되거나 메모리(170)에 저장된 오디오 데이터를 출력할 수 있다.
음향 출력부(152)는 리시버(receiver), 스피커(speaker), 버저(buzzer) 중 적어도 하나 이상을 포함할 수 있다.
햅틱 모듈(haptic module)(153)은 사용자가 느낄 수 있는 다양한 촉각 효과를 발생시킨다. 햅틱 모듈(153)이 발생시키는 촉각 효과의 대표적인 예로는 진동이 될 수 있다.
광출력부(154)는 단말기(100)의 광원의 빛을 이용하여 이벤트 발생을 알리기 위한 신호를 출력한다. 단말기(100)에서 발생 되는 이벤트의 예로는 메시지 수신, 호 신호 수신, 부재중 전화, 알람, 일정 알림, 이메일 수신, 애플리케이션을 통한 정보 수신 등이 될 수 있다.
인터페이스부(160)는 단말기(100)에 연결되는 다양한 종류의 외부 기기와의 통로 역할을 수행한다. 이러한 인터페이스부(160)는, 유/무선 헤드셋 포트(port), 외부 충전기 포트(port), 유/무선 데이터 포트(port), 메모리 카드(memory card) 포트, 식별 모듈이 구비된 장치를 연결하는 포트(port), 오디오 I/O(Input/Output) 포트(port), 비디오 I/O(Input/Output) 포트(port), 이어폰 포트(port)중 적어도 하나를 포함할 수 있다. 단말기(100)에서는, 상기 인터페이스부(160)에 외부 기기가 연결되는 것에 대응하여, 연결된 외부 기기와 관련된 적절할 제어를 수행할 수 있다.
한편, 식별 모듈은 단말기(100)의 사용 권한을 인증하기 위한 각종 정보를 저장한 칩으로서, 사용자 인증 모듈(user identify module; UIM), 가입자 인증 모듈(subscriber identity module; SIM), 범용 사용자 인증 모듈(universal subscriber identity module; USIM) 등을 포함할 수 있다. 식별 모듈이 구비된 장치(이하 '식별 장치')는, 스마트 카드(smart card) 형식으로 제작될 수 있다. 따라서 식별 장치는 상기 인터페이스부(160)를 통하여 단말기(100)와 연결될 수 있다.
메모리(170)는 단말기(100)의 다양한 기능을 지원하는 데이터를 저장한다.
메모리(170)는 단말기(100)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 단말기(100)의 동작을 위한 데이터들, 명령어들을, 러닝 프로세서(130)의 동작을 위한 데이터들(예를 들어, 머신 러닝을 위한 적어도 하나의 알고리즘 정보 등)을 저장할 수 있다.
프로세서(180)는 상기 응용 프로그램과 관련된 동작 외에도, 통상적으로 단말기(100)의 전반적인 동작을 제어한다. 프로세서(180)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리하거나 메모리(170)에 저장된 응용 프로그램을 구동함으로써, 사용자에게 적절한 정보 또는 기능을 제공 또는 처리할 수 있다.
또한, 프로세서(180)는 메모리(170)에 저장된 응용 프로그램을 구동하기 위하여, 도 1와 함께 살펴본 구성요소들 중 적어도 일부를 제어할 수 있다. 나아가, 프로세서(180)는 상기 응용프로그램의 구동을 위하여, 단말기(100)에 포함된 구성요소들 중 적어도 둘 이상을 서로 조합하여 동작시킬 수 있다.
전원공급부(190)는 프로세서(180)의 제어 하에서, 외부의 전원, 내부의 전원을 인가 받아 단말기(100)에 포함된 각 구성요소들에 전원을 공급한다. 이러한 전원공급부(190)는 배터리를 포함하며, 상기 배터리는 내장형 배터리 또는 교체 가능한 형태의 배터리가 될 수 있다.
한편, 앞서 살펴본 것과 같이, 프로세서(180)는 응용 프로그램과 관련된 동작과, 통상적으로 단말기(100)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(180)는 상기 이동 단말기의 상태가 설정된 조건을 만족하면, 애플리케이션들에 대한 사용자의 제어 명령의 입력을 제한하는 잠금 상태를 실행하거나, 해제할 수 있다.
도 2는 본 발명의 일 실시 예에 따른 음성 시스템을 설명하기 위한 도면이다.
도 2를 참조하면, 음성 시스템(1)은 단말기(100), 음성 텍스트 변환(Speech To Text, STT) 서버(10), 자연어 처리(Natural Language Processing, NLP) 서버(20) 및 음성 합성 서버(30)를 포함할 수 있다.
단말기(100)는 음성 데이터를 STT 서버(10)에 전송할 수 있다.
STT 서버(10)는 단말기(100)로부터 수신된 음성 데이터를 텍스트 데이터로 변환할 수 있다.
STT 서버(10)는 언어 모델을 이용하여 음성-텍스트 변환의 정확도를 높일 수 있다.
언어 모델은 문장의 확률을 계산하거나, 이전의 단어들이 주어졌을 때 다음 단어가 나올 확률을 계산할 수 있는 모델을 의미할 수 있다.
예컨대, 언어 모델은 유니그램(Unigram) 모델, 바이그램(Bigram) 모델, N-그램(N-gram) 모델 등과 같은 확률론적 언어 모델들을 포함할 수 있다.
유니그램 모델은 모든 단어의 활용이 완전히 서로 독립적이라고 가정하는 모델로, 단어 열의 확률을 각 단어의 확률의 곱으로 계산하는 모델이다.
바이그램 모델은 단어의 활용이 이전 1개의 단어에만 의존한다고 가정하는 모델이다.
N-그램 모델은 단어의 활용이 이전 (n-1)개의 단어에 의존한다고 가정하는 모델이다.
즉, STT 서버(10)는 언어 모델을 이용하여 음성 데이터로부터 변환된 텍스트 데이터가 적합하게 변환된 것인지 판단할 수 있고, 이를 통해 텍스트 데이터로의 변환의 정확도를 높일 수 있다.
NLP 서버(20)는 STT 서버(10)로부터 텍스트 데이터를 수신할 수 있다. NLP 서버(20)는 수신된 텍스트 데이터에 기초하여, 텍스트 데이터에 대한 의도 분석을 수행할 수 있다.
NLP 서버(20)는 의도 분석의 수행 결과를 나타내는 의도 분석 정보를 단말기(100)에 전송할 수 있다.
NLP 서버(20)는 텍스트 데이터에 대해, 형태소 분석 단계, 구문 분석 단계, 화행 분석 단계, 대화 처리 단계를 순차적으로, 수행하여, 의도 분석 정보를 생성할 수 있다.
형태소 분석 단계는 사용자가 발화한 음성에 대응하는 텍스트 데이터를 의미를 지닌 가장 작은 단위인 형태소 단위로 분류하고, 분류된 각 형태소가 어떤 품사를 가지는지를 결정하는 단계이다.
구문 분석 단계는 형태소 분석 단계의 결과를 이용하여, 텍스트 데이터를 명사구, 동사구, 형용사 구 등으로 구분하고, 구분된 각 구들 사이에, 어떠한 관계가 존재하는지를 결정하는 단계이다.
구문 분석 단계를 통해, 사용자가 발화한 음성의 주어, 목적어, 수식어들이 결정될 수 있다.
화행 분석 단계는 구문 분석 단계의 결과를 이용하여, 사용자가 발화한 음성에 대한 의도를 분석하는 단계이다. 구체적으로, 화행 분석 단계는 사용자가 질문을 하는 것인지, 요청을 하는 것인지, 단순한 감정 표현을 하는 것인지와 같은 문장의 의도를 결정하는 단계이다.
대화 처리 단계는 화행 분석 단계의 결과를 이용하여, 사용자의 발화에 대해 대답을 할지, 호응을 할지, 추가 정보를 문의하는 질문을 할지를 판단하는 단계이다.
NLP 서버(20)는 대화 처리 단계 후, 사용자가 발화한 의도에 대한 답변, 호응, 추가 정보 문의 중 하나 이상을 포함하는 의도 분석 정보를 생성할 수 있다.
한편, NLP 서버(20)는 단말기(100)로부터 텍스트 데이터를 수신할 수도 있다. 예를 들어, 단말기(100)가 음성 텍스트 변환 기능을 지원하는 경우, 단말기(100)는 음성 데이터를 텍스트 데이터로 변환하고, 변환된 텍스트 데이터를 NLP 서버(20)에 전송할 수 있다.
음성 합성 서버(30)는 기 저장된 음성 데이터들을 조합하여, 합성 음성을 생성할 수 있다.
음성 합성 서버(30)는 모델로 선정된 한 사람의 음성을 녹음하고, 녹음된 음성을 음절 또는 단어 단위로 분할할 수 있다. 음성 합성 서버(30)는 음절 또는 단어 단위로, 분할된 음성을 내부 또는 외부의 데이터 베이스에 저장할 수 있다.
음성 합성 서버(30)는 주어진 텍스트 데이터에 대응하는 음절 또는 단어를 데이터 베이스로부터 검색하고, 검색된 음절 또는 단어들의 조합을 합성하여, 합성 음성을 생성할 수 있다.
음성 합성 서버(30)는 복수의 언어들 각각에 대응하는 복수의 음성 언어 그룹들을 저장하고 있을 수 있다.
예를 들어, 음성 합성 서버(30)는 한국어로 녹음된 제1 음성 언어 그룹, 영어로, 녹음된 제2 음성 언어 그룹을 포함할 수 있다.
음성 합성 서버(30)는 제1 언어의 텍스트 데이터를 제2 언어의 텍스트로 번역하고, 제2 음성 언어 그룹을 이용하여, 번역된 제2 언어의 텍스트에 대응하는 합성 음성을 생성할 수 있다.
음성 합성 서버(30)는 생성된 합성 음성을 단말기(100)에 전송할 수 있다.
음성 합성 서버(30)는 NLP 서버(20)로부터 의도 분석 정보를 수신할 수 있다.
음성 합성 서버(30)는 의도 분석 정보에 기초하여, 사용자의 의도를 반영한, 합성 음성을 생성할 수 있다.
일 실시 예에서, STT 서버(10), NLP 서버(20) 및 음성 합성 서버(30)는 하나의 서버로 구현될 수 있다.
위에서, 설명된 STT 서버(10), NLP 서버(20) 및 음성 합성 서버(30) 각각의 기능은 단말기(100)에서도 수행될 수도 있다. 이를 위해, 단말기(100)는 복수의 프로세서들을 포함할 수 있다.
도 3은 본 발명의 일 실시 예에 따라 음성 신호로부터 사용자의 발화 특징을 추출하는 과정을 설명하는 도면이다.
도 1에 도시된, 단말기(100)는 오디오 프로세서(181)를 더 포함할 수 있다.
오디오 프로세서(181)는 프로세서(180)와 별도의 칩으로 구현되거나, 프로세서(180)에 포함된 칩으로 구현될 수 있다.
오디오 프로세서(181)는 음성 신호로부터, 잡음을 제거할 수 있다.
오디오 프로세서(181)는 음성 신호를 텍스트 데이터로 변환할 수 있다. 이를 위해, 오디오 프로세서(181)는 STT 엔진을 구비할 수 있다.
오디오 프로세서(181)는 단말기(100)의 음성 인식을 활성화시키기 위한 기동어를 인식할 수 있다. 오디오 프로세서(181)는 마이크로폰(121)을 통해 수신된 기동어를 텍스트 데이터로 변환하고, 변환된 텍스트 데이터가 기 저장된 기동어에 대응하는 텍스트 데이터인 경우, 기동어를 인식한 것으로 판단할 수 있다.
오디오 프로세서(181)는 잡음이 제거된 음성 신호를 파워 스펙트럼으로 변환할 수 있다.
파워 스펙트럼은 시간적으로 변동하는 음성 신호의 파형에 어떠한 주파수 성분이 어떠한 크기로 포함되어 있는지를 나타내는 파라미터일 수 있다.
파워 스펙트럼은 음성 신호의 파형의 주파수에 따른 진폭 제곱 값의 분포를 보여준다.
이에 대해서는 도 4를 참조하여, 설명한다.
도 4는 본 발명의 일 실시 예에 따른 음성 신호를 파워 스펙트럼으로 변환한 예를 설명한 도면이다.
도 4을 참조하면, 음성 신호(410)가 도시되어 있다. 음성 신호(410)는 마이크로폰(121)을 통해 수신되거나, 메모리(170)에 미리 저장된 신호일 수 있다.
음성 신호(410)의 x축은 시간이고, y축은 진폭의 크기를 나타낼 수 있다.
오디오 프로세서(181)는 x축이 시간 축인 음성 신호(410)를 x축이 주파수 축인 파워 스펙트럼(430)으로 변환할 수 있다.
오디오 프로세서(181)는 고속 퓨리에 변환(Fast Fourier Transform, FFT)을 이용하여, 음성 신호(410)를 파워 스펙트럼(430)으로 변환할 수 있다.
파워 스펙트럼(430)의 x축은 주파수, y축은 진폭의 제곱 값을 나타낸다.
다시 도 3을 설명한다.
프로세서(180)는 오디오 프로세서(181)로부터 전달된 텍스트 데이터 또는 파워 스펙트럼(430) 중 하나 이상을 이용하여, 사용자의 발화 특징을 결정할 수 있다.
사용자의 발화 특징은 사용자의 성별, 사용자의 음의 높낮이, 사용자의 음색, 사용자의 발화 주제, 사용자의 발화 속도, 사용자의 성량등을 포함할 수 있다.
프로세서(180)는 파워 스펙트럼(430)을 이용하여, 음성 신호(410)의 주파수 및 주파수에 대응하는 진폭을 획득할 수 있다.
프로세서(180)는 파워 스펙트럼(430)의 주파수 대역을 이용하여, 음성을 발화한 사용자의 성별을 결정할 수 있다.
예를 들어, 프로세서(180)는 파워 스펙트럼(430)의 주파수 대역이 기 설정된 제1 주파수 대역 범위 내인 경우, 사용자의 성별을 남자로 결정할 수 있다.
프로세서(180)는 파워 스펙트럼(430)의 주파수 대역이 기 설정된 제2 주파수 대역 범위 내인 경우, 사용자의 성별을 여자로 결정할 수 있다. 여기서, 제2 주파수 대역 범위는 제1 주파수 대역 범위보다 클 수 있다.
프로세서(180)는 파워 스펙트럼(430)의 주파수 대역을 이용하여, 음성의 높낮이를 결정할 수 있다.
예를 들어, 프로세서(180)는 특정 주파수 대역 범위 내에서, 진폭의 크기에 따라 음의 높낮이 정도를 결정할 수 있다.
프로세서(180)는 파워 스펙트럼(430)의 주파수 대역을 이용하여, 사용자의 음색(tone)을 결정할 수 있다. 예를 들어, 프로세서(180)는 파워 스펙트럼(430)의 주파수 대역들 중, 진폭의 크기가 일정 크기 이상인 주파수 대역을 사용자의 주요 음역대로 결정하고, 결정된 주요 음역대를 사용자의 음색으로 결정할 수 있다.
프로세서(180)는 변환된 텍스트 데이터로부터, 단위 시간 당 발화된 음절 수를 통해, 사용자의 발화 속도를 결정할 수 있다.
프로세서(180)는 변환된 텍스트 데이터에 대해, Bag-Of-Word Model 기법을 이용하여, 사용자의 발화 주제를 결정할 수 있다.
Bag-Of-Word Model 기법은 문장 내 단어 빈도 수 기반으로, 주로 사용하는 단어를 추출하는 기법이다. 구체적으로, Bag-Of-Word Model 기법은 문장 내에서, 유니크한 단어를 추출하고, 추출된 각 단어의 빈도 수를 벡터로 표현하여, 발화 주제를 특징을 결정하는 기법이다.
예를 들어, 프로세서(180)는 텍스트 데이터에 <달리기>, <체력> 등과 같은 단어가 자주 등장하면, 사용자의 발화 주제를 운동으로 분류할 수 있다.
프로세서(180)는 공지된 텍스트 카테고리화(Text Categorization) 기법을 이용하여, 텍스트 데이터로부터 사용자의 발화 주제를 결정할 수 있다. 프로세서(180)는 텍스트 데이터로부터 키워드를 추출하여, 사용자의 발화 주제를 결정할 수 있다.
프로세서(180)는 전체 주파수 대역에서의 진폭 정보를 고려하여 사용자의 성량을 결정할 수 있다.
예컨대, 프로세서(180)는 파워 스펙트럼의 각 주파수 대역에서의 진폭의 평균 또는 가중치 평균을 기준으로 사용자의 성량을 결정할 수 있다.
도 3 및 도 4에서 설명된 오디오 프로세서(181) 및 프로세서(180)의 기능은 NLP 서버(20), 음성 합성 서버(30) 중 어느 하나의 서버에서도 수행될 수 있다.
예를 들어, NLP 서버(20)는 음성 신호를 이용하여, 파워 스펙트럼을 추출하고, 추출된 파워 스펙트럼을 이용하여, 사용자의 발화 특징을 결정할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 음성 합성 서버의 구성을 설명하기 위한 블록도이다.
음성 합성 서버(30)는 단말기(100)의 외부에 별도로 구성된 장치 또는 서버로, 단말기(100)의 러닝 프로세서(130)와 동일한 기능을 수행할 수 있다.
즉, 음성 합성 서버(30)는 데이터 마이닝, 데이터 분석, 지능형 의사 결정 및 기계 학습 알고리즘을 위해 이용될 정보를 수신, 분류, 저장 및 출력하도록 구성될 수 있다. 여기서, 기계 학습 알고리즘은 딥 러닝 알고리즘을 포함할 수 있다.
음성 합성 서버(30)는 적어도 하나의 단말기(100)와 통신할 수 있고, 단말기(100)를 대신하여 혹은 도와 데이터를 분석하거나 학습하여 결과를 도출할 수 있다. 여기서, 다른 장치를 도운다는 의미는 분산 처리를 통한 연산력의 분배를 의미할 수 있다.
음성 합성 서버(30)는 인공 신경망을 학습하기 위한 다양한 장치로서, 통상적으로 서버를 의미할 수 있고, 학습 장치 또는 학습 서버 등으로 칭할 수 있다.
특히, 음성 합성 서버(30)는 단일한 서버뿐만 아니라 복수의 서버 세트, 클라우드 서버 또는 이들의 조합 등으로 구현될 수 있다.
즉, 음성 합성 서버(30)는 복수로 구성되어 학습 장치 세트(혹은 클라우드 서버)를 구성할 수 있고, 학습 장치 세트에 포함된 적어도 하나 이상의 음성 합성 서버(30)는 분산 처리를 통하여 데이터 분석 또는 학습하여 결과를 도출할 수 있다.
음성 합성 서버(30)는 주기적으로 혹은 요청에 의하여 단말기(100)에 기계 학습 또는 딥 러닝에 의하여 학습한 모델을 전송할 수 있다.
도 5를 참조하면, 음성 합성 서버(30)는 통신부(Communication Unit, 210), 입력부(Input Unit, 220), 메모리(Memory, 230), 러닝 프로세서(Learning Processor, 240), 전원 공급부(Power Supply Unit, 250) 및 프로세서(Processor, 260) 등을 포함할 수 있다.
통신부(210)는 도 1의 무선 통신부(110) 및 인터페이스부(160)를 포괄하는 구성과 대응될 수 있다. 즉, 유무선 통신이나 인터페이스를 통하여 다른 장치와 데이터를 송수신할 수 있다.
입력부(220)는 도 1의 입력부(120)에 대응되는 구성이며, 통신부(210)를 통하여 데이터를 수신함으로써 데이터를 획득할 수도 있다.
입력부(220)는 모델 학습을 위한 훈련 데이터 및 학습된 모델(a trained model)을 이용하여 출력을 획득하기 위한 입력 데이터 등을 획득할 수 있다.
입력부(220)는 가공되지 않은 입력 데이터를 획득할 수도 있으며, 이 경우 프로세서(260)는 획득한 데이터를 전처리하여 모델 학습에 입력이 가능한 훈련 데이터 또는 전처리된 입력 데이터를 생성할 수 있다.
이때, 입력부(220)에서 수행하는 입력 데이터에 대한 전처리는, 입력 데이터로부터 입력 특징점(input feature)을 추출하는 것을 의미할 수 있다.
메모리(230)는 도 1의 메모리(170)에 대응되는 구성이다.
메모리(230)는 모델 저장부(231) 및 데이터베이스(232) 등을 포함할 수 있다.
모델 저장부(231)는 러닝 프로세서(240)을 통하여 학습 중인 또는 학습된 모델(또는 인공 신경망, 231a)을 저장하며, 학습을 통하여 모델이 업데이트되면 업데이트 된 모델을 저장한다.
이때, 모델 저장부(231)는 필요에 따라 학습된 모델을 학습 시점 또는 학습 진척도 등에 따라 복수의 버전으로 구분하여 저장할 수 있다.
도 2에 도시된 인공 신경망(231a)은 복수의 은닉층을 포함하는 인공 신경망의 하나의 예시일 뿐이며, 본 발명의 인공 신경망이 이에 한정되는 것은 아니다
인공 신경망(231a)은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 인공 신경망(231a)의 일부 또는 전부가 소프트웨어로 구현되는 경우, 인공 신경망(231a)을 구성하는 하나 이상의 명령어는 메모리(230)에 저장될 수 있다.
데이터베이스(232)는 입력부(220)에서 획득한 입력 데이터, 모델 학습을 위하여 이용되는 학습 데이터(또는 훈련 데이터), 모델의 학습 히스토리 등을 저장한다.
데이터베이스(232)에 저장된 입력 데이터는 모델 학습에 적합하게 가공된 데이터뿐만 아니라, 가공되지 않은 입력 데이터 그 자체일 수 있다.
러닝 프로세서(240)는 도 1의 러닝 프로세서(130)에 대응되는 구성이다.
러닝 프로세서(240)는 훈련 데이터 또는 트레이닝 셋(training set)을 이용하여 인공 신경망(231a)을 훈련(training, 또는 학습)시킬 수 있다.
러닝 프로세서(240)는 프로세서(260)가 입력부(220)를 통해 획득한 입력 데이터를 전처리한 데이터를 바로 획득하여 인공 신경망(231a)을 학습하거나, 데이터베이스(232)에 저장된 전처리된 입력 데이터를 획득하여 인공 신경망(231a)을 학습할 수 있다.
구체적으로, 러닝 프로세서(240)는 앞서 설명한 다양한 학습 기법을 이용하여 인공 신경망(231a)을 반복적으로 학습시킴으로써, 인공 신경망(231a)의 최적화된 모델 파라미터들을 결정할 수 있다
본 명세서에서는 훈련 데이터를 이용하여 학습됨으로써 파라미터가 결정된 인공 신경망을 학습 모델 또는 학습된 모델(a trained model)이라 칭할 수 있다.
이때, 학습 모델은 인공 신경망의 음성 합성 서버(30)에 탑재된 상태에서 결과 값을 추론할 수도 있으며, 통신부(210)를 통해 단말기(100)와 같은 다른 장치에 전송되어 탑재될 수도 있다.
또한, 학습 모델이 업데이트되는 경우, 업데이트된 학습 모델은 통신부(210)를 통해 단말기(100)와 같은 다른 장치에 전송되어 탑재될 수 있다.
전원 공급부(250)는 도 1의 전원 공급부(190)에 대응되는 구성이다.
서로 대응되는 구성에 대한 중복되는 설명은 생략한다.
도 6 및 도 7은 종래의 합성 음성을 통해 띄어 읽기 예측 시, 클래스 불균형 문제가 발생함을 설명하기 위한 도면이다.
도 6은 하나의 문장(600)에 대해, 합성 음성 엔진이 합성 음성을 통해 띄어 읽기를 수행한 결과를 나타내는 도면이다.
합성 음성 엔진은 텍스트를 음성으로 변환하여 출력하기 위한 엔진일 수 있다.
합성 음성 엔진은 단말기(100) 또는 음성 합성 서버(30)에 구비될 수 있다.
스페이스 바(601)는 띄어 읽기 정도가 1임을 나타내고, </>(603)는 띄어 읽기 정도가 2임을 나타내고, <//>(605)는 띄어 읽기 정도가 3임을 나타낸다.
띄어 읽기 정도란, 텍스트를 읽는 시간 간격을 나타낼 수 있다. 즉, 띄어 읽기 정도가 클수록, 텍스트를 읽는 시간 간격이 커질 수 있고, 띄어 읽기 정도가 작을수록, 텍스트를 읽는 시간 간격이 작아질 수 있다.
도 7은 도 6의 문장(600)에 대해, 띄어 읽기 정도를 분석한 결과를 나타내는 클래스 테이블(700)을 도시하고 있다.
클래스 테이블(700)은 단어 경계(Word Phrase, WP) 클래스, 강조 경계(Accentual Phrase, AP) 클래스, 억양 경계(Intonation Phrase, IP) 클래스를 포함할 수 있다.
단어 경계 클래스는 띄어 읽기 정도가 1임을 나타내며, 단어와 단어 간 띄어 읽지를 않는 클래스를 나타낼 수 있다.
강조 경계 클래스는 띄어 읽기 정도가 2이며, 단어와 단어 간 약하게 띄어 읽는 클래스를 나타낼 수 있다.
억양 경계 클래스는 띄어 읽기 정도가 3이며, 강하게 띄어 읽는 클래스를 나타낼 수 있다.
도 6의 문장(600)에 대해, 단어 경계 클래스의 수는 7개이고, 강조 경계 클래스의 수는 19개이고, 억양 경계 클래스의 수는 4개이다.
클래스의 개수가 가장 적은 클래스를 마이너 클래스, 클래스의 개수가 가장 많은 클래스를 메이저 클래스라 명명한다.
도 7에서, 마이너 클래스는 억양 경계 클래스, 메이저 클래스는 강조 경계 클래스가 될 수 있다.
억양 경계 클래스의 수가 다른 클래스의 수보다 작은 클래스 불균형이 일어나는 경우, 합성 음성을 통한 띄어 읽기의 기계 학습 과정에서, 억양 경계 클래스가 덜 중요한 요소로 판단되어, 합성 음성 모델의 띄어 읽기 성능이 저하될 수 있다.
구체적으로, 합성 음성 모델의 띄어 읽기 학습을 위해서는 하나의 문장(훈련 데이터) 및 문장을 구성하는 단어들에 띄어 읽기 정도를 레이블링한 레이블링 데이터를 포함하는 트레이닝 셋이 필요하다.
레이블링 데이터로, 클래스의 불균형이 일어나는 데이터를 사용하는 경우, 합성 음성 모델의 성능이 저하될 수 있다.
합성 음성 모델의 성능이 저하되는 경우, 합성 음성의 출력 시, 띄어 읽기가 부자연스러워져, 사용자의 청취가 거부감이 드는 문제가 있다.
이러한 문제를 해결하기 위해, 본 발명은 클래스의 수를 균형 있게 조절하여, 띄어 읽기 예측 성능을 고도화하고자 한다.
도 8은 본 발명의 일 실시 예에 따른, 음성 합성 서버의 동작 방법을 설명하기 위한 흐름도이다.
음성 합성 서버(30)의 프로세서(260)는 마이너 클래스에 해당하는 복수의 단어들 각각에 대한 사전 정보를 획득한다(S801).
이하에서, 마이너 클래스는 도 7의 억양 경계 클래스임을 가정하여 설명한다.
단어가 억양 경계 클래스에 해당(또는 분류)된다고 함은, 도 6에 도시된, <government's>와 같이, 띄어 읽기 정도가 3을 나타내는 <//> 의 이전에 위치한 단어를 억양 경계 클래스에 해당되는 것으로 해석한다.
일 실시 예에서, 사전 정보는 단어의 억양 경계(이하, IP) 비율, IP 빈도 수, Non-IP 비율, Non-IP 빈도 수, Non-IP 빈도 수 대비 IP 빈도 수의 비율 중 하나 이상을 포함할 수 있다.
IP 비율은 데이터 베이스(232) 내에서, 단어가, IP 클래스로 분류된 비율을 나타낼 수 있다. 구체적으로, 데이터 베이스(232) 내의 10000개의 문장에서, 제1 단어가 IP 클래스로, 분류된 횟수가 100번인 경우, 제1 단어의 IP 비율은 1%(100/10000x100)일 수 있다.
만약, 10000 개의 문장에서, 제2 단어가 IP 클래스로 분류된 횟수가 200번인 경우, 제2 단어의 IP 비율은 2%일 수 있다.
물론, 여기서, 10000개의 문장들 각각의 일부만이 제1 단어 또는 제2 단어를 포함할 수 있다.
IP 빈도 수는, 데이터 베이스(232) 내에서, IP 클래스로 분류된 횟수를 나타낼 수 있다. 위 예에서, 제1 단어의 IP 빈도 수는 100일 수 있고, 제2 단어의 IP 빈도 수는 200번일 수 있다.
Non-IP 비율은 데이터 베이스(232) 내에서, 단어가, IP 클래스가 아닌, 다른 클래스로 분류된 비율을 나타낼 수 있다.
예를 들어, 데이터 베이스(232) 내의 10000개의 문장에서, 제1 단어가 IP 클래스가 아닌 다른 클래스로, 분류된 횟수가 500번인 경우, 제1 단어의 Non-IP 비율은 5%(500/10000x100)일 수 있다.
Non-IP 빈도 수는 데이터 베이스(323) 내에서, 단어가 IP 클래스로 분류되지 않은 횟수를 나타낼 수 있다.
예를 들어, 데이터 베이스 내의 10000개의 문장에서, 제1 단어가 IP 클래스로, 분류되지 않은 횟수가 300번인 경우, 제1 단어의 Non-IP 비율은 3%(300/10000x100)일 수 있다.
음성 합성 서버(30)의 프로세서(260)는 획득된 사전 정보에 기초하여, 각 단어에 대해 데이터 증강을 수행한다(S803).
일 실시 예에서, 데이터 증강은 해당 단어가 특정 클래스에 속할 확률을 증가시키기 위해, 클래스에 속할 빈도 수를 증가시키는 과정일 수 있다.
특정 클래스에 속할 빈도 수를 증가시킨다는 것은, 특정 클래스에 속하는 단어를 포함하는 문장의 개수를 증가시킴을 나타낼 수 있다.
이는, 합성 음성 모델의 학습을 위한 트레이닝 셋을 증가시키는 것으로, 해석될 수 있다.
이에 대해서는, 자세히 후술한다.
음성 합성 서버(30)의 프로세서(260)는 데이터 증강 수행 결과를 데이터 베이스(232)에 저장한다(S805).
음성 합성 서버(30)의 프로세서(260) 또는 러닝 프로세서(240)은 저장된 데이터 증강 수행 결과를 이용하여, 띄어 읽기를 위한 기계 학습을 수행한다(S807).
띄어 읽기를 위한 기계 학습은 하나의 문장이 입력되었을 때, 문장을 구성하는 단어들을 어느 정도로 띄어 읽는지를 결정하는 과정일 수 있다.
즉, 띄어 읽기를 위한 기계 학습은 하나의 문장을 단어 경계 클래스, 강조 경계 클래스, 억양 경계 클래스로 분류하는 학습일 수 있다.
띄어 읽기를 위한 기계 학습에 따라 합성 음성 모델이 생성될 수 있다.
합성 음성 모델은 하나의 문장을 입력 데이터로, 하나의 문장을 구성하는 단어들이 최적화된 3개의 띄어 읽기 클래스로 구분된 합성 음성 데이터를 출력하는 모델일 수 있다.
음성 합성 서버(30)의 프로세서(260)는 생성된 합성 음성 모델을 통신부(210)를 통해 단말기(100)에 전송할 수 있다.
도 9는 본 발명의 실시 예에 따른, 사전 정보에 기초하여, 단어에 대한 데이터 증강을 수행하는 과정을 설명하기 위한 흐름도이다.
특히, 도 9는 도 8에 도시된, 단계 S803 및 S805를 구체적으로 설명하기 위한 도면이다.
음성 합성 서버(30)의 프로세서(260)는 단어의 사전 정보에 기초하여, 각 단어의 오버 샘플링 레이트를 결정한다(S901).
일 실시 예에서, 프로세서(260)는 마이너 클래스로 분류된 단어의 Non-IP 빈도 수 대비 IP 빈도수의 비율에 기초하여, 해당 단어의 오버 샘플링 레이트를 결정할 수 있다.
오버 샘플링 레이트란, 데이터 베이스(232) 내에서, 해당 단어가 IP 클래스에 속할 비율을 나타낼 수 있다.
프로세서(260)는 단어의 Non-IP 빈도 수 대비 IP 빈도수의 비율이 커질수록, 오버 샘플링 레이트를 증가시킬 수 있다.
프로세서(260)는 단어의 Non-IP 빈도 수 대비 IP 빈도수의 비율이 커질수록, 오버 샘플링 레이트를 감소시킬 수 있다.
이에 대해서는, 도 10을 참조하여 설명한다.
도 10은 본 발명의 실시 예에 따라, 데이터 베이스에 저장된 단어 별, IP 빈도 수 대비, Non-IP 빈도 수를 보여주고 있다.
도 10은 합성 음성을 생성하기 위해, 하나의 성우가 수많은 문장을 발화시, 특정 단어를 발화한 후, 띄어 읽기 정도를 측정하여, 얻어진 결과이다.
예를 들어, <but>이라는 단어가 데이터 베이스(232) 내에서, IP 클래스로 분류된 빈도 수가 60이고, IP 클래스가 아닌 Non-IP 클래스로 분류된 빈도 수가 10임을 가정한다.
Non-IP 빈도 수 대비 IP 빈도 수 간의 비율은 1:6이므로, 프로세서(260)는 <but>이라는 단어의 오버 샘플링 레이트를 60%(6/1 x 0.1)로 결정할 수 있다.
일 예로, 프로세서(260)는 기존의 <but>이라는 단어의 IP 클래스 빈도 수를 60에서, 60% 증가된, 96으로, 증가시킬 수 있다.
또 다른 예로, <can> 이라는 단어는 데이터 베이스(232) 내에서, IP 클래스로 분류된 빈도 수가 30이고, IP 클래스가 아닌 Non-IP 클래스로 분류된 빈도 수가 120임을 가정한다.
Non-IP 빈도 수 대비 IP 빈도 수 간의 비율은 4:1이므로, 프로세서(260)는 <can>이라는 단어의 오버 샘플링 레이트를 2.5%(1/4 x 0.1)로 결정할 수 있다.
일 예로, 프로세서(260)는 기존의 <can>이라는 단어의 IP 클래스 빈도 수를 30에서, 2.5% 증가된 3.075로, 증가시킬 수 있다.
또 다른 실시 예에서, 프로세서(260)는 단어의 IP 빈도 수가 Non-IP 빈도수 보다 큰 경우에만, 오버 샘플링 레이트를 증가시킬 수 있다.
반대로, 프로세서(260)는 단어의 IP 빈도 수가 Non-IP 빈도수 보다 작은 경우, 해당 단어에 대한 오버 샘플링을 수행하지 않을 수 있다. 즉, 프로세서(260)는 단어의 IP 빈도 수가 Non-IP 빈도수 보다 작은 경우, 오버 샘플링 레이트를 고정시킬 수 있다.
도 11은 Non-IP 빈도 수 대비 IP 빈도 수 간의 비율에 따라 결정된 오버 샘플링 레이트를 설명하기 위한 도면이다.
도 11은 데이터 베이스(232)에 저장된 10000개의 문장에 대해, 도 10의 단어의 Non-IP 빈도 수와 IP 빈도 수 간의 비율에 따라 결정된 오버 샘플링 레이트를 보여주는 도면이다.
즉, 도 11은 데이터 베이스(232)에 10000개의 문장에 대해, 각 단어가 IP 클래스로 분류되지 않은 Non-IP 빈도 수, IP 클래스로 분류된 IP 빈도 수, Non-IP 빈도 수 대비, IP 빈도 수의 상대적 비율 및 상대적 비율에 따라 결정된 오버 샘플링 레이트를 보여준다.
도 11에서 확인할 수 있듯 이, 상대적 비율이 커질수록, 오버 샘플링 레이트가 증가되고, 상대적 비율이 작아질수록, 오버 샘플링 레이트가 커짐을 확인할 수 있다.
오버 샘플링 레이트가 증가된다면, 해당 단어가 IP 클래스로 분류될 수 있는 확률이 증가될 수 있다.
해당 단어가, IP 클래스로 분류될 수 있는 확률이 증가된다면, 위에서 언급된 클래스 불균형의 문제가 해소되어, 합성 음성 모델의 띄어 읽기 성능이 증가될 수 있다.
다시, 도 9를 설명한다.
음성 합성 서버(30)의 프로세서(260)는 결정된 오버 샘플링 레이트를 이용하여, 해당 단어의 오버 샘플링 횟수를 결정한다(S903).
일 실시 예에서, 단어의 오버 샘플링 횟수는 단어가 결정된 오버 샘플링 레이트에 기반하여, 증가될 IP 빈도 수를 나타낼 수 있다.
증가될 IP 빈도 수는 단어의 오버 샘플링 횟수는 IP 클래스로 분류된 단어를 포함하는 문장의 개수를 나타낼 수 있다.
즉, 단어의 오버 샘플링 횟수가 증가된다고 함은, IP 클래스로 분류된 단어를 포함하는 문장의 개수가 증가됨을 나타낼 수 있다.
일 실시 예에서, 프로세서(260)는 단계 S901에서 결정된 오버 샘플링 레이트에 기초하여, 단어의 오버 샘플링 횟수를 결정할 수 있다.
또 다른 실시 예에서, 프로세서(260)는 오버 샘플링 레이트, 데이터 베이스(232) 내의 메이저 클래스로 분류된 단어의 수, 마이너 클래스로 분류된 단어의 수, 해당 단어가 마이너 클래스로 레이블링된 횟수, 해당 단어가 마이너 클래스에 속할 확률, 해당 단어가 데이터 베이스(232) 내에서, 출현한 횟수에 기초하여, 단어의 오버 샘플링 횟수를 결정할 수 있다.
구체적으로, 프로세서(260)는 다음의 [수학식 1]과 같이, 오버 샘플링 횟수를 결정할 수 있다.
[수학식 1]
Figure pat00001
wordi는 데이터 베이스(232) 내에 존재하는 특정 단어를 나타낼 수 있다.
wordi:over는 wordi에 대한 오버 샘플링 횟수를 나타낼 수 있다.
Sampling Rate는 단계 S901에서 결정된 상수로, 10% 내지 100%의 값을 가질 수 있으나, 이는 예시에 불과한 수치이다.
|ClassMajor|는 메이저 클래스에 있는 단어의 수를 나타낼 수 있다.
*291|ClassMinor|는 마이너 클래스에 있는 단어의 수를 나타낼 수 있다.
P(wordi=minor)는 특정 단어가 마이너 클래스일 확률을 나타낼 수 있다.
P(wordi=minor)는 다음의 [수학식 2]로 표현될 수 있다.
[수학식 2]
Figure pat00002
|Wordi=minor|는 wordi가 데이터 베이스(232) 내에서, 마이너 클래스로 레이블링된 횟수를 나타낼 수 있다.
*297단어가 마이너 클래스로 레이블링 되었다는 것은, 도 6 및 도 7에서, 마이너 클래스인 IP 클래스의 카운트 횟수를 결정하는 기준이 되는 <government's>, <year>, <rain>, <Monday>와 같은 단어들이 IP 클래스로 분류되었음을 나타낼 수 있다.
|wordi|는 wordi가 데이터 베이스(232)에서 출현한 횟수를 나타낼 수 있다.
즉, |wordi|는 데이터 베이스(232) 내에 있는 복수의 문장들에서 등장한 횟수를 나타낼 수 있다.
음성 합성 서버(30)의 프로세서(260)는 결정된 오버 샘플링 횟수를 데이터 베이스(232)에 저장한다(S905).
프로세서(260)는 단어의 결정된 오버 샘플링 횟수에 대응하는 만큼, 단어를 포함하는 문장의 개수를 생성할 수 있다.
프로세서(260)는 해당 단어를 IP 클래스로 레이블링하고, 오버 샘플링 횟수에 대응되도록, 띄어 읽기 정도가 3으로, 레이블링 된 단어를 포함하는 문장의 개수를 생성할 수 있다.
프로세서(260)는 해당 단어를 포함하는 문장 및 해당 단어에 띄어 읽기 정도를 레이블링한 레이블링 데이터로 사용하여, 합성 음성 모델을 학습할 수 있다.
도 12는 본 발명의 일 실시 예에 따른 시스템의 동작 방법을 설명하기 위한 래더 다이어 그램이다.
도 12를 참조하면, 음성 합성 서버(30)는 단어의 오버 샘플링 횟수만큼, IP 클래스로 분류된 단어를 포함하는 문장들을 획득한다(S1201).
음성 합성 서버(30)는 해당 단어를 포함하는 임의의 문장들을 생성할 수 있다.
임의의 문장들은 합성 음성 모델의 학습을 위한 훈련 데이터가 될 수 있다.
음성 합성 서버(30)는 획득된 문장들을 이용하여, 합성 음성 모델을 학습한다(S1203).
IP 클래스로 분류된 단어는 띄어 읽기 정도가 3으로, 레이블링될 수 있다.
음성 합성 서버(30)는 상기 임의의 문장(훈련 데이터) 및 상기 임의의 문장에 포함된 단어에 띄어 읽기 정도를 레이블링한 레이블링 데이터를 이용하여, 합성 음성 모델을 학습할 수 있다.
일 실시 예에서, 음성 합성 서버(30)의 프로세서(260)는 순환 인공 신경망(Recurrent Neural Network, RNN)를 이용하여, 합성 음성 모델을 학습할 수 있다.
순환 인공 신경망은 히든 계층이 방향을 가진 엣지로 연결되어, 순환 구조를 이루는 인공 신경망의 한 종류이다.
순환 인공 신경망을 이용하여, 합성 음성 모델을 학습하는 과정을 도 13을 참조하여 설명한다.
도 13은 순환 인공 신경망의 기본 구조를 설명하기 위한 도면이다.
Xt는 입력 데이터이고, Ht는 현재의 히든 데이터이고, H(t-1)은 이전의 히든 데이터이고, Yt는 출력 데이터이다.
입력 데이터, 히든 데이터 및 출력 데이터는 특징 벡터로 표현될 수 있다.
RNN이 학습하는 파라미터는 이전의 히든 데이터를 현재의 히든 데이터로 변환하기 위한 제1 파라미터(W1), 입력 데이터를 히든 데이터로 변환하기 위한 제2 파라미터(W2), 현재의 히든 데이터를 출력 데이터로 변환하기 위한 제3 파라미터(W3)를 포함한다.
제1,2,3 파라미터(W1, W2, W3)들은 행렬로 표현될 수 있다.
본 발명과 연관지어 설명하면, 입력 데이터는 단어를 나타내는 특징 벡터이고, 출력 데이터는 입력된 단어가 WP 클래스에 속할 제1 확률, AP 클래스에 속할 제2 확률, IP 클래스에 속할 제3 확률을 나타내는 특징 벡터가 될 수 있다.
이전 히든 데이터는 이전에 입력된 단어의 히든 데이터이고, 현재 히든 데이터는 이전에 입력된 단어의 히든 데이터 및 현재 입력된 단어의 특징 벡터를 이용하여 생성된 데이터일 수 있다.
도 14는 본 발명의 일 실시 예에 따라, 합성 음성 모델을 이용하여, 문장을 구성하는 단어의 클래스를 구분하는 과정을 설명하는 도면이다.
도 14를 참조하면, 하나의 문장을 구성하는 복수의 단어들 각각(1310)이 순차적으로, 합성 음성 모델(1330)로 들어간다.
단말기(100) 또는 음성 합성 서버(30)는 합성 음성 모델(1330)을 이용하여, 순차적으로 입력된 단어(1310) 각각이 WP 클래스로 분류될 제1 확률, AP 클래스로 분류될 제2 확률, IP 클래스로 분류될 제3 확률을 출력할 수 있다.
단말기(100) 또는 음성 합성 서버(30)는 제1 내지 제3 확률 중, 가장 큰 값을 갖는 확률을 입력된 단어의 클래스로 분류할 수 있다.
다시, 도 12를 설명한다.
음성 합성 서버(30)는 학습된 합성 음성 모델을 단말기(100)에 전송한다(S1205).
단말기(100)는 음성 합성 서버(30)로부터 수신된 합성 음성 모델을 이용하여, 사용자의 요청에 따른 합성 음성을 음향 출력부(152)를 통해 출력한다(S1207).
사용자의 요청은 <뉴스 기사를 읽어줘>와 같은, 사용자의 음성 명령일 수 있다.
단말기(100)는 사용자의 음성 명령을 수신하고, 수신된 음성 명령의 의도를 파악할 수 있다.
단말기(100)는 합성 음성 모델을 이용하여, 파악된 의도에 맞는 뉴스 기사에 대한 텍스트의 합성 음성을 음향 출력부(152)를 통해 출력할 수 있다.
도 15는 본 발명의 또 다른 실시 예에 따른 인공 지능을 이용한 음성 합성 서버의 동작 방법을 설명하기 위한 흐름도이다.
도 15를 참조하면, 음성 합성 서버(30)의 프로세서(260)는 마이너 클래스에 해당하는 복수의 단어들 각각에 대한 사전 정보(prior information)를 획득한다(S1501).
이하에서, 마이너 클래스는 도 7의 억양 경계 클래스임을 가정하여 설명한다.
단어가 억양 경계 클래스에 해당(또는 분류)된다고 함은, 도 6에 도시된, <government's>와 같이, 띄어 읽기 정도가 3을 나타내는 <//> 의 이전에 위치한 단어를 억양 경계 클래스에 해당되는 것으로 해석한다.
일 실시 예에서, 사전 정보는 단어의 억양 경계(이하, IP) 비율, IP 빈도 수, 억영 경계 클래스에 속하지 않을 비율(이하, Non-IP 비율), Non-IP 빈도 수, Non-IP 빈도 수 대비 IP 빈도 수의 비율 중 하나 이상을 포함할 수 있다.
IP 비율은 데이터 베이스(232) 내에서, 단어가, IP 클래스로 분류된 비율을 나타낼 수 있다. 구체적으로, 데이터 베이스(232) 내의 10000개의 문장에서, 제1 단어가 IP 클래스로, 분류된 횟수가 100번인 경우, 제1 단어의 IP 비율은 1%(100/10000x100)일 수 있다.
도 16은 본 발명의 일 실시 예에 따라 데이터 베이스에 저장된 각 단어의 사전 정보를 설명하는 도면이다.
도 16은 각 단어가 IP 클래스로 분류된 IP 비율, IP 클래스로 분류되지 않은 Non-IP 비율을 보여주는 IP 테이블(1600)이다.
IP 테이블(1600)은 복수의 단어들 각각에 대해, 데이터 베이스(232) 내에 저장된 문장들 중 각 단어가 IP 클래스로 분류된 개수의 비율인 IP 비율 및 1에서 IP 비율을 감산한 Non-IP 비율을 도시하고 있다.
Non-IP 비율은 단어가 WP 클래스로 분류된 비율 및 AP 클래스로 분류된 비율의 합일 수 있다.
예를 들어, Because 라는 단어의 IP 비율은 0.84이고, Non-IP 비율은 0.16(1-0.84)이다.
또한, This 라는 단어의 IP 비율은 0.15이고, Non-IP 비율은 0.85이다.
다시 도 15를 설명한다.
음성 합성 서버(30)의 프로세서(260)는 합성 음성 모델의 레이블링 데이터로 사용되는 각 단어의 클래스 별 분류 확률을 나타내는 제1 클래스 분류 확률 세트를 획득한다(S1503).
합성 음성 모델은 기계 학습 알고리즘 또는 딥 러닝 알고리즘에 의해 학습된 인공 신경망 기반 모델일 수 있다.
예를 들어, 합성 음성 모델은 도 13에 도시된 바와 같은 순환 인공 신경망 기반 모델일 수 있다.
제1 클래스 분류 확률 세트는 단어가 하나의 문장 내에서, WP 클래스로 분류될 확률, AP 클래스로 분류될 확률, IP 클래스로 분류될 확률을 포함할 수 있다.
구체적으로, WP 클래스로 분류될 제1 확률은, 단어가 하나의 문장 내에서, 1의 수치로 띄어 읽어질 확률을 나타낼 수 있다.
마찬가지로, AP 클래스로 분류될 제2 확률은 단어가 하나의 문장 내에서, 2의 수치로 띄어 읽어질 확률을 나타낼 수 있고, IP 클래스로 분류될 제3 확률은 단어가 하나의 문장 내에서 3의 수치로 띄어 읽어질 확률을 나타낼 수 있다.
프로세서(260)는 합성 음성 모델을 이용하여, 각 단어의 WP 클래스로 분류될 확률, AP 클래스로 분류될 확률, IP 클래스로 분류될 확률을 추론할 수 있다.
합성 음성 모델은 복수의 단어들을 포함하는 문장을 입력 데이터로 이용하여, 출력 특징점을 나타내는 제1 클래스 분류 확률 세트를 추론하도록 학습된 인공 신경망으로 구성된 모델일 수 있다.
일 예로, 합성 음성 모델은 지도 학습을 통해 학습될 수 있다. 구체적으로, 합성 음성 모델에 사용되는 학습 데이터에는, WP 클래스로 분류될 확률, AP 클래스로 분류될 확률, IP 클래스로 분류될 확률이 라벨링될 수 있다.
합성 음성 모델은 라벨링된 학습 데이터를 이용하여, 학습될 수 있다.
합성 음성 모델은 학습용 텍스트 데이터로부터, 텍스트 데이터에 포함된 단어가 라벨링된 WP 클래스로 분류될 확률, AP 클래스로 분류될 확률, IP 클래스로 분류될 확률을 정확하게 추론하는 것을 목표로 학습될 수 있다.
합성 음성 모델의 가중치 비용 함수(weighted cost function)는 각 학습 데이터에 상응하는 각 클래스 확률과 학습 데이터로부터 추론된 각 클래스 확률 간의 차이의 제곱 평균으로 표현될 수 있다.
합성 음성 모델은 학습을 통하여, 가중치 비용 함수의 값이 최소화되도록 인공 신경망에 포함된 모델 파라미터들이 결정될 수 있다.
도 17은 본 발명의 일 실시 예에 따른 합성 음성 모델의 예를 설명하는 도면이다.
도 17을 참조하면, 인공 신경망으로 구성된 합성 음성 모델(1700)에 도시되어 있다.
학습용 데이터인 텍스트 데이터 및 레이블링 데이터인 클래스별 확률은 하나의 트레이닝 셋으로, 합성 음성 모델(1700)에 입력될 수 있다.
이에 대한 추론 결과로, 클래스 별 확률이 출력될 수 있다.
합성 음성 모델(1700)은 출력된 클래스 별 확률과, 라벨링된 클래스 별 확률 간의 차이에 상응하는 비용 함수를 최소화하도록 학습될 수 있다.
합성 음성 모델(1700)은 단어들을 포함하는 텍스트 데이터로부터 입력 특징 벡터를 추출되어, 상기 합성 음성 모델에 입력되면, 각 클래스 별 분류 확률에 대한 추론 결과가 대상 특징 벡터로 출력되고, 출력된 각 클래스 별 분류 확률과 라벨링된 제1 클래스 분류 확률 세트 간의 차이에 상응하는 비용 함수가 최소화되도록 학습될 수 있다.
합성 음성 모델(1700)의 출력 결과는 단어의 클래스 별 분류 확률을 나타내는 복수의 출력 노드들을 갖는 출력층으로 구성될 수 있다.
복수의 출력 노드들 각각은 WP로 분류될 확률, AP로 분류될 확률, IP로 분류될 확률을 나타낼 수 있다.
복수의 출력 노드들은 그 값으로, (0.3, 0.3, 0.4)와 같은 대상 특징 벡터로 표현될 수 있다. 대상 특징 벡터를 구성하는 엘리먼트의 값들 각각은 0 내지 1 사이의 값을 가질 수 있다.
다시, 도 15를 설명한다.
음성 합성 서버(30)의 프로세서(260)는 각 단어의 사전 정보 및 제1 클래스 분류 확률 세트에 기초하여, 각 단어의 보정된 클래스 별 분류 확률을 나타내는 제2 클래스 분류 확률 세트를 획득한다(S1505).
프로세서(260)는 단어의 IP 비율 및 제1 클래스 분류 확률 세트에 기초하여, 제1 클래스 분류 확률 세트를 제2 클래스 분류 확률 세트로 보정할 수 있다.
프로세서(260)는 단어의 IP 비율 및 제1 클래스 분류 확률 세트에 기초하여, 합성 음성 모델(1700)에서 레이블링 데이터로 사용될 클래스 분류 확률 세트를 조정할 수 있다.
이는, 실제, 데이터 베이스(232) 내에 저장된 복수의 문장들 중에서, 특정 단어가 IP 클래스로 속하는 IP 비율 및 IP 클래스에 속하지 않는 Non-IP 비율을 반영하여, 레이블링 데이터에 보정을 가하기 위함이다.
IP 비율 및 Non-IP 비율이 반영된 레이블링 데이터가 합성 음성 모델의 학습에 사용된다면, 실제 해당 단어의 IP 클래스로 분류된 분포가 반영되는 것이므로, 클래스 분류의 정확도가 향상될 수 있다.
이에 따라, 궁극적으로, 클래스 불균형의 문제가 해소될 수 있다.
제1 클래스 분류 확률 세트를 단어의 IP 비율 및 Non-IP 비율을 반영하여, 보정하는 과정에 대해서는 이하의 도면을 참조하여 설명한다.
도 18 내지 도 21은 본 발명의 실시 예에 따라 클래스 분류 확률 세트를 단어의 IP 비율 및 Non-IP 비율을 반영하여, 보정하는 예를 설명하는 도면이다.
먼저, 도 18 및 도 19는 <because>라는 단어를 기준으로 설명한다.
또한, <because>라는 단어의 IP 비율은 도 16의 IP 테이블(1600)을 참조한다.
도 18을 참조하면, <because>라는 단어에 대응하는 레이블링 데이터인 제1 클래스 분류 확률 세트(1800)가 도시되어 있다.
<because>의 레이블링 데이터인 WP 클래스로 분류될 확률은 0.3이고, AP 클래스로 분류될 확률은 0.6이고, IP 클래스로 분류될 확률은 0.1이다.
도 18에서, WP 클래스로 분류될 확률, AP 클래스로 분류될 확률, IP 클래스로 분류될 확률 각각은 수학적 확률일 수 있다.
프로세서(260)는 <because>의 IP 비율, Non-IP 비율 및 제1 클래스 분류 확률 세트(1800)에 기초하여, 도 19에 도시된 바와 같은 제2 클래스 분류 확률 세트(1900)를 획득할 수 있다.
보정된 WP 클래스 분류 확률은 다음의 [수학식 3]과 같이 표현될 수 있다.
[수학식 3]
보정된 WP 클래스 분류 확률 =(보정 전 WP 클래스 분류 확률)*(Non-IP 비율)*(WP 클래스로 분류될 확률/IP 클래스로 분류되지 않을 확률)
따라서, 보정된 WP 클래스 분류 확률은 [수학식 3]에 의해 0.3*0.16*(0.3/0.9)=0.016의 값으로 얻어질 수 있다.
보정된 AP 클래스 분류 확률은 다음의 [수학식 4]과 같이 표현될 수 있다.
[수학식 4]
보정된 AP 클래스 분류 확률 =(보정 전 AP 클래스 분류 확률)*(Non-IP 비율)*(AP 클래스로 분류될 확률/IP 클래스로 분류되지 않을 확률)
따라서, 보정된 WP 클래스 분류 확률은 [수학식 3]에 의해 0.6*0.16*(0.6/0.9)= 0.064의 값으로 얻어질 수 있다.
보정된 IP 클래스 분류 확률은 다음의 [수학식 5]과 같이 표현될 수 있다.
*392[수학식 5]
보정된 IP 클래스 분류 확률 =(보정 전 IP 클래스 분류 확률)*(IP 비율)
따라서, 보정된 WP 클래스 분류 확률은 [수학식 5]에 의해 0.1*0.84=0.084의 값으로 얻어질 수 있다.
한편, 프로세서(260)는 보정된 클래스 분류 확률들 각각을 1을 기준으로 한 정규화된 값으로, 변경할 수 있다.
이에 따라, <because>라는 단어의 최종적으로 보정된 WP 클래스로 분류될 확률은 0.097이고, 보정된 WP 클래스로 분류될 확률은 0.390이고, 보정된 WP 클래스로 분류될 확률은 0.513이다.
즉, 제1 클래스 분류 확률 세트(0.3, 0.6, 0.1)는 제2 클래스 분류 확률 세트(0.097, 0.390, 0.513)로 변경될 수 있다.
즉, WP 클래스 분류 확률은 0.3에서 0.097로 감소하였고, AP 클래스 분류 확률은 0.6에서 0.390으로 감소하였고, IP 클래스 분류 확률은 0.1에서 0.513으로 증가하였다.
프로세서(260)는 단어의 IP 비율이 클수록 IP 클래스로 분류될 확률을 증가시키고, IP 비율이 작을수록, IP 클래스로 분류될 확률을 감소시킬 수 있다.
이와 같이, 데이터 베이스(232) 내에 저장된 단어의 IP 비율을 고려하여, 레이블링 데이터에 보정을 가함에 따라, 해당 단어가 IP 클래스로 분류될 확률이 증가될 수 있다.
이에 따라, 합성 음성의 생성 시, 해당 단어가 IP 클래스에 속할 가능성이 커져, 클래스 불균형이 해소될 수 있다.
다음으로, 도 20 및 도 21을 설명한다.
도 20 및 도 21는 <This>라는 단어를 기준으로 설명한다.
또한, <This>라는 단어의 IP 비율은 도 16의 IP 테이블(1600)을 참조한다.
도 20을 참조하면, <This>라는 단어에 대응하는 레이블링 데이터인 제1 클래스 분류 확률 세트(2000)가 도시되어 있다.
<This>의 레이블링 데이터인 WP 클래스로 분류될 확률은 0.3이고, AP 클래스로 분류될 확률은 0.3이고, IP 클래스로 분류될 확률은 0.4이다.
프로세서(260)는 <This>의 IP 비율, Non-IP 비율 및 제1 클래스 분류 확률 세트(2000)에 기초하여, 도 21에 도시된 바와 같은 제2 클래스 분류 확률 세트(2100)를 획득할 수 있다.
보정된 WP 클래스 분류 확률은 상기 [수학식 3]에 의해 계산될 수 있다.
보정된 WP 클래스 분류 확률은 [수학식 3]에 의해 0.3*0.85*(0.3/0.6)=0.127의 값으로 얻어질 수 있다.
보정된 AP 클래스 분류 확률은 상기 [수학식 4]에 의해 계산될 수 있다.
보정된 WP 클래스 분류 확률은 [수학식 4]에 의해 0.3*0.85*(0.3/0.6)=0.127의 값으로 얻어질 수 있다.
보정된 IP 클래스 분류 확률은 상기 [수학식 5]에 의해 계산될 수 있다.
보정된 IP 클래스 분류 확률은 상기 [수학식 5]에 의해 0.4*0.15=0.06의 값으로 얻어질 수 있다.
한편, 프로세서(260)는 보정된 클래스 분류 확률들 각각을 1을 기준으로 한 정규화된 값으로, 변경할 수 있다.
이에 따라, <This>라는 단어의 최종적으로 보정된 WP 클래스로 분류될 확률은 0.4이고, 보정된 WP 클래스로 분류될 확률은 0.4이고, 보정된 WP 클래스로 분류될 확률은 0.2이다.
즉, 제1 클래스 분류 확률 세트(0.3, 0.3, 0.4)는 제2 클래스 분류 확률 세트(0.4, 0.4, 0.2)로 변경될 수 있다.
즉, WP 클래스 분류 확률은 0.3에서 0.4로 증가하였고, AP 클래스 분류 확률은 0.3에서 0.4로 증가하였고, IP 클래스 분류 확률은 0.4에서 0.2로 감소하였다.
이와 같이, 데이터 베이스(232) 내에 저장된 단어의 IP 비율을 고려하여, 레이블링 데이터에 보정을 가함에 따라, 해당 단어가 IP 클래스로 분류될 확률이 감소될 수 있다.
이에 따라, 합성 음성의 생성 시, 해당 단어가 IP 클래스에 속할 가능성이 작아져, 클래스 불균형에 따른 합성 음성 모델의 성능 저하가 해소될 수 있다.
즉, 본 발명의 실시 예에 따르면, 합성 음성 모델의 띄어 읽기 예측 성능이 고도화 될 수 있다.
다시, 도 15를 설명한다.
음성 합성 서버(30)의 프로세서(260) 또는 러닝 프로세서(240)는 획득된 제2 클래스 분류 확률 세트를 이용하여, 합성 음성 모델을 학습한다(S1507).
프로세서(260)는 획득된 제2 클래스 분류 확률 세트를 새로운 레이블링 데이터로 하여, 합성 음성 모델을 학습시킬 수 있다.
제2 클래스 분류 확률 세트를 이용하여, 합성 음성 모델을 학습하는 과정을 도 22를 참조하여, 설명한다.
도 22는 본 발명의 실시 예에 따라 IP 비율에 기반하여, 새롭게 획득된 제2 클래스 분류 확률 세트를 이용하여, 합성 음성 모델을 학습하는 과정을 설명하는 도면이다.
도 22를 참조하면, 단어들을 포함하는 텍스트 데이터와 각 단어의 클래스 확률 분류 세트를 포함하는 트레이닝 셋이 합성 음성 모델(1700)에 입력될 수 있다.
합성 음성 모델(1700)은 트레이닝 셋에 대해 각 단어가 WP 클래스로 분류될 확률, AP 클래스로 분류될 확률, IP 클래스로 분류될 확률을 포함하는 제1 클래스 분류 확률 세트(2210)를 출력할 수 있다.
*429프로세서(260)는 출력된 제1 클래스 분류 확률 세트(2210) 및 각 단어의 IP 비율 및 Non-IP 비율에 기초하여, 제2 클래스 분류 확률 세트(2230)를 획득할 수 있다.
즉, 프로세서(260)는 도 18 내지 도 21에서와 같이, 확률 보정 작업을 수행하여, 제1 클래스 분류 확률 세트(2210)를 제2 클래스 분류 확률 세트(2230)로 변경할 수 있다.
프로세서(260)는 새롭게 획득된 제2 클래스 분류 확률 세트(2230)를 합성 음성 모델(1700)의 새로운 레이블링 데이터로 활용할 수 있다.
한편, 도 15 내지 도 22에서 설명된 합성 음성 모델은 단말기에 전송될 수 있다.
단말기는 합성 음성 모델을 이용하여, 문장에 대응하는 텍스트 데이터에 포함된 각 단어의 클래스 별 분류 확률을 얻을 수 있다.
도 23은 본 발명의 또 다른 시스템의 동작 방법을 설명하기 위한 래더 다이어그램이다.
특히, 도 23은 사용자의 띄어 읽기 스타일을 반영하여, 합성 음성을 출력할 수 있도록 하는 방법에 관한 것이다.
음성 합성 장치(30)의 프로세서(260)는 데이터 베이스(232)에 저장된 복수의 성우 데이터들에 기반하여, 복수의 성우들 각각에 IP 비율 테이블을 획득한다(S2301).
데이터 베이스(232)는 복수의 성우들 각각이 발화한 음성 데이터들을 저장하고 있다.
프로세서(260)는 각 성우가 발화한 음성 데이터에 기반하여, IP 비율 테이블을 획득할 수 있다. IP 비율 테이블은 복수의 단어들 각각에 대해 IP 클래스로 분류된 IP 비율 및 IP 클래스로 분류되지 않은 Non-IP 비율을 포함할 수 있다.
이에 대해서는, 도 24를 참조하여, 설명한다.
도 24는 본 발명의 실시 예에 따라, 복수의 성우들 각각에 대응하는 복수의 IP 테이블들을 설명하는 도면이다.
프로세서(260)는 각 성우가 발화한 음성에 대응하는 음성 데이터에 기초하여, 각 단어의 IP 비율을 획득할 수 있다.
복수의 성우들(2401 내지 2403) 각각은 자신만의 발화 스타일에 따라 동일한 단어라도, 띄어 읽기 정도를 다르게 하여, 단어를 발화할 수 있다.
도 24를 참조하면, 제1 성우(2401)가 발화한 음성에 기초하여, 얻어진 제1 IP 비율 테이블(2410), 제2 성우(2403)가 발화한 음성에 기초하여, 얻어진 제2 IP 비율 테이블(2430), 제3 성우(2405)가 발화한 음성에 기초하여, 얻어진 제3 IP 비율 테이블(2450)이 도시되어 있다.
제1 IP 비율 테이블(2410)은 복수의 단어들 각각에 대해, 제1 성우(2401)가 IP 클래스로 띄어 읽은 IP 비율 및 Non-IP 클래스로 띄어 읽은 Non-IP 비율을 포하고 있다.
제2 IP 비율 테이블(2430)은 복수의 단어들 각각에 대해, 제2 성우(2403)가 IP 클래스로 띄어 읽은 IP 비율 및 Non-IP 클래스로 띄어 읽은 Non-IP 비율을 포하고 있다.
제3 IP 비율 테이블(2450)은 복수의 단어들 각각에 대해, 제3 성우(2405)가 IP 클래스로 띄어 읽은 IP 비율 및 Non-IP 클래스로 띄어 읽은 Non-IP 비율을 포하고 있다.
도 24에서는 3명의 성우에 대한 IP 비율 테이블을 가정하여, 설명하나, 이는 예시에 불과하고, 더 많은 성우에 대한 IP 비율 테이블도 획득될 수 있다.
다시, 도 23을 설명한다.
음성 합성 장치(30)의 프로세서(260)는 획득된 복수의 IP 비율 테이블들 이용하여, 각 단어 별 일반 IP 비율을 나타내는 일반 IP 비율 테이블을 획득한다(S2303).
프로세서(260)는 복수의 IP 비율 테이블들 각각에 포함된 각 단어의 IP 비율들의 평균을 계산할 수 있다.
예를 들어, 3명의 성우에 대해 하나의 단어의 IP 비율이 각각, a1, a2, a3인 경우, 일반 IP 비율은 (a1+a2+a3)/3으로 계산될 수 있다.
이에 대해서는, 도 25를 참조하여 설명한다.
도 25는 본 발명의 일 실시 예에 따른 일반 IP 비율 테이블을 설명하는 도면이다.
도 25를 설명하기 위해 도 24를 이용한다.
도 25를 참조하면, 일반 IP 비율 테이블(2500)이 도시되어 있다.
일반 IP 비율 테이블(2500)에 포함된 각 단어의 IP 비율은 도 24에 도시된 각 IP 비율 테이블에 포함된 각 단어의 IP 비율들의 평균에 의해 얻어질 수 있다.
<Because> 라는 단어의 일반 IP 비율을 예로 들어 설명한다.
제1 IP 비율 테이블(2410)에서, <Because>의 IP 비율은 0.84이고, 제2 IP 비율 테이블(2430)에서, <Because>의 IP 비율은 0.80이고, 제3 IP 비율 테이블(2450)에서, <Because>의 IP 비율은 0.70이다.
<Because>의 일반 IP 비율은 (0.84+0.80+0.70)/3으로 계산되어, 0.780이라는 값을 얻을 수 있다.
<Because>의 일반 Non-IP 비율은 1에서, 일반 IP 비율을 감산함에 의해 얻어질 수 있다.
이와 같은 방식으로, 복수의 단어들 각각에 대한 일반 IP 비율들이 계산될 수 있고, 일반 IP 비율들의 조합인 일반 IP 비율 테이블(2500)이 얻어질 수 있다.
후술하겠지만, 일반 IP 비율 테이블(2500)은 일반 합성 음성 모델의 학습에 사용될 수 있다.
다시, 도 23을 설명한다.
음성 합성 장치(30)의 프로세서(260)는 획득된 일반 IP 비율 테이블에 기초한 일반 합성 음성 모델을 생성한다(S2305).
일반 합성 음성 모델은 일반 IP 비율 테이블에 포함된 각 단어의 일반 IP 비율을 이용하여, 단어가 IP 클래스로 분류될 확률, WP 클래스로 분류될 확률, AP 클래스로 분류될 확률을 결정하는 모델일 수 있다.
일반 합성 음성 모델은 학습이 완료된 후, 결정된 확률들 중 가장 높은 확률의 클래스에 따라, 합성 음성의 생성 시, 해당 단어의 띄어 읽기 정도를 결정할 수 있다.
일반 합성 음성 모델은 딥 러닝 알고리즘 또는 머신 러닝 알고리즘에 의해 학습된 인공 신경망 기반 모델일 수 있다.
일반 합성 음성 모델은 지도 학습을 통해 학습된 모델일 수 있다.
일반 합성 음성 모델에 사용되는 학습 데이터는 복수의 단어들을 포함하는 문장에 대응하는 텍스트 데이터, 복수의 단어들 각각의 일반 IP 비율 및 각 단어에 레이블링된 IP 클래스 분류 확률을 포함할 수 있다.
일반 합성 음성 모델에 대한 구체적인 설명은 도 17의 실시 예로 대체한다.
음성 합성 장치(30)의 프로세서(260)는 통신부(210)를 통해 생성된 일반 합성 음성 모델을 단말기(100)에 전송한다(S2307).
단말기(100)는 음성 합성 장치(30)로부터 수신된 일반 합성 음성 모델을 메모리(170)에 저장하고, 사용자의 발화 정보를 수집한다(S2309).
단말기(100)는 일반 합성 음성 모델에 기초하여, 음성을 출력할 수 있다.
단말기(100)는 사용자가 발화한 음성 데이터를 수신하고, 수신된 음성 데이터에 상응하는 의도를 획득할 수 있다.
단말기(100)는 획득된 의도에 상응하는 텍스트를 획득하고, 획득된 텍스트에 상응하는 합성 음성을 일반 합성 음성 모델을 이용하여, 출력할 수 있다. 단말기(100)는 합성 음성에 포함된 각 단어의 띄어 읽기 정도를 반영하여, 합성 음성을 출력할 수 있다.
단말기(100)는 사용자가 발화한 음성 데이터에 기반하여, 발화 정보를 수집할 수 있다.
발화 정보는 사용자가 발화한 문장을 구성하는 단어를 IP 클래스로 읽은 횟수, 단어의 품사, 단어의 문장 내 위치를 포함할 수 있다.
음성 합성 장치(30)의 프로세서(260)는 통신부(210)를 통해 단말기(100)가 수집한 사용자의 발화 정보를 수신한다(S2311).
프로세서(260)는 수신된 발화 정보는 개인화 IP 비율 테이블을 획득하기 위해 사용될 수 있다.
개인화 IP 비율 테이블은 개인화된 합성 음성 모델의 학습을 위해 사용되는 데이터일 수 있다. 개인화 IP 비율 테이블은 특정 개인에 적용되는 각 단어의 IP 비율들을 포함할 수 있다.
음성 합성 장치(30)의 프로세서(260)는 수신된 사용자의 발화 정보에 기반하여, 복수의 발화 단어들 각각의 발화 IP 비율들을 획득한다(S2313).
발화 IP 비율들은 사용자가 발화한 복수의 단어들 각각에 대응하는 IP 비율들일 수 있다.
발화 IP 비율은 실제, 사용자가 발화한 단어를 IP 클래스로 띄어 읽은 비율일 수 있다.
프로세서(260)는 일반 합성 음성 모델에 사용된 각 단어의 일반 IP 비율을 새롭게 획득된 발화 IP 비율로 변경할 수 있다.
이에 대해서는, 도 26을 참조하여 설명한다.
도 26은 사용자의 발화 정보에 기초하여, 획득된 발화 단어들에 대한 개인화 IP 비율들 및 일반 IP 비율들을 포함하는 테이블을 설명하는 도면이다.
도 26을 참조하면, 테이블(2600)은 복수의 단어들 각각에 대한 일반 IP 비율을(2610) 및 개인화 IP 비율들(2630)을 포함하고 있다.
예를 들어, <Because>라는 단어에 대해, 복수의 성우들의 발화에 기반하여 얻어진 일반 IP 비율은 0.78이고, 특정 개인의 발화에 기반하여, 얻어진 개인화 IP 비율은 0.75일 수 있다.
예를 들어, 개인화 IP 비율은 사용자가 100개의 문장에 포함된 <Because>라는 단어를 IP 클래스로 띄어 읽은 횟수를 통해 얻어질 수 있다.
또한, <For>라는 단어에 대해, 복수의 성우들의 발화에 기반하여 얻어진 일반 IP 비율은 0.697이고, 특정 개인의 발화에 기반하여, 얻어진 개인화 IP 비율은 0.65일 수 있다.
즉, 개인화 합성 음성 모델을 생성하기 위해 IP 비율이 변경될 수 있다.
개인화 합성 음성 모델은 사용자의 띄어 읽기 스타일을 반영하여, 합성 음성을 출력하기 위한 개인화된 모델일 수 있다.
개인화 합성 음성 모델은 단말기(100)를 통해 음성 인식 서비스를 제공받는 사용자에게 최적화된 합성 음성을 출력하기 위한 모델일 수 있다.
한편, 수집된 사용자의 발화 정보에는 사용자가 발화하지 않은 단어들에 대해서도 개인화 IP 비율이 필요하다.
즉, 도 26을 참조하면, <We>, <And>, <This>라는 단어는 사용자가 발화하지 않아, 개인화 IP 비율이 직접 계산될 수 없다.
이를 위해, 프로세서(260)는 미발화 단어들에 대한 일반 IP 비율을 유추할 수 있다.
다시, 도 23을 설명한다.
음성 합성 장치(30)의 프로세서(260)는 발화 정보 및 획득된 발화 IP 비율들에 기초하여, 미 발화된 단어들 각각에 대응하는 미 발화 IP 비율들을 유추한다(S2315).
발화 정보는 사용자가 발화한 단어의 품사, 발화한 문장의 길이, 문장 내 발화 단어의 위치를 포함할 수 있다.
프로세서(260)는 발화 정보 및 발화된 단어들의 개인화 IP 비율들에 기반하여, 미 발화된 단어들의 미 발화 IP 비율들을 유추할 수 있다.
프로세서(260)는 IP 비율 모델에 기반하여, 미 발화 단어의 IP 비율을 결정할 수 있다.
IP 비율 모델은 미 발화 단어, 미 발화 단어의 성격, 미 발화 단어의 성격과 유사한 발화 단어의 IP 비율 및 레이블링 데이터(IP 클래스로 분류될 확률)을 이용하여, 미 발화 단어가 IP 클래스로 분류될 확률을 결정하는 모델일 수 있다.
미 발화 단어의 성격과 유사한 발화 단어란, 미 발화 단어와 유의어인 단어일 수 있다.
프로세서(260)는 IP 클래스로 분류될 확률을 미발화 단어의 IP 비율로 결정할 수 있다.
이에 대해서는, 도 27을 참조하여 설명한다.
도 27은 본 발명의 일 실시 예에 따른 IP 비율 모델을 설명하기 위한 도면이다.
IP 비율 모델(2700)은 사용자가 발화하지 않은 단어의 IP 비율을 유추하기 위한 모델일 수 있다.
IP 비율 모델은 딥 러닝 알고리즘 또는 머신 러닝 알고리즘에 의해 학습된 인공 신경망 기반의 모델일 수 있다.
IP 비율 모델의 학습에 사용되는 학습 데이터는 미 발화 단어, 미 발화 단어의 성격, 레이블링 데이터(IP 클래스로 분류될 확률)를 포함할 수 있다.
미 발화 단어의 성격은 미 발화 단어의 품사, 문장 내 위치 중 하나 이상을 포함할 수 있다.
IP 비율 모델(2700)은 미 발화 단어, 미 발화 단어 및 IP 클래스로 분류될 확률을 입력데이터로 하여, 미 발화 단어가 IP 클래스로 분류될 확률을 정확하게 추론하도록 하는 모델일 수 있다.
레이블링 데이터는 미 발화 단어의 품사와 동일한 품사를 가지면서, 문장 내 위치도 유사한 발화 단어의 개인화 IP 비율일 수 있다.
프로세서(260)는 IP 비율 모델(2700)을 이용하여, 사용자가 미 발화한 단어의 개인화 IP 비율을 획득할 수 있다.
도 28은 본 발명의 실시 예에 따라 사용자가 미 발화한 단어들의 개인화 IP 비율들이 유추된 결과를 설명하는 도면이다.
도 28의 테이블(2800)을 참조하면, 사용자가 미 발화한 단어들 <We>, <And>, <This> 각각에 대해 IP 비율 모델(2700)을 이용하여 유추된 개인화 IP 비율들(2810, 미 발화 IP 비율들)을 포함할 수 있다.
사용자가 발화하지 않은 미 발화단어들 각각에 대응하는 개인화 IP 비율들은 개인화 합성 음성 모델의 학습에 사용될 수 있다.
다시, 도 23을 설명한다.
음성 합성 장치(30)의 프로세서(260)는 발화 IP 비율들 및 유추된 미 발화 IP 비율들에 기초하여, 개인화 합성 음성 모델을 생성한다(S2317).
프로세서(260)는 발화된 단어들에 대한 IP 비율들 및 미 발화 IP 비율들에 기초하여, 개인화 합성 음성 모델을 생성할 수 있다.
개인화 합성 음성 모델은 사용자의 띄어 읽기 스타일을 반영하여, 합성 음성을 출력하기 위한 모델일 수 있다.
개인화 합성 음성 모델의 학습 방법은 도 17에 도시된 합성 음성 모델의 학습 방법과 동일할 수 있다. 다만, 학습 데이터로 사용되는 IP 비율들은 도 28에서 도시된 개인화 IP 비율들이 사용될 수 있다.
개인화 합성 음성 모델은 딥 러닝 알고리즘 또는 머신 러닝 알고리즘에 의해 학습된 인공 신경망 기반의 모델일 수 있다.
프로세서(260)는 띄어 읽기 예측의 성능을 높이기 위해, 개인화 합성 음성 모델에 도 8 및 도 9에 기재된 오버 샘플링 기법을 적용할 수 있다.
또 다른 예로, 프로세서(260)는 띄어 읽기 예측의 성능을 높이기 위해, 개인화 합성 음성 모델에 도 15의 실시 예를 적용할 수 있다.
음성 합성 장치(30)의 프로세서(260)는 통신부(210)를 통해 개인화 합성 음성 모델을 단말기(100)에 전송한다(S2319).
단말기(100)는 개인화 합성 음성 모델을 메모리(170)에 저장할 수 있다.
단말기(100)는 사용자에게 음성 인식 서비스 제공 시, 출력하는 합성 음성을 사용자의 띄어 읽기 스타일에 맞도록, 출력할 수 있다.
이에 따라, 사용자는 자신의 발화 스타일에 맞는 음성을 청취할 수 있어, 음성 인식 서비스에 대한 만족도가 크게 향상될 수 있다.
한편, 사용자가 미 발화한 단어에 대한 발화 정보가 수집된 경우, 프로세서(260)는 개인화 합성 음성 모델을 업데이트할 수 있다.
이에 대해서는, 도 29를 참조하여 설명한다.
도 29는 본 발명의 실시 예에 따라 음성 합성 장치가 개인화 합성 음성 모델을 업데이트하는 과정을 설명하는 흐름도이다.
도 29를 참조하면, 음성 합성 장치(30)의 프로세서(260)는 미 발화 단어의 발화 정보를 수집한다(S2901).
프로세서(260)는 단말기(100)로부터, 미 발화되었던 단어의 발화 정보를 수신할 수 있다.
미 발화되었던 단어의 발화 정보는 단어를 IP 클래스로 읽은 횟수, 단어의 품사, 단어의 문장 내 위치를 포함할 수 있다.
음성 합성 장치(30)의 프로세서(260)는 수집된 미 발화 단어의 발화 정보에 기초하여, 미 발화 단어의 IP 비율을 획득한다(S2903).
프로세서(260)는 미 발화되었던 단어를 IP 클래스로 읽은 횟수에 기반하여, IP 비율을 획득할 수 있다.
음성 합성 장치(30)의 프로세서(260)는 획득된 IP 비율과 단계 S2315에서 유추된 IP 비율이 기 설정된 비율 이상 차이가 나는지를 판단한다(S2905).
기 설정된 비율은 0.05일 수 있으나, 이는 예시에 불과한 수치이다.
음성 합성 장치(30)의 프로세서(260)는 획득된 IP 비율과 유추된 IP 비율이 기 설정된 비율 이상 차이가 나는 경우, 개인화 합성 음성 모델을 재 학습시킨다(S2907).
프로세서(260)는 획득된 IP 비율과 유추된 IP 비율의 차이가 많이 나는 경우, 정확한 개인화 합성 음성 모델의 생성을 위해, 개인화 합성 음성 모델을 재 학습시킬 수 있다.
즉, 프로세서(260)는 기존의 미 발화되었던 단어의 유추된 IP 비율을 새롭게 발화된 단어의 IP 비율로 변경하여, 개인화 합성 음성 모델을 학습시킬 수 있다.
음성 합성 장치(30)의 프로세서(260)는 재 학습되어, 업데이트된 개인화 합성 음성 모델을 획득하고, 업데이트된 개인화 합성 음성 모델을 단말기(100)에 전송한다(S2909).
단말기(100)는 업데이트된 개인화 합성 음성 모델을 메모리(170)에 저장하고, 업데이트된 개인화 합성 음성 모델을 통해, 음성 서비스를 제공할 수 있다.
이에 따라, 사용자의 띄어 읽기 스타일을 반영하는 합성 음성이 제공될 수 있어, 음성 인식 서비스에 대한 사용자의 만족도가 크게 향상될 수 있다.
도 30은 본 개시의 또 다른 실시 예에 따른 시스템의 동작 방법을 설명하기 위한 래더 다이어그램이다.
특히, 도 30은 사용자의 띄어 읽기 스타일을 반영하여, 합성 음성 모델을 생성하는 방법에 관한 것이다.
단말기(100)의 프로세서(180)는 사용자의 발화 정보를 수집한다(S3001).
단말기(100)의 프로세서(180)는 특정 사용자가 발화한 음성을 마이크로폰(122)을 통해 수신할 수 있고, 수신된 음성으로부터, 발화 정보를 수집할 수 있다.
본 개시는 특정 사용자에게 최적화된 띄어 읽기로 합성 음성을 출력할 수 있는 합성 음성 모델을 생성하는 것에 목적이 있다. 이에, 발화 정보는 특정 사용자가 발화한 음성에 기반하여, 수집될 수 있다.
발화 정보는 사용자가 발화한 문장을 구성하는 단어를 IP 클래스로 읽은 횟수, 각 단어의 품사, 단어의 문장 내 위치를 포함할 수 있다. 프로세서(180)는 자동 음성 인식(Automatic Speech Recognition, ASR) 모델을 이용하여, 발화 정보를 획득할 수 있다. 자동 음성 인식 모델은 사용자가 발화한 음성으로부터, 발화 특징들을 추출하는 모델일 수 있다.
프로세서(180)는 일정 기간 동안 발화 정보를 수집할 수 있다.
단말기(100)의 무선 통신부(110)는 수집된 사용자의 발화 정보를 음성 합성 장치(30)의 통신부(210)에 전송한다(S3003).
프로세서(260)는 수신된 발화 정보는 개인화 IP 비율 테이블을 획득하기 위해 사용될 수 있다.
개인화 IP 비율 테이블은 개인화된 합성 음성 모델의 학습을 위해 사용되는 데이터일 수 있다. 개인화 IP 비율 테이블은 특정 사용자에게 적용되는 각 단어의 IP 비율들을 포함할 수 있다
음성 합성 장치(30)의 프로세서(260)는 단말기(100)로부터 수집된 발화 정보에 기반하여, 복수의 발화 단어들 각각의 발화 IP 비율들을 획득한다(S3005).
발화 IP 비율들은 사용자가 발화한 복수의 단어들 각각에 대응하는 IP 비율들일 수 있다.
발화 IP 비율은 실제, 사용자가 발화한 단어를 IP 클래스로 띄어 읽은 비율일 수 있다.
프로세서(260)는 발화 정보에 포함된 각 단어가 IP 클래스로 분류된 횟수에 기반하여, 각 단어의 발화 IP 비율을 획득할 수 있다.
이에 대해서는 도 31을 설명한다.
도 31은 본 개시의 일 실시 예에 따라 특정 사용자의 발화 정보에 기초하여 획득된 개인화 IP 비율 테이블을 설명하는 도면이다.
도 31을 참조하면, 특정 사용자의 발화 정보에 기반하여, 획득된 복수의 단어들 각각에 대한 복수의 발화 IP 비율들을 포함하는 개인화 IP 비율 테이블(3100)이 도시되어 있다.
각 단어에 대한 개인화 IP 비율은 사용자가 100개의 문장에 포함된 단어를 IP 클래스로 띄어 읽은 횟수를 통해 얻어질 수 있다.
예를 들어, <Because> 라는 단어의 IP 비율(0.75)은 <Because>를 포함하는 100개의 문장에서, 특정 사용자가 75번 IP 클래스로 띄어 읽은 비율을 나타낼 수 있다.
마찬가지로, <For> 라는 단어의 IP 비율(0.65)은 <For>를 포함하는 100개의 문장에서, 특정 사용자가 65번 IP 클래스로 띄어 읽은 비율을 나타낼 수 있다.
개인화 합성 음성 모델은 사용자의 띄어 읽기 스타일을 반영하여, 합성 음성을 출력하기 위한 개인화된 모델일 수 있다. 개인화 합성 음성 모델의 학습을 위해서는, 특정 사용자가 발화하지 않은 단어들에 대해서도, 개인화 IP 비율이 필요하다.
도 31을 참조하면, <We>, <And>, <This>라는 단어는 사용자가 발화하지 않아, 개인화 IP 비율이 직접 계산될 수 없다.
이를 위해, 프로세서(260)는 복수의 성우들이 발화한 단어들의 IP 비율을 이용하여, 미발화 단어들에 대한 IP 비율을 유추할 수 있다.
다시, 도 30을 설명한다.
음성 합성 장치(30)의 프로세서(260)는 획득된 복수의 발화 IP 비율들과 복수의 성우들 각각에 대응하는 복수의 IP 비율 테이블들을 비교한다(S3007).
음성 합성 장치(30)의 데이터 베이스(232)는 복수의 성우들 각각이 발화한 음성 데이터를 저장하고 있을 수 있다.
프로세서(260)는 각 성우가 발화한 음성 데이터에 기반하여, IP 비율 테이블을 획득할 수 있다.
이에 대한 설명은 도 24의 설명으로 대체한다.
프로세서(260)는 특정 사용자의 발화 정보에 기초하여, 얻어진 복수의 발화 IP 비율들을 포함하는 개인화 IP 비율 테이블 및 복수의 성우들 각각에 대응하는 복수의 IP 비율들 각각과 비교할 수 있다.
프로세서(260)는 특정 사용자가 미 발화한 미발화 단어들 각각에 대한 IP 비율을 획득하기 위해 위 비교 작업을 수행할 수 있다.
음성 합성 장치(30)의 프로세서(260)는 비교 결과에 따라 복수의 IP 비율 테이블들 중 복수의 발화 IP 비율들과 가장 근접한 IP 비율 테이블을 결정한다(S3009).
이에 대해서는, 도 32를 참조하여 설명한다.
도 32는 본 개시의 실시 예에 따라, 개인화 IP 비율 테이블과 복수의 성우들 각각에 대응하는 복수의 IP 비율 테이블들 간을 비교하는 과정을 설명하는 도면이다.
도 32를 참조하면, 개인화 IP 비율 테이블(3100) 및 복수의 IP 비율 테이블들(2410 내지 2450)이 도시되어 있다.
음성 합성 장치(30)의 프로세서(260)는 개인화 IP 비율 테이블(3100)과 복수의 IP 비율 테이블들(2410 내지 2450) 각각을 비교할 수 있다.
구체적으로, 프로세서(260)는 개인화 IP 비율 테이블(3100)에 포함된 발화 단어들에 대응하는 개인화 IP 비율들과, 각 IP 비율 테이블에 포함된 동일한 단어의 IP 비율들을 비교할 수 있다.
<Because> 라는 단어의 경우, 개인화 IP 비율은 0.75이다.
제1 IP 비율 테이블(2410)에서, <Because> 라는 단어의 IP 비율은 0.84이고, 제2 IP 비율 테이블(2430)에서 IP 비율은 0.8이고, 제3 IP 비율 테이블(2450)에서, IP 비율은 0.7이다.
프로세서(260)는 <Because> 라는 단어에 대해 개인화 IP 비율인 0.75와 위 IP 비율들 간의 차이를 계산할 수 있다.
계산 결과는 0.09(0.84-0.75), 0.05(0.8-0.75), 0.05(0.75-0.7)로 얻어질 수 있다.
<For>라는 단어의 경우, 개인화 IP 비율은 0.65이다.
제1 IP 비율 테이블(2410)에서, <For> 라는 단어의 IP 비율은 0.79이고, 제2 IP 비율 테이블(2430)에서 IP 비율은 0.6이고, 제3 IP 비율 테이블(2450)에서, IP 비율은 0.69이다.
프로세서(260)는 <For>라는 단어에 대해 개인화 IP 비율인 0.65와 위 IP 비율들 간의 차이를 계산할 수 있다.
계산 결과는 0.14(0.79-0.65), 0.05(0.65-0.6), 0.04(0.69-0.65)로 얻어질 수 있다.
프로세서(260)는, 발화 단어들의 IP 비율들의 차이를 합산할 수 있다. 합산 결과는 제1 IP 비율 테이블(2410)과의 비교에 의해 0.23, 제2 IP 비율 테이블(2430)과의 비교에 의해 0.1, 제3 IP 비율 테이블(2450)과의 비교에 의해 0.09로 얻어질 수 있다.
프로세서(260)는 합산 결과 값이 가장 작은 제3 IP 비율 테이블(2450)을 최근접 IP 비율 테이블로 결정할 수 있다.
프로세서(260)는 제3 IP 비율 테이블(2450)에 포함된 IP 비율들을 미발화 단어들의 IP 비율들로 결정할 수 있다.
이에 대해서는, 도 33을 참조하여 설명한다.
도 33은 본 개시의 실시 예에 따라 최 근접 IP 비율 테이블에 포함된 IP 비율들을 미발화 단어들의 IP 비율들로 이용하는 예를 설명하는 도면이다.
도 32에서 설명된 것처럼, 제3 IP 비율 테이블(2450)이 개인화 IP 비율 테이블(3100)과 최 근접 IP 비율 테이블로 결정되었음을 가정한다.
<We>라는 미 발화 단어의 IP 비율은 제3 IP 비율 테이블(2450)에 포함된 <We>라는 단어의 IP 비율은 0.68로 결정될 수 있다.
마찬가지로, <And>라는 미 발화 단어의 IP 비율은 제3 IP 비율 테이블(2450)에 포함된 <And>라는 단어의 IP 비율은 0.8로 결정될 수 있다.
마찬가지로, <This>라는 미 발화 단어의 IP 비율은 제3 IP 비율 테이블(2450)에 포함된 <This>라는 단어의 IP 비율은 0.15로 결정될 수 있다.
같은 방법으로, 특정 사용자의 미 발화 단어들에 대한 IP 비율들이 결정될 수 있다. 최종적으로, 도 33의 완성된 개인화 IP 비율 테이블(3100)이 얻어질 수 있다.
이와 같이, 성우가 발화한 음성에 따른 IP 비율을 이용하는 경우, 특정 사용자가 미발화한 단어들에 대한 초기 데이터 부족 문제가 해소될 수 있다.
다시, 도 30을 설명한다.
음성 합성 장치(30)의 프로세서(260)는 결정된 IP 비율 테이블에 기초한 개인화 합성 음성 모델을 생성한다(S3011).
개인화 합성 음성 모델은 개인화 IP 비율 테이블에 포함된 각 단어의 IP 비율을 이용하여, 단어가 IP 클래스로 분류될 확률, WP 클래스로 분류될 확률, AP 클래스로 분류될 확률을 결정하는 모델일 수 있다.
개인화 합성 음성 모델은 딥 러닝 알고리즘 또는 머신 러닝 알고리즘에 의해 학습된 인공 신경망 기반 모델일 수 있다.
개인화 합성 음성 모델은 지도 학습을 통해 학습된 모델일 수 있다.
개인화 합성 음성 모델에 사용되는 학습 데이터는 복수의 단어들을 포함하는 문장에 대응하는 텍스트 데이터, 각 단어에 레이블링된 개인화 IP 비율을 포함할 수 있다.
개인화 합성 음성 모델에 대해서는, 도 34를 참조하여 설명한다.
도 34는 본 개시의 일 실시 예에 따른 개인화 합성 음성 모델의 학습 과정을 설명하는 도면이다.
도 34를 참조하면, 개인화 합성 음성 모델(3400)은 지도 학습을 통해 학습될 수 있다.
개인화 합성 음성 모델(3400)은 특정 사용자에 대해, 각 단어의 띄어 읽기 정도를 추론하는 모델일 수 있다. 추론된 단어의 띄어 읽기 정도는 추후, 해당 단어의 합성 음성의 출력 시, 사용될 수 있다.
개인화 합성 음성 모델(3400)의 트레이닝 데이터 세트는 복수의 단어들을 포함하는 문장에 대응하는 텍스트 데이터, 텍스트 데이터를 구성하는 단어에 레이블링된 IP 비율 및 레이블링 데이터인 IP 확률을 포함할 수 있다.
IP 확률은 IP 클래스로 분류될 확률이며, 레이블링 데이터일 수 있다.
개인화 합성 음성 모델(3400)은 단어에 해당되는 텍스트 데이터가 IP 클래스로 분류될 IP 확률을 추론할 수 있다.
프로세서(260)는 띄어 읽기 예측의 성능을 높이기 위해, 개인화 합성 음성 모델에 도 8 및 도 9에 기재된 오버 샘플링 기법을 적용할 수 있다.
또 다른 예로, 프로세서(260)는 띄어 읽기 예측의 성능을 높이기 위해, 개인화 합성 음성 모델에 도 15의 실시 예를 적용할 수 있다.
다시, 도 30을 설명한다.
음성 합성 장치(30)의 프로세서(260)는 생성된 개인화 합성 음성 모델을 통신부(210)를 통해 단말기(100)로 전송한다(S3013).
단말기(100)는 개인화 합성 음성 모델을 메모리(170)에 저장할 수 있다.
단말기(100)는 사용자에게 합성 음성 출력 서비스의 제공 시, 출력하는 합성 음성을 사용자의 띄어 읽기 스타일에 맞도록, 출력할 수 있다.
이에 따라, 사용자는 자신의 발화 스타일에 맞는 음성을 청취할 수 있어, 음성 인식 서비스에 대한 만족도가 크게 향상될 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 상기 컴퓨터는 단말기의 프로세서(180)를 포함할 수도 있다.

Claims (16)

  1. 인공 지능을 이용한 음성 합성 장치에 있어서,
    메모리;
    단말기로부터 사용자가 발화한 단어들에 대한 발화 정보를 수신하는 통신 프로세서; 및
    상기 발화 정보에 기반하여, 상기 사용자가 발화한 복수의 발화 단어들 각각에 대응하는 복수의 발화 IP 비율들을 획득하고, 복수의 성우들 각각에 상응하는 복수의 IP 비율 테이블들 및 상기 복수의 발화 IP 비율들을 비교하고, 비교 결과에 기초하여, 복수의 미 발화 단어들 각각에 대응하는 복수의 미 발화 IP 비율들을 획득하고, 상기 복수의 발화 IP 비율들 및 상기 복수의 미 발화 IP 비율들에 기초하여, 개인화 합성 음성 모델을 생성하는 프로세서를 포함하고,
    단어의 띄어 읽기 정도를 나타내는 복수의 클래스들은 제1 띄어 읽기 정도에 대응하는 제1 클래스, 상기 제1 띄어 읽기 정도보다 큰 제2 띄어 읽기 정도에 대응하는 제2 클래스, 상기 제2 띄어 읽기 정도보다 큰 제3 띄어 읽기 정도에 대응하는 제3 클래스를 포함하고,
    상기 마이너 클래스는 상기 제1 내지 3 클래스들 중 개수가 가장 적은 클래스이고,
    각 발화 IP 비율 및 각 미 발화 IP 비율은 단어가 상기 마이너 클래스로 분류된 비율인
    음성 합성 장치.
  2. 제1항에 있어서,
    상기 발화 정보는
    각 발화 단어의 띄어 읽기 정도, 각 발화 단어의 품사, 각 발화 단어의 문장 내 위치를 포함하는
    음성 합성 장치.
  3. 제2항에 있어서,
    상기 프로세서는
    상기 각 발화 단어를 상기 사용자가 상기 마이너 클래스로 띄어 읽은 정도의 횟수를 이용하여, 상기 각 발화 단어의 발화 IP 비율을 획득하는
    음성 합성 장치.
  4. 제3항에 있어서,
    상기 프로세서는
    상기 복수의 발화 IP 비율들 및 상기 복수의 IP 비율 테이블들 각각에 포함된 발화 단어들의 IP 비율들 간의 차이들을 합산하고,
    상기 복수의 IP 비율 테이블들 중 합산 결과 값이, 가장 작은 IP 비율 테이블을 최 근접 IP 비율 테이블로 결정하는
    음성 합성 장치.
  5. 제4항에 있어서,
    상기 프로세서는
    상기 복수의 미 발화 IP 비율들 각각을 상기 최 근접 IP 비율 테이블에 포함된 각 미 발화 단어의 IP 비율로 획득하는
    음성 합성 장치.
  6. 제1항에 있어서,
    상기 개인화 합성 음성 모델은
    상기 사용자가 발화하는 단어의 띄어 읽기 정도를 반영하여, 합성 음성을 출력하는 모델이고,
    딥 러닝 알고리즘 또는 머신 러닝 알고리즘에 의해 학습된 인공 신경망 기반의 모델인
    음성 합성 장치.
  7. 제6항에 있어서,
    상기 개인화 합성 음성 모델은
    복수의 단어들에 상응하는 텍스트 데이터, 각 단어의 IP 비율 및 각 단어에 라벨링된 상기 마이너 클래스로 분류될 확률을 학습 데이터로 하여, 각 단어가 상기 마이너 클래스로 분류된 확률을 추론하는 모델인
    음성 합성 장치.
  8. 제7항에 있어서,
    상기 프로세서는
    상기 통신 프로세서를 통해 상기 개인화 합성 음성 모델을 상기 단말기에 전송하는
    음성 합성 장치.
  9. 인공 지능을 이용한 음성 합성 장치의 동작 방법에 있어서,
    단말기로부터 사용자가 발화한 단어들에 대한 발화 정보를 수신하는 단계;
    상기 발화 정보에 기반하여, 상기 사용자가 발화한 복수의 발화 단어들 각각에 대응하는 복수의 발화 IP 비율들을 획득하는 단계;
    복수의 성우들 각각에 상응하는 복수의 IP 비율 테이블들 및 상기 복수의 발화 IP 비율들을 비교하는 단계;
    비교 결과에 기초하여, 복수의 미 발화 단어들 각각에 대응하는 복수의 미 발화 IP 비율들을 획득하는 단계; 및
    상기 복수의 발화 IP 비율들 및 상기 복수의 미 발화 IP 비율들에 기초하여, 개인화 합성 음성 모델을 생성하는 단계를 포함하고,
    단어의 띄어 읽기 정도를 나타내는 복수의 클래스들은 제1 띄어 읽기 정도에 대응하는 제1 클래스, 상기 제1 띄어 읽기 정도보다 큰 제2 띄어 읽기 정도에 대응하는 제2 클래스, 상기 제2 띄어 읽기 정도보다 큰 제3 띄어 읽기 정도에 대응하는 제3 클래스를 포함하고,
    상기 마이너 클래스는 상기 제1 내지 3 클래스들 중 개수가 가장 적은 클래스이고,
    각 발화 IP 비율 및 각 미 발화 IP 비율은 단어가 상기 마이너 클래스로 분류된 비율인
    음성 합성 장치의 동작 방법.
  10. 제9항에 있어서,
    상기 발화 정보는
    각 발화 단어의 띄어 읽기 정도, 각 발화 단어의 품사, 각 발화 단어의 문장 내 위치를 포함하는
    음성 합성 장치의 동작 방법.
  11. 제10항에 있어서
    상기 복수의 발화 IP 비율들을 획득하는 단계는
    상기 각 발화 단어를 상기 사용자가 상기 마이너 클래스로 띄어 읽은 정도의 횟수를 이용하여, 상기 각 발화 단어의 발화 IP 비율을 획득하는 단계를 포함하는
    음성 합성 장치의 동작 방법.
  12. 제11항에 있어서,
    상기 복수의 발화 IP 비율들 및 상기 복수의 IP 비율 테이블들 각각에 포함된 발화 단어들의 IP 비율들 간의 차이들을 합산하는 단계; 및
    상기 복수의 IP 비율 테이블들 중 합산 결과 값이, 가장 작은 IP 비율 테이블을 최 근접 IP 비율 테이블로 결정하는 단계를 더 포함하는
    음성 합성 장치의 동작 방법.
  13. 제12항에 있어서,
    상기 복수의 미 발화 IP 비율들을 획득하는 단계는
    상기 복수의 미 발화 IP 비율들 각각을 상기 최 근접 IP 비율 테이블에 포함된 각 미 발화 단어의 IP 비율로 획득하는 단계를 포함하는
    음성 합성 장치의 동작 방법.
  14. 제9항에 있어서,
    상기 개인화 합성 음성 모델은
    상기 사용자가 발화하는 단어의 띄어 읽기 정도를 반영하여, 합성 음성을 출력하는 모델이고,
    딥 러닝 알고리즘 또는 머신 러닝 알고리즘에 의해 학습된 인공 신경망 기반의 모델인
    음성 합성 장치의 동작 방법.
  15. 제14항에 있어서,
    상기 개인화 합성 음성 모델은
    복수의 단어들에 상응하는 텍스트 데이터, 각 단어의 IP 비율 및 각 단어에 라벨링된 상기 마이너 클래스로 분류될 확률을 학습 데이터로 하여, 각 단어가 상기 마이너 클래스로 분류된 확률을 추론하는 모델인
    음성 합성 장치의 동작 방법.
  16. 제7항에 있어서,
    상기 개인화 합성 음성 모델을 상기 단말기에 전송하는 단계를 더 포함하는
    음성 합성 장치의 동작 방법.
KR1020190113337A 2019-09-16 2019-09-16 인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법 KR102281504B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190113337A KR102281504B1 (ko) 2019-09-16 2019-09-16 인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법
US16/598,897 US11398219B2 (en) 2019-09-16 2019-10-10 Speech synthesizer using artificial intelligence and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190113337A KR102281504B1 (ko) 2019-09-16 2019-09-16 인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법

Publications (2)

Publication Number Publication Date
KR20190112680A true KR20190112680A (ko) 2019-10-07
KR102281504B1 KR102281504B1 (ko) 2021-07-26

Family

ID=68422342

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190113337A KR102281504B1 (ko) 2019-09-16 2019-09-16 인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법

Country Status (2)

Country Link
US (1) US11398219B2 (ko)
KR (1) KR102281504B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111666396A (zh) * 2020-06-05 2020-09-15 北京百度网讯科技有限公司 用户意图理解满意度评估方法、装置、设备和存储介质
CN112632222A (zh) * 2020-12-25 2021-04-09 海信视像科技股份有限公司 一种终端设备和确定数据所属领域的方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200027331A (ko) * 2018-09-04 2020-03-12 엘지전자 주식회사 음성 합성 장치
US20220310058A1 (en) * 2020-11-03 2022-09-29 Microsoft Technology Licensing, Llc Controlled training and use of text-to-speech models and personalized model generated voices
CN113627149A (zh) * 2021-08-10 2021-11-09 华南师范大学 课堂对话的评价方法、系统和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120117041A (ko) * 2011-04-14 2012-10-24 한국과학기술원 개인 운율 모델에 기반하여 감정 음성을 합성하기 위한 방법 및 장치 및 기록 매체
KR20170017545A (ko) * 2015-08-07 2017-02-15 네이버 주식회사 운율 정보 기반의 자소열 음소열 변환 방법과 시스템 그리고 기록 매체

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1604077B (zh) * 2003-09-29 2012-08-08 纽昂斯通讯公司 对发音波形语料库的改进方法
KR20100085433A (ko) * 2009-01-20 2010-07-29 주식회사 보이스웨어 다중 목표운율 이용한 고음질 음성합성 방법
CN105374350B (zh) * 2015-09-29 2017-05-17 百度在线网络技术(北京)有限公司 语音标注方法及装置
CN105551481B (zh) * 2015-12-21 2019-05-31 百度在线网络技术(北京)有限公司 语音数据的韵律标注方法及装置
US11335334B2 (en) * 2017-11-02 2022-05-17 Sony Corporation Information processing device and information processing method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120117041A (ko) * 2011-04-14 2012-10-24 한국과학기술원 개인 운율 모델에 기반하여 감정 음성을 합성하기 위한 방법 및 장치 및 기록 매체
KR20170017545A (ko) * 2015-08-07 2017-02-15 네이버 주식회사 운율 정보 기반의 자소열 음소열 변환 방법과 시스템 그리고 기록 매체

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111666396A (zh) * 2020-06-05 2020-09-15 北京百度网讯科技有限公司 用户意图理解满意度评估方法、装置、设备和存储介质
CN111666396B (zh) * 2020-06-05 2023-10-31 北京百度网讯科技有限公司 用户意图理解满意度评估方法、装置、设备和存储介质
CN112632222A (zh) * 2020-12-25 2021-04-09 海信视像科技股份有限公司 一种终端设备和确定数据所属领域的方法
CN112632222B (zh) * 2020-12-25 2023-02-03 海信视像科技股份有限公司 一种终端设备和确定数据所属领域的方法

Also Published As

Publication number Publication date
US11398219B2 (en) 2022-07-26
US20200043464A1 (en) 2020-02-06
KR102281504B1 (ko) 2021-07-26

Similar Documents

Publication Publication Date Title
US11393491B2 (en) Artificial intelligence device capable of controlling operation of another device and method of operating the same
CN111754998B (zh) 人工智能设备以及操作人工智能设备的方法
KR102281504B1 (ko) 인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법
US11705105B2 (en) Speech synthesizer for evaluating quality of synthesized speech using artificial intelligence and method of operating the same
US11200888B2 (en) Artificial intelligence device for providing speech recognition function and method of operating artificial intelligence device
US11568853B2 (en) Voice recognition method using artificial intelligence and apparatus thereof
US11189282B2 (en) Intelligent voice recognizing method, apparatus, and intelligent computing device
US20200058290A1 (en) Artificial intelligence apparatus for correcting synthesized speech and method thereof
US11521621B2 (en) Gathering user&#39;s speech samples
US20210110815A1 (en) Method and apparatus for determining semantic meaning of pronoun
KR20190096308A (ko) 전자기기
US11417313B2 (en) Speech synthesizer using artificial intelligence, method of operating speech synthesizer and computer-readable recording medium
US20210337274A1 (en) Artificial intelligence apparatus and method for providing visual information
KR102631143B1 (ko) 인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법 및 컴퓨터로 판독 가능한 기록 매체
KR102642617B1 (ko) 인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법 및 컴퓨터로 판독 가능한 기록 매체
KR102603282B1 (ko) 인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법 및 컴퓨터로 판독 가능한 기록 매체
US20230136611A1 (en) Artificial intelligence apparatus and method for controlling 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