KR20200056261A - 전자 장치 및 이의 제어 방법 - Google Patents

전자 장치 및 이의 제어 방법 Download PDF

Info

Publication number
KR20200056261A
KR20200056261A KR1020190024241A KR20190024241A KR20200056261A KR 20200056261 A KR20200056261 A KR 20200056261A KR 1020190024241 A KR1020190024241 A KR 1020190024241A KR 20190024241 A KR20190024241 A KR 20190024241A KR 20200056261 A KR20200056261 A KR 20200056261A
Authority
KR
South Korea
Prior art keywords
sentence
text
voice
information
electronic device
Prior art date
Application number
KR1020190024241A
Other languages
English (en)
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 CN201980063157.XA priority Critical patent/CN112771607A/zh
Priority to EP19885929.0A priority patent/EP3818518A4/en
Priority to PCT/KR2019/015050 priority patent/WO2020101263A1/en
Priority to US16/683,342 priority patent/US11289083B2/en
Publication of KR20200056261A publication Critical patent/KR20200056261A/ko
Priority to US17/679,446 priority patent/US20220180872A1/en

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/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
    • 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/06Elementary speech units used in speech synthesisers; Concatenation rules
    • 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
    • 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
    • G10L2013/083Special characters, e.g. punctuation marks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Machine Translation (AREA)

Abstract

전자 장치가 개시된다. 본 개시의 전자 장치는 적어도 하나의 명령어를 포함하는 메모리 및 적어도 하나의 명령어를 실행하는 프로세서를 포함하고, 프로세서는, 텍스트 문장이 입력되면, 텍스트 문장의 운율 정보(prosody information)를 획득하고, 텍스트 문장을 복수의 문장 구성 요소(sentence element)로 분할하고, 복수의 문장 구성 요소 및 텍스트 문장의 운율 정보를 TTS(Text to Speech) 모듈에 입력하여 복수의 문장 구성 요소 각각에 운율 정보가 반영된 음성을 병렬적으로 획득하고, 병렬적으로 획득된 복수의 문장 구성 요소에 대한 음성을 병합하여 텍스트 문장에 대한 음성을 획득한다.

Description

전자 장치 및 이의 제어 방법 { ELECTRONIC APPARATUS AND METHOD FOR CONTROLLING THEREOF }
본 개시는 전자 장치 및 그 제어 방법에 대한 것으로, 보다 상세하게는, 보다 자연스러운 대화 시스템을 구현할 수 있는 전자 장치 및 그 제어 방법에 관한 것이다.
근래에는 인공 지능 시스템이 다양한 분야에서 이용되고 있다. 인공 지능 시스템은 기존의 룰(rule) 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공 지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 룰 기반 스마트 시스템은 점차 딥러닝 기반 인공 지능 시스템으로 대체되고 있다.
인공 지능 기술은 기계학습(예로, 딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다.
기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
인공 지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 오브젝트 인식, 오브젝트 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
한편, 근래에는 사용자 음성 입력에 대한 응답을 제공하는 인공지능 에이전트(예로, 빅스비TM, 어시스턴트TM, 알렉사TM 등)를 이용한 다양한 서비스들이 제공되고 있다. 특히, Neural TTS 기술 도입으로 인해 입력 텍스트와 음향 특징의 관계를 통합적으로 모델링하여 전반적으로 자연스러운 합성음을 출력 가능하게 되었다.
특히, 긴 텍스트를 음성 합성 하는 경우, 음성 합성 시간이 증가함에 따라 인공지능 에이전트에서의 피드백 음성 출력이 늦어지고, 사용자는 인공지능 에이전트와의 대화가 부자연스럽게 느껴지는 문제가 있었다.
이에 피드백을 앞당기기 위해 피드백 텍스트 문장을 분할하여 병렬적으로 음성을 합성하는 경우에는 분할된 텍스트 문장에 대한 음성이 각각 독립된 운율을 가지고 있어, 음성 간 운율이 연결되지 않아 전체적으로는 부자연스러운 피드백 음성이 출력되는 문제가 있었다.
이에 따라 피드백 음성 출력을 앞당기면서도 자연스러운 피드백 음성이 제공되기 위한 인공 지능 대화 시스템 기술의 필요성이 대두되었다.
본 개시는 상술한 필요성에 따라 안출된 것으로, 본 개시의 목적은, 텍스트 문장 전체의 운율 정보를 반영하여 분할된 텍스트 문장을 병렬적으로 음성 합성함으로써, 보다 자연스러운 대화 시스템을 구현할 수 있는 전자 장치 및 그 제어 방법을 제공하는 데 있다.
본 개시의 일 실시 예에 따른 전자 장치는, 적어도 하나의 명령어를 포함하는 메모리 및 상기 적어도 하나의 명령어를 실행하는 프로세서를 포함하고, 상기 프로세서는, 텍스트 문장이 입력되면, 상기 텍스트 문장의 운율 정보(prosody information)를 획득하고, 상기 텍스트 문장을 복수의 문장 구성 요소(sentence element)로 분할하고, 상기 복수의 문장 구성 요소 및 상기 텍스트 문장의 운율 정보를 TTS(Text to Speech) 모듈에 입력하여 상기 복수의 문장 구성 요소 각각에 운율 정보가 반영된 음성을 병렬적으로 획득하고, 상기 병렬적으로 획득된 복수의 문장 구성 요소에 대한 음성을 병합(merging)하여 상기 텍스트 문장에 대한 음성을 획득한다.
이 경우, 상기 프로세서는, 상기 텍스트 문장을 제1 기준으로 분할하여 상기 복수의 제1 문장 구성 요소를 획득하고, 상기 획득된 복수의 제1 문장 구성 요소가 음성으로 변환되는데 걸리는 시간이 기설정된 시간 미만이면, 상기 복수의 제1 문장 구성 요소를 상기 TTS 모듈에 입력하고, 상기 복수의 제1 문장 구성 요소 중 적어도 하나가 음성으로 변환되는데 걸리는 시간이 상기 기설정된 시간 이상이면, 상기 적어도 하나의 제1 문장 구성 요소를 제2 기준으로 분할하여 복수의 제2 문장 구성 요소를 획득하고, 상기 복수의 제2 문장 구성 요소가 음성으로 변환되는데 걸리는 시간이 상기 기설정된 시간 미만이면, 상기 적어도 하나의 제1 문장 구성 요소를 제외한 나머지 제1 문장 구성 요소 및 상기 획득된 복수의 제2 문장 구성 요소를 상기 TTS 모듈에 입력할 수 있다.
이 경우, 상기 제1 기준이 문장 부호(punctuation marks) 기준이면, 상기 제2 기준은 절(clause) 기준이며, 상기 제1 기준이 절 기준이면, 상기 제2 기준은 구(phrase) 기준일 수 있다.
한편, 상기 운율 정보는, 상기 텍스트 문장의 형식, 통사적 구조 및 문맥 중 적어도 하나에 기초한 상기 텍스트 문장 전체의 음운 정보, 억양 정보 및 강세 정보를 포함할 수 있다.
한편, 상기 복수의 문장 구성 요소 각각은, 상기 텍스트 문장 내에서의 순서와 관련된 인덱스 정보를 포함하고, 상기 프로세서는, 상기 인덱스 정보에 기초하여 상기 병렬적으로 획득된 복수의 문장 구성 요소에 대한 음성을 병합하여 상기 텍스트 문장에 대한 음성을 획득할 수 있다.
한편, 상기 TTS 모듈은, DNN TTS(Deep Neural Network Text to Speech) 모듈일 수 있다.
한편, 스피커를 더 포함하고, 상기 프로세서는, 상기 스피커를 통해, 추임새(rejoinder) 음성을 출력 후 상기 획득된 텍스트 문장에 대한 음성을 출력할 수 있다.
이 경우, 복수의 추임새 음성은 상기 메모리에 저장되고, 상기 프로세서는, 상기 텍스트 문장에 대한 음성을 획득하는데 걸리는 시간에 기초하여 상기 복수의 추임새 음성 중 하나를 식별하고, 식별된 추임새 음성을 상기 스피커를 통해 출력할 수 있다.
한편, 통신부 및 스피커를 더 포함하고, 상기 프로세서는, 상기 복수의 문장 구성 요소 중 일부의 문장 구성 요소를 제외한 나머지 문장 구성 요소 및 상기 운율 정보를 상기 통신부를 통해 음성 합성을 위한 외부 장치로 전송하고, 상기 운율 정보를 반영하여 상기 일부의 문장 구성 요소에 대한 음성을 병렬적으로 획득하고, 상기 병렬적으로 획득된 음성 및 상기 외부 장치로부터 수신된 음성을 상기 스피커를 통해 출력할 수 있다.
이 경우, 상기 일부의 문장 구성 요소는, 상기 텍스트 문장의 서두 부분(beginning part)을 포함하고, 상기 프로세서는, 상기 일부의 문장 구성 요소에 대해 획득된 음성을 상기 스피커를 통해 출력 후 상기 외부 장치로부터 수신된 음성을 상기 스피커를 통해 출력할 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법은, 텍스트 문장이 입력되면, 상기 텍스트 문장의 운율 정보(prosody information)를 획득하는 단계, 상기 텍스트 문장을 복수의 문장 구성 요소(sentence element)로 분할하는 단계, 상기 복수의 문장 구성 요소 및 상기 텍스트 문장의 운율 정보를 TTS(Text to Speech) 모듈에 입력하여 상기 복수의 문장 구성 요소 각각에 운율 정보가 반영된 음성을 병렬적으로 획득하는 단계, 상기 병렬적으로 획득된 복수의 문장 구성 요소에 대한 음성을 병합하여 상기 텍스트 문장에 대한 음성을 획득하는 단계를 포함한다.
이 경우, 상기 분할하는 단계는, 상기 텍스트 문장을 제1 기준으로 분할하여 상기 복수의 제1 문장 구성 요소를 획득하고, 상기 획득된 복수의 제1 문장 구성 요소가 음성으로 변환되는데 걸리는 시간이 기설정된 시간 미만이면, 상기 복수의 제1 문장 구성 요소를 상기 TTS 모듈에 입력하고, 상기 복수의 제1 문장 구성 요소 중 적어도 하나가 음성으로 변환되는데 걸리는 시간이 상기 기설정된 시간 이상이면, 상기 적어도 하나의 제1 문장 구성 요소를 제2 기준으로 분할하여 복수의 제2 문장 구성 요소를 획득하고, 상기 복수의 제2 문장 구성 요소가 음성으로 변환되는데 걸리는 시간이 상기 기설정된 시간 미만이면, 상기 적어도 하나의 제1 문장 구성 요소를 제외한 나머지 제1 문장 구성 요소 및 상기 획득된 복수의 제2 문장 구성 요소를 상기 TTS 모듈에 입력할 수 있다.
이 경우, 상기 제1 기준이 문장 부호(punctuation marks) 기준이면, 상기 제2 기준은 절(clause) 기준이며, 상기 제1 기준이 절 기준이면, 상기 제2 기준은 구(phrase) 기준일 수 있다.
한편, 상기 운율 정보는, 상기 텍스트 문장의 형식, 통사적 구조 및 문맥 중 적어도 하나에 기초한 상기 텍스트 문장 전체의 음운 정보, 억양 정보 및 강세 정보를 포함할 수 있다.
한편, 상기 복수의 문장 구성 요소 각각은, 상기 텍스트 문장 내에서의 순서와 관련된 인덱스 정보를 포함하고, 상기 텍스트 문장에 대한 음성을 획득하는 단계는, 상기 인덱스 정보에 기초하여 상기 병렬적으로 획득된 복수의 문장 구성 요소에 대한 음성을 병합하여 상기 텍스트 문장에 대한 음성을 획득할 수 있다.
한편, 스피커를 통해 추임새(rejoinder) 음성을 출력 후 상기 획득된 텍스트 문장에 대한 음성을 출력하는 단계를 더 포함할 수 있다.
한편, 복수의 추임새 음성은 메모리에 저장되고, 상기 출력하는 단계는, 상기 텍스트 문장에 대한 음성을 획득하는데 걸리는 시간에 기초하여 상기 복수의 추임새 음성 중 하나를 식별하고, 식별된 추임새 음성을 상기 스피커를 통해 출력할 수 있다.
한편, 상기 복수의 문장 구성 요소 중 일부의 문장 구성 요소를 제외한 나머지 문장 구성 요소 및 상기 운율 정보를 음성 합성을 위한 외부 장치로 전송하는 단계 및 상기 운율 정보를 반영하여 상기 일부의 문장 구성 요소에 대한 음성을 병렬적으로 획득된 음성 및 상기 외부 장치로부터 수신된 음성을 스피커를 통해 출력하는 단계를 더 포함할 수 있다.
이 경우, 상기 일부의 문장 구성 요소는, 상기 텍스트 문장의 서두 부분(beginning part)을 포함하고, 상기 출력하는 단계는, 상기 일부의 문장 구성 요소에 대해 획득된 음성을 상기 스피커를 통해 출력 후 상기 외부 장치로부터 수신된 음성을 상기 스피커를 통해 출력할 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록 매체에 있어서, 전자 장치의 제어 방법은, 텍스트 문장이 입력되면, 상기 텍스트 문장의 운율 정보(prosody information)를 획득하는 단계, 상기 텍스트 문장을 복수의 문장 구성 요소(sentence element)로 분할하는 단계, 상기 복수의 문장 구성 요소 및 상기 텍스트 문장의 운율 정보를 TTS(Text to Speech) 모듈에 입력하여 상기 복수의 문장 구성 요소 각각에 운율 정보가 반영된 음성을 병렬적으로 획득하는 단계, 상기 병렬적으로 획득된 복수의 문장 구성 요소에 대한 음성을 병합하여 상기 텍스트 문장에 대한 음성을 획득하는 단계를 포함한다.
도 1은 본 개시의 일 실시 예에 따른 인공 지능 대화 시스템의 일 실시 예를 도시한 도면,
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 간략한 구성을 설명하기 위한 블럭도,
도 3은 도 2에 개시된 전자 장치의 구체적인 구성을 설명하기 위한 블럭도,
도 4 및 도 5는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 도면,
도 6은 도 5의 TTS 모듈의 음성 합성 동작을 보다 구체적으로 설명하기 위한 도면,
도 7은 본 개시의 일 실시 예에 따른 음성 합성 방법을 적용한 구체적인 실시 예를 도시한 도면,
도 8 및 도 9는 TTS 모듈의 트레이닝 동작의 다양한 실시 예를 설명하기 위한 도면,
도 10 내지 도 12는 본 개시의 일 실시 예에 따라 텍스트 문장을 분할하는 방법을 설명하기 위한 도면,
도 13 및 도 14는 텍스트 문장에 따른 운율 정보의 차이를 설명하기 위한 도면,
도 15는 운율 정보를 반영하여 음성 합성을 수행한 경우 합성된 음성의 운율 차이를 설명하기 위한 도면,
도 16은 음성 합성 동안 추임새 음성을 출력하는 실시 예를 설명하기 위한 흐름도,
도 17은 텍스트 문장의 적어도 일부를 외부 서버에서 음성 합성하는 실시 예를 도시한 시퀀스도, 그리고,
도 18은 본 개시의 일부 동작이 서버에서 수행되는 실시 예를 도시한 시퀀스도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 발명된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특성, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특성들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시의 실시 예에서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
이하에서는 도면을 참조하여 본 발명에 대해 더욱 상세히 설명하기로 한다.
도 1은 본 개시의 일 실시 예에 따른 인공 지능 대화 시스템의 일 실시 예를 도시한 도면이다.
도 1을 참조하면, 인공 지능 대화 시스템(1000)은 사용자(10)로부터 사용자 명령을 입력받고, 사용자(10)에게 응답을 제공하는 전자 장치(100)를 포함할 수 있다. 이때, 전자 장치(100)는 도 1에 도시된 바와 같이, 사용자 음성을 통해 사용자 문의를 입력받을 수 있으나, 이는 일 실시 예에 불과할 뿐, 터치 입력, 키보드 입력 등과 같은 다양한 입력 방식을 통해 사용자 문의를 입력받을 수도 있다.
그리고, 전자 장치(100)는 사용자에게 음성 형태의 응답을 제공할 수 있다. 이때, 응답은 전자책과 같은 기저장된 텍스트에 기초한 것일 수도 있고, 사용자 문의를 음성 인식하여 사용자 의도에 대응되도록 생성된 텍스트에 기초한 것일 수도 있다. 이때, 실시 예에 따라 전자 장치(100)와 데이터를 송수신하며, 데이터 처리를 수행하는 서버(200)를 포함할 수 있다. 예를 들어, 서버(200)는 전자 장치(100)로부터 데이터를 수신하여 음성 합성을 수행하고, 합성된 음성을 전자 장치(100)가 출력하도록 전자 장치(100)에 전송할 수 있다. 이때, 데이터 처리를 수행하는 서버(200)는 하나 이상일 수 있다.
도 1에서는 일부 데이터 처리 동작을 서버(200)에서 수행하는 것으로 도시 및 설명하였으나, 또 다른 실시 예로, 대화 시스템(1000)의 데이터 처리 동작이 전자 장치(100)에서만 수행될 수도 있다.
한편, 도 1에서는 전자 장치(100)가 인공지능 스피커인 것으로 도시되었으나, 이에 한정되지 않으며, 스마트폰, 데스크탑 PC, 랩탑 PC. 넷북 컴퓨터, 서버, PDA, PMP, 의료기기, 카메라, TV, 냉장고, 에어컨, 청소기, 오븐, 세탁기, 공기 청정기, 셋톱 박스, 홈 오토메이션 컨트롤 패널, 보안 컨트롤 패널, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM)), 키오스크, 웨어러블 장치(시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD), 의류, 스킨 패드) 등으로 구현될 수도 있다. 한편, 실시 예에 따라, 전자 장치(100)는 단말 장치와 연결된 서버일 수도 있다.
전자 장치(100)는 사용자 문의를 입력받기 이전에 인공지능 에이전트 프로그램을 활성화하기 위한 트리거 단어를 포함하는 사용자 음성을 입력받을 수 있다. 예로, 전자 장치(100)는 사용자 문의를 입력받기 이전에 "하이 빅스비"와 같은 트리거 단어를 포함하는 사용자 음성을 입력받을 수 있다. 트리거 단어를 포함하는 사용자 음성이 입력되면, 전자 장치(100)는 인공지능 에이전트 프로그램을 실행 또는 활성화시키고, 사용자 문의의 입력을 대기할 수 있다. 인공지능 에이전트 프로그램은 사용자 문의 및 응답을 자연어로 처리할 수 있는 대화 시스템을 포함할 수 있다.
일 실시 예로, 전자 장치(100)는 사용자(10)로부터 "안녕하세요"라는 사용자 음성을 수신할 수 있다. 이때, 전자 장치(100)는 사용자 음성의 의도를 분석하여 사용자 음성에 대응되는 응답 텍스트로 포함하는 응답 음성에 대한 정보를 획득할 수 있다. 이때, 전자 장치(100)는 구비된 센서 및 카메라를 통해 획득된 정보를 더 이용하여 사용자 음성에 대한 응답을 획득할 수 있다.
한편, 전자 장치(100)는 응답 음성에 대한 정보를 TTS(text to speech) 모듈에 입력하여 응답 음성 신호를 획득하고, 획득된 응답 음성 신호를 스피커를 통해 출력할 수 있다. 이때, 사용자 발화된 시점으로부터 기설정된 시간을 초과하여도 응답 음성이 출력되지 않으면, 사용자(10)는 전자 장치(100)와의 대화가 부자연스럽다고 느끼게 된다.
본 개시에 따르면, 전자 장치(100)는 응답 음성 신호에 대한 텍스트 문장을 복수의 문장 구성 요소로 분할하고, 각 문장 구성 요소를 음성 합성하는데 전체 텍스트 문장의 운율 정보를 반영함으로써, 제한 시간 내에 응답 음성의 출력이 개시되고, 출력되는 음성에 이질감이 없는 자연스러운 대화 시스템을 구현할 수 있다. 구체적인 음성 합성 동작에 대해서는 이하 도 2 내지 도 18를 참조하여 자세히 설명하기로 한다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 간략한 구성을 설명하기 위한 블럭도이다.
도 2를 참조하면, 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함한다.
메모리(110)는 전자 장치(100)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 구체적으로, 메모리(110)에는 적어도 하나의 명령어가 저장될 수 있다. 프로세서(120)는 메모리(110)에 저장된 명령어를 실행함으로써 상술한 동작을 수행할 수 있다. 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 개시에서 메모리라는 용어는 메모리(110), 프로세서(120) 내 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다. 또한, 메모리(110)에는 디스플레이의 디스플레이 영역에 표시될 각종 화면을 구성하기 위한 프로그램 및 데이터 등이 저장될 수 있다.
또한, 메모리(110)는 대화 시스템을 동작하기 위한 인공지능 모델을 저장할 수 있다. 구체적으로, 전자 장치(100)는 사용자 발화에 대한 응답으로 자연어를 생성하기 위하여 인공지능 에이전트(Artificial intelligence agent)를 이용할 수 있다. 이때, 인공지능 에이전트는 AI(Artificial Intelligence) 기반의 서비스(예를 들어, 음성 인식 서비스, 비서 서비스, 번역 서비스, 검색 서비스 등)를 제공하기 위한 전용 프로그램이다. 특히, 인공지능 모델은 기존의 범용 프로세서(예를 들어, CPU) 또는 별도의 AI 전용 프로세서(예를 들어, GPU 등)에 의해 실행될 수 있다.
프로세서(120)는 메모리(110)와 전기적으로 연결되어 전자 장치(100)의 동작을 전반적으로 제어할 수 있다. 구체적으로, 프로세서(120)는 메모리(110)에 저장된 적어도 하나의 명령어를 실행하여 전자 장치(100)를 제어할 수 있다.
일 실시 예에 따라 프로세서(120)는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(120)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.
본 개시의 전자 장치(100)의 프로세서(120)는 텍스트 문장을 음성으로 합성하여 출력할 수 있다. 여기서, 텍스트 문장이란 음성으로 출력될 문장의 텍스트 정보를 의미하는 것이다. 이때, 텍스트 문장은 전자 책과 같이 메모리(110)에 저장된 텍스트 문장이거나, 외부 장치로부터 수신된 것이거나, 수신된 사용자 음성에 대응되는 응답으로써 획득된 것일 수 있다.
사용자 음성에 대응되는 텍스트 문장을 생성하는 경우, 전자 장치(100)는 통신부(도 3의 130)를 통해 외부 장치로부터 사용자 음성을 수신할 수도 있고, 구비된 마이크(미도시)에 의해 사용자 음성을 직접 입력받을 수도 있다. 이하에서는 대화 시스템에서 사용되는 모듈을 기능별로 구분하여 복수의 모듈로 기재하는데, 여러 모듈이 하나의 모듈로 구현될 수 있으며, 이러한 모듈은 소프트웨어 형태이거나, 하나 이상의 칩 형태로 구현될 수도 있다.
구체적으로, 프로세서(120)는 음성 인식 모듈 중 하나인 자동 음성 인식(automatic speech recognition)(ASR) 모듈을 이용하여 수신된 사용자 음성을 텍스트로 변환할 수 있다.
자동 음성 인식(automatic speech recognition)(ASR) 모듈은, 입력된 사용자 음성(특히, 사용자 문의)을 텍스트 데이터로 변환할 수 있다. 예를 들어, 자동 음성 인식 모듈은 발화 인식 모듈을 포함할 수 있다. 상기 발화 인식 모듈은 음향(acoustic) 모델 및 언어(language) 모델을 포함할 수 있다. 예를 들어, 음향 모델은 발성에 관련된 정보를 포함할 수 있고, 언어 모델은 단위 음소 정보 및 단위 음소 정보의 조합에 대한 정보를 포함할 수 있다. 발화 인식 모듈은 발성에 관련된 정보 및 단위 음소 정보에 대한 정보를 이용하여 사용자 발화를 텍스트 데이터로 변환할 수 있다. 음향 모델 및 언어 모델에 대한 정보는, 예를 들어, 자동 음성 인식 데이터베이스(automatic speech recognition database)(ASR DB)에 저장될 수 있다.
그리고, 프로세서(120)는 변환된 텍스트의 의도를 분석하여 사용자 음성에 응답하는 응답 음성에 대한 정보를 획득할 수 있다. 이때, 프로세서(120)는 자연어 처리(natural language processing)(NLP) 모듈을 이용하여 텍스트의 의도 분석 및 이에 대응되는 응답 정보를 획득할 수 있다. 이때, 자연어 처리 모듈은 자연어 이해(natural language understanding)(NLU) 모듈, 대화 매니저(dialogue manager)(DM) 모듈, 자연어 생성(natural language generator)(NLG) 모듈 등을 포함할 수 있다.
여기서, 자연어 이해 모듈은 문법적 분석(syntactic analyze) 또는 의미적 분석(semantic analyze)을 수행하여 사용자 의도를 파악할 수 있다. 문법적 분석은 사용자 입력을 문법적 단위(예: 단어, 구, 형태소 등)로 나누고, 나누어진 단위가 어떤 문법적인 요소를 갖는지 파악할 수 있다. 의미적 분석은 의미(semantic) 매칭, 룰(rule) 매칭, 포뮬러(formula) 매칭 등을 이용하여 수행할 수 있다. 이에 따라, 자연어 이해 모듈은 사용자 입력이 어느 도메인(domain), 의도(intent) 또는 의도를 표현하는데 필요한 파라미터(parameter)(또는, 슬롯(slot))를 얻을 수 있다.
자연어 이해 모듈은 도메인(domain), 의도(intend) 및 의도를 파악하는데 필요한 파라미터(parameter)(또는, 슬롯(slot))로 나누어진 매칭 규칙을 이용하여 사용자의 의도 및 파라미터를 결정할 수 있다. 예를 들어, 상기 하나의 도메인(예: 알람)은 복수의 의도(예: 알람 설정, 알람 해제 등)를 포함할 수 있고, 하나의 의도는 복수의 파라미터(예: 시간, 반복 횟수, 알람음 등)을 포함할 수 있다. 복수의 룰은, 예를 들어, 하나 이상의 필수 요소 파라미터를 포함할 수 있다. 매칭 규칙은 자연어 인식 데이터베이스(natural language understanding database)(NLU DB)에 저장될 수 있다.
자연어 이해 모듈은 형태소, 구 등의 언어적 특성(예: 문법적 요소)을 이용하여 사용자 입력으로부터 추출된 단어의 의미를 파악하고, 파악된 단어의 의미를 도메인 및 의도에 매칭시켜 사용자의 의도를 결정할 수 있다. 예를 들어, 자연어 이해 모듈은 각각의 도메인 및 의도에 사용자 입력에서 추출된 단어가 얼마나 포함되어 있는 지를 계산하여 사용자 의도를 결정할 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈은 의도를 파악하는데 기초가 된 단어를 이용하여 사용자 입력의 파라미터를 결정할 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈은 사용자 입력의 의도를 파악하기 위한 언어적 특성이 저장된 자연어 인식 데이터베이스를 이용하여 사용자의 의도를 결정할 수 있다.
대화 매니저 모듈은 자연어 이해 모듈에 의해 파악된 사용자의 의도가 명확한지 여부를 판단할 수 있다. 예를 들어, 대화 매니저 모듈은 파라미터의 정보가 충분하지 여부에 기초하여 사용자의 의도가 명확한지 여부를 판단할 수 있다. 대화 매니저 모듈는 자연어 이해 모듈에서 파악된 파라미터가 태스크를 수행하는데 충분한지 여부를 판단할 수 있다. 일 실시 예에 따르면, 대화 매니저 모듈는 사용자의 의도가 명확하지 않은 경우 사용자에게 필요한 정보를 요청하는 피드백을 수행할 수 있다. 예를 들어, 대화 매니저 모듈는 사용자의 의도를 파악하기 위한 파라미터에 대한 정보를 요청하는 피드백을 수행할 수 있다. 또한, 대화 매니저 모듈은 자연어 이해 모듈에 의해 변경된 텍스트를 포함하는 사용자 문의를 확인하기 위한 메시지를 생성하여 출력할 수 있다.
일 실시 예에 따르면, 대화 매니저 모듈은 컨텐츠 제공(content provider) 모듈을 포함할 수 있다. 컨텐츠 제공 모듈은 자연어 이해 모듈에서 파악된 의도 및 파라미터에 기초하여 동작을 수행할 수 있는 경우, 사용자 입력에 대응되는 태스크를 수행한 결과를 생성할 수 있다.
다른 실시 예에 따르면, 대화 매니저 모듈은 지식 데이터베이스를 이용하여 사용자 문의에 대한 응답을 제공할 수 있다. 이때, 지식 데이터베이스는 전자 장치(100) 내에 포함될 수 있으나, 이는 일 실시 예에 불과할 뿐, 외부 서버에 포함될 수 있다. 구체적으로, 대화 매니저 모듈은 분석된 사용자 음성의 의도에 기초하여 사용자 음성에 응답하는 응답 음성에 대한 정보를 획득할 수 있다. 여기서, 응답 음성에 대한 정보는 응답 내용의 텍스트 정보 및 응답 내용에 대응되는 감정 정보를 포함할 수 있다. 여기서, 감정 정보는 보이스 톤 정보, 스타일 정보 및 운율 정보 등을 포함할 수 있다.
자연어 생성 모듈(NLG 모듈)은 지정된 정보를 텍스트 형태로 변경할 수 있다. 상기 텍스트 형태로 변경된 정보는 자연어 발화의 형태일 수 있다. 상기 지정된 정보는, 예를 들어, 추가 입력에 대한 정보, 사용자 입력에 대응되는 동작의 완료를 안내하는 정보 또는 사용자의 추가 입력을 안내하는 정보(예: 사용자 입력에 대한 피드백 정보)일 수 있다. 상기 텍스트 형태로 변경된 정보는 텍스트 음성 변환 모듈(TTS 모듈)에 의해 음성 형태로 변환될 수 있다.
텍스트 음성 변환 모듈(TTS 모듈)은 응답 음성에 대한 정보에 포함된 텍스트 형태의 정보를 음성 형태의 정보인 응답 음성 신호로 변환할 수 있다. TTS 모듈은 자연어 생성 모듈로부터 텍스트 형태의 정보를 수신하고, 텍스트 형태의 정보를 음성 형태의 정보로 변환하여 출력할 수 있다. 이때, TTS 모듈은 DNN(Deep Neural Network) 기반 TTS(Text to Speech)모듈일 수 있다. DNN 기반 TTS 모듈의 음성 합성 동작은 이하 도 6에서 보다 자세히 설명하기로 한다.
한편, 프로세서(120)는 텍스트 문장이 입력되면, 텍스트 문장의 운율 정보(prosody information)를 획득할 수 있다. 구체적으로, 프로세서(120)는 텍스트 문장의 구문을 분석하여 텍스트 문장 전체의 운율 정보를 획득할 수 있다. 이때, 운율 정보는 텍스트 문장 전체의 음운 정보, 억양 정보 및 강세 정보 등을 포함할 수 있다.
여기서, 운율 정보란 음성 중에서 발화 내용을 나타내는 음운(phoneme) 정보 이외의 억양(intonation)이나 강세(accent) 정보를 포함하며, 운율 정보에 의해 소리의 크기(에너지), 소리의 높이(주파수), 소리의 길이(지속 시간) 등이 제어될 수 있다.
여기서, 음운 정보는 단어의 뜻을 구별해 주는 소리의 가장 작은 단위를 의미하는 것으로, 예를 들어, 모음과 자음일 수 있다. 이때, 프로세서(120)는 자음 접변(consonantal entent), 구개음화(palatalization) 등 일반적인 음운 현상을 반영하기 위한 발음 규칙 정보를 이용할 수 있다.
억양 정보는 소리의 선율 곡선, 소리의 높이 변화 정보를 포함할 수 있다. 그리고, 억양 정보는 억양이 정의되는 문장 구성 요소의 종류에 따라 음절 억양, 단어 억양, 문장 억양 등으로 구분될 수 있다. 이때, 억양 정보는 발음을 할 때의 단순한 전달 내용 이외에, 추가적인 여러 정보를 전달하는 데 쓰일 수 있다.
소리의 높낮이인 억양 정보에 기초하여 음성의 의미가 구별될 수 있다. 예를 들어, 문장의 끝(end)이 올라가면 의문문, 문장의 끝이 내려가면 평서문, 평탄조이면 명령문이 되거나, 문장 뒤에 다른 어휘가 있는 것으로 구별될 수 있다.
강세 정보는 연속된 음성에서 강하게 발음하는 부분에 대한 정보로, 문장 구성 요소의 종류에 따라 문장에 있어서의 강세를 문장 강세, 단어에 있어서의 강세를 어강세, 음절에 있어서의 강세를 음절 강세 등으로 구분될 수 있다. 강세 정보는 국가 별 언어에 따라 동일한 문장도 다른 강세를 가질 수 있다.
그리고, 강세 정보는 생리적 요인에 의해 생기는 강세와 심리적 요인에 의해 생기는 강세를 포함한다.
예를 들어, 장모음 음절에 강세가 오게 되는 것, 비음(nasal)을 종성(final sound)으로 가지는 음절 및 경음(fortis), 격음(aspiration)을 초성(initial sound)으로 가지는 음절에 강세가 오게 되는 것은 생리적인 이유에 의한 것이다.
한편, 심리적인 강세는 감정 표현의 효과를 위한 것으로, 개념이 중심이 되는 말, 문장에 새로이 등장하는 말, 또는 앞뒤 문장에 쓰인 말과 대립되는 말에 강세가 오는 경우 등이 이에 속한다. 이 외에 어법적인 것으로 흔히 명령, 금지 등은 강세로써 표현되며, 의문, 추측 등은 약세로써 표현될 수 있다.
한편, 상술한 바와 같이 소리에 대한 다양한 정보를 포함하는 운율 정보는 텍스트 문장의 형식, 통사적 구조(syntactic structure) 및 문맥(context) 중 적어도 하나에 기초하여 획득될 수 있다.
여기서, 텍스트 문장의 형식이라 함은 문장의 의도에 따라 구분될 수 있으며, 문장의 내용, 문장 부호 등에 의해 구분될 수 있다. 예를 들어, 텍스트 문장은 평서문, 의문문, 명령문, 청유문, 감탄문, 긍정문, 부정문 등 다양한 형식 중 적어도 하나의 형식을 가질 수 있다. 이때, 문장 부호는 마침표, 쉼표, 느낌표, 물음표 등일 수 있다.
한편, 통사적 구조라 함은 단어가 결합하여 형성되는 구, 절, 문장의 구조나 기능을 의미하는 것으로, 단어의 순서를 결정하는데 사용되는 것일 수 있다. 이때, 통사적 틀에는 단어가 하나씩 들어가는 슬롯(slot) 또는 자리 맞추개(placeholder) 등이 있다. 예를 들어, 하나의 텍스트 문장에는 복수의 슬롯이 있는데, 각 단어는 해당 언어의 통사적 규칙에 따라 슬롯에 배치될 수 있다. 즉, 통사적 구조는 문법에 따른 단어의 배치 구조를 의미할 수 있다.
문맥이라 함은, 주어진 언어 표현이 나타나는 부분과 연관이 되는 언어적인 맥락 또는 환경을 의미하는 것이다. 언어 표현은 흔히 중의성을 지니게 되어 문맥을 떠나서는 어떤 뜻으로 썼는지 알 수 없는 경우가 있다. 언어 내적인 맥락, 즉 문맥이나 언어 외적인 맥락, 즉 발화 상황이 중의성을 해소하는 데 중요한 구실을 할 수 있다. 일 실시 예로, 문맥 정보는 GST(global style token)와 같이 언어적 정보 외에 TTS로 전달되는 메타 데이터 형태일 수 있다.
한편, 프로세서(120)는 텍스트 문장의 의도 및 문맥 정보 등에 기초하여 텍스트 문장에 대응되는 감정 정보를 획득할 수 있다.
상술한 바와 같이, 프로세서(120)는 텍스트 문장의 형식, 통사적 구조, 문맥 정보에 기초하여, 발화될 음성의 음운 정보, 억양 정보, 강세 정보를 포함하는 운율 정보를 획득할 수 있다. 이때, 프로세서(120)는 텍스트 문장에 대응되는 감정 정보를 더 이용하여 운율 정보를 획득할 수도 있다.
운율 정보에 따라 음성을 합성하는 경우, 동일한 텍스트이더라도 운율이 다를 수 있다. 이에 대해서는 이하 도 13 내지 도 15를 참조하여 자세히 설명하기로 한다.
그리고, 프로세서(120)는 텍스트 문장을 복수의 문장 구성 요소(sentence element)로 분할할 수 있다. 여기서 문장 구성 요소라 함은 문장을 기설정된 기준에 기초하여 분할하여 획득된, 분할된 문장을 의미한다.
그리고, 프로세서(120)는 분할된 복수의 문장 구성 요소를 TTS 모듈에 입력하여 복수의 문장 구성 요소 각각에 대한 음성을 병렬적으로 획득할 수 있다. 여기서, 음성을 병렬적으로 획득한다는 것은 복수의 문장 구성 요소에 대한 음성 합성 동작의 적어도 일부가 동시에 수행되는 것을 의미할 수 있다.
이때, 프로세서(120)는 획득된 운율 정보를 TTS 모듈에 더 입력하여, 복수의 문장 구성 요소 각각에 운율 정보가 반영된 음성을 획득할 수 있다.
구체적으로, 프로세서(120)는 텍스트 문장을 분할한 복수의 문장 구성 요소를 병렬적으로 음성으로 합성하는데 걸리는 시간에 기초하여 문장 구성 요소의 길이를 결정할 수 있다. 예를 들어, 텍스트 문장을 분할한 복수의 문장 구성 요소를 병렬적으로 음성으로 합성하는데 기설정된 시간 이상의 시간이 소요되면, 프로세서(120)는 분할된 문장 구성 요소를 재분할할 수 있다.
예를 들어, 프로세서(120)는 텍스트 문장을 제1 기준으로 분할하여 복수의 문장 구성 요소를 획득하고, 획득된 복수의 문장 구성 요소가 음성으로 변환되는데 걸리는 시간이 기설정된 시간 미만이면, 복수의 제1 문장 구성 요소를 TTS 모듈에 입력할 수 있다.
한편, 복수의 문장 구성 요소 중 적어도 하나가 음성으로 변환되는데 걸리는 시간이 기설정된 시간 이상이면, 음성으로 변환되는데 걸리는 시간이 기설정된 시간 이상인 적어도 하나의 문장 구성 요소를 제2 기준으로 분할하여 길이가 더 짧은 복수의 문장 구성 요소를 획득할 수 있다.
이때, 제2 기준으로 분할하여 획득된 복수의 문장 구성 요소를 음성으로 변환하는데 걸리는 시간이 기설정된 시간 미만이면, 프로세서(120)는 제1 기준에 기초하여 획득된 복수의 문장 구성 요소 중 제2 기준이 적용되지 않은 나머지 문장 구성 요소 및 제2 기준을 적용하여 획득된 복수의 문장 구성 요소를 TTS 모듈에 입력할 수 있다. 이 경우, TTS 모듈에 입력되는 문장 구성 요소는 모두 음성을 합성하는데 걸리는 시간이 기설정된 시간 미만이게 된다.
만약, 제2 기준에 기초하여 획득된 복수의 문장 구성 요소 중 적어도 하나가 음성으로 합성되는데 걸리는 시간이 기설정된 시간 이상이면, 프로세서(120)는 음성으로 합성되는데 걸리는 시간이 기설정된 시간 이상인 적어도 하나의 문장 구성 요소를 제3 기준으로 분할하여 길이가 더 짧은 복수의 문장 구성 요소를 획득할 수 있다.
예를 들어, 제1 기준이 문장 부호(punctuation marks) 기준이면, 제2 기준은 절(clause) 기준이며, 제3 기준은 구(phrase) 기준일 수 있다. 한편, 실시 예에 따라 제1 기준이 절 기준이면, 제2 기준은 구 기준일 수 있다. 한편, 문장 구성 요소를 분할하는데 적용되는 기준은 이에 한정되지 않고, 만약 구 기준으로 획득된 문장 구성 요소를 음성으로 합성하는데 걸리는 시간이 기설정된 시간 이상이면, 단어, 띄어쓰기 등 다양한 기준으로 더 분할될 수도 있다.
이때, 프로세서(120)는 복수의 문장 구성 요소 각각에 인덱스 정보를 포함할 수 있다. 여기서, 인덱스 정보는 텍스트 문장 내에서의 문장 구성 요소의 순서를 나타내는 것일 수 있다. 구체적으로, 인덱스 정보는 문장 구성 요소에 대한 데이터에 메타 데이터 형태로 포함될 수 있다. 한편, 텍스트 문장을 분할하는 동작은 이하 도 12 내지 14를 참조하여 자세히 설명하기로 한다.
그리고, 프로세서(120)는 병렬적으로 획득된 복수의 문장 구성 요소에 대한 음성을 병합(merging)하여 텍스트 문장에 대한 음성을 획득할 수 있다. 구체적으로, 프로세서(120)는 복수의 문장 구성 요소 각각에 포함된 인덱스 정보를 바탕으로 복수의 문장 구성 요소를 병합하여 텍스트 문장 전체에 대한 음성을 획득할 수 있다.
상술한 바와 같이, 텍스트 문장을 분할하여 병렬적으로 음성 합성함으로써, 음성 합성에 소요되는 시간을 줄일 수 있게 된다. 또한, 병렬적인 음성 합성 과정에서 텍스트 문장 전체의 운율 정보를 각각 반영하여 음성을 합성함으로써, 분할된 문장의 음성을 병합하여 제공할 때에도 음성의 스타일이 전체적으로 유사하게 되어 음성 간 운율의 이질감을 감소시킬 수 있다. 이로 인해 빠른 응답이 가능하면서도, 이질감 없는 음성을 출력하여 자연스러운 인공 지능 대화 시스템을 구현할 수 있게 된다.
도 3은 도 2에 개시된 전자 장치의 구체적인 구성을 설명하기 위한 블럭도이다.
도 3을 참조하면, 전자 장치(100)는 메모리(110), 프로세서(120), 통신부(130) 및 스피커(140)를 포함할 수 있다.
여기서, 메모리(110) 및 프로세서(120)의 일부 구성은 도 2에 도시된 구성과 동일한 바, 중복된 기재는 생략한다.
메모리(110)에는 복수의 추임새 음성이 더 저장될 수 있다. 이때, 추임새 음성은 합성된 음성이 스피커(140)를 통해 출력되기 전에 출력되는 음성으로, 음성 합성에 소요되는 시간 동안 음성 출력이 지연되면서 사용자가 대화의 부자연스러움을 느끼는 것을 방지하기 위한 것이다. 예를 들어, '음~', '어~', '음..그게 말이야' 등 다양한 길이 및 다양한 뉘앙스를 갖는 추임새 음성들이 메모리(110)에 저장될 수 있다.
메모리(110)에 저장된 추임새 음성은 녹음된 음성일 수도 있고, TTS 모듈에 의하여 생성된 합성음일 수 도 있으며, 캐싱(caching)방법 등에 의하여 이전에 재생된 음성 신호를 재사용 하는 경우일 수도 있다.
프로세서(120)는 음성 합성에 소요되는 시간을 고려하여 복수의 추임새 음성 중 하나를 식별하여 출력할 수 있다. 예를 들어, 음성 합성에 소요되는 시간이 길어지는 경우, 프로세서(120)는 복수의 추임새 음성 중 길이가 긴 추임새 음성을 출력할 수 있다. 이때, 프로세서(120)는 텍스트 문장의 의도를 더 고려하여 추임새 음성을 선택할 수 있다.
다른 실시 예로, 프로세서(120)는 텍스트 문장의 언어 종류(예로, 한글, 영어 등)에 기초하여 추임새 음성을 선택할 수 있다.
또 다른 실시 예로, 프로세서(120)는 텍스트 문장에 대응되는 특징 정보에 기초하여 추임새 음성을 선택할 수도 있다. 이때, 텍스트 문장에 대응되는 특징 정보는, 감정 정보, 화자에 대한 정보(예로, 성별, 특정 인물 등) 등을 포함할 수 있다. 즉, 동일한 길이의 추임새 음성이더라도, 감정 정보 및 화자에 대한 정보에 기초하여 다른 추임새 음성이 선택될 수 있다.프로세서(120)는 식별된 추임새 음성의 출력을 완료한 후, 텍스트 문장을 합성한 음성을 출력할 수 있다.
한편, 이상에서는 추임새 음성이 메모리(110)에 저장된 실시 예만 기재하였으나, 실제 구현시에는 메모리(110)에 복수의 추임새 텍스트만이 저장되어 있고, 프로세서(120)에 의해 음성 합성될 텍스트 문장에 따라 추임새 텍스트를 선택하고, 선택된 추임새 텍스트로 추임새 음성을 합성하여 스피커(140)를 통해 출력하는 형태로 구현될 수도 있다.
통신부(130)는 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 장치와 통신을 수행하는 구성이다. 여기서, 전자 장치(100)와 통신하는 외부 장치는 서버 또는 사용자 단말 장치 등일 수 있다.
통신부(130)가 외부 장치와 통신 연결되는 것은 제3 기기(예로, 중계기, 허브, 엑세스 포인트, 서버 또는 게이트웨이 등)를 거쳐서 통신하는 것을 포함할 수 있다. 무선 통신은, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 일 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(Magnetic Secure Transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 무선 통신 또는 유선 통신이 수행되는 네트워크는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.
프로세서(120)는 텍스트 문장에 대해 획득된 음성 정보를 외부 장치에 전송하여 외부 장치가 외부 장치에 구비된 스피커를 통해 출력하게 할 수 있다.
한편, 프로세서(120)는 텍스트 문장을 분할하여 획득된 복수의 문장 구성 요소 중 일부의 문장 구성 요소를 제외한 나머지 문장 구성 요소를 통신부(130)를 통해 외부 장치로 전송할 수 있다. 여기서, 외부 장치는 음성 합성을 위한 외부 서버, 외부 단말 장치 등일 수 있다. 이때, 프로세서(120)는 문장 구성 요소와 함께 텍스트 문장의 운율 정보를 함께 전송하여 외부 서버에서 운율 정보를 각각 반영하여 음성 합성을 수행하도록 할 수 있다.
이 경우, 프로세서(120)는 복수의 문장 구성 요소 중 일부의 문장 구성 요소에 운율 정보를 반영하여 일부의 문장 구성 요소에 대한 음성을 병렬적으로 획득할 수 있다.
그리고, 프로세서(120)는 외부 장치로부터 전송된 문장 구성 요소에 대한 음성을 획득할 수 있다. 그리고, 프로세서(120)는 병렬적으로 획득된 음성 및 수신된 음성을 스피커(140)를 통해 출력할 수 있다. 이때, 프로세서(120)는 병렬적으로 획득된 음성 및 수신된 음성을 인덱스 정보에 기초하여 병합하고, 병합된 음성을 스피커(140)를 통해 출력할 수 있다.
한편, 프로세서(120)는 복수의 문장 구성 요소를 병렬적으로 음성 합성하는데 걸리는 시간이 기설정된 시간 미만이도록 텍스트 문장을 복수의 문장 구성 요소로 분할한 후, 분할된 복수의 문장 구성 요소 일부를 외부 장치로 전송할 수 있으나, 전자 장치(100)에서 음성 합성을 수행할 텍스트 문장의 일부를 제외한 나머지는 분할하지 않고 외부 장치로 전송할 수도 있다. 이 경우, 외부 장치가 수신된 텍스트 문장의 나머지 일부를 분할하여 복수의 문장 구성 요소를 획득할 수도 있다.
이때, 전자 장치(100)에서 음성 합성되는 텍스트 문장의 일부는, 텍스트 문장의 서두 부분(beginning part)일 수 있다. 이 경우, 프로세서(120)는 일부의 문장 구성 요소에 대해 획득된 음성을 스피커(140)를 통해 출력한 후, 외부 장치로부터 수신된 음성을 스피커(140)를 통해 출력할 수 있다. 이때, 외부 장치에서 합성된 음성은 프로세서(120)에 의해 획득된 음성이 출력되기 전 또는 출력되는 동안 수신될 수 있다.
한편, 텍스트 문장의 뒷부분이 외부 장치에서 음성 합성되는 경우에도, 프로세서(120)는 복수의 문장 구성 요소의 일부를 음성 합성하는 동안 추임새 음성을 출력할 수도 있다. 이때, 출력되는 추임새 음성은, 메모리(110)에 기저장된 것이거나, TTS 모듈에 의해 합성된 것일 수 있으며, 외부 장치로부터 수신된 것일 수 있다.
추임새 음성이 외부 장치로부터 수신된 경우, 외부 장치는 전자 장치(100)와 공유된 텍스트 문장에 대한 정보(언어, 화자, 감정 등)에 기초하여 추임새 음성을 선택한 것일 수 있다. 또한, 외부 장치는 추정된 합성 시간을 기반으로 특정한 음성의 길이를 갖는 추임새 음성을 선택할 수 있다.
이때, 외부 장치와 전자 장치(100)는 JSON 포맷을 이용하여 정보를 공유할 수 있으며, 공유되는 정보는 사용자 음성을 입력받은 전자 장치(100)에서 획득된 것일 수도 있고, 전자 장치(100)로부터 음성 신호를 수신한 외부 장치에서 획득된 것일 수도 있다.상술한 바와 같이, 텍스트 문장의 일부가 외부 장치에서 음성 합성되는 실시 예는 이하 도 17을 참조하여 보다 자세히 설명하기로 한다.
스피커(140)는 오디오 처리부에 의해 디코딩이나 증폭, 노이즈 필터링과 같은 다양한 처리 작업이 수행된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지를 출력하는 구성이다. 특히, 스피커(140)는 사용자 문의에 대한 응답 음성 신호를 출력할 수 있다. 구체적으로, 스피커(140)는 사용자 문의에 대한 응답을 자연어 형태의 음성 메시지로 출력할 수 있다. 한편, 오디오를 출력하기 위한 구성은 스피커로 구현될 수 있으나, 이는 일 실시 예에 불과할 뿐, 오디오 데이터를 출력할 수 있는 출력 단자로 구현될 수 있다.
한편, 이상에서는 전자 장치(100)에 구비된 스피커(140)를 통해여 합성된 음성을 출력하는 것으로 도시하였으나, 실제 구현시에는 합성된 음성 신호를 통신부(130)를 통해 외부 장치에 전송하고, 외부 장치가 구비된 스피커를 통해 합성된 음성을 출력하도록 할 수 있다.
한편, 도 3에는 도시되지 않았지만, 실시 예에 따라 전자 장치(100)는 마이크, 디스플레이, 카메라, 외부 단자와 연결하기 위한 다양한 외부 입력 포트, 다양한 센서 등을 더 포함할 수 있음은 물론이다.
도 4 및 도 5는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 도면이다.
도 4를 참조하면, 전자 장치는 텍스트 문장이 입력되면, 텍스트 문장의 운율 정보(prosody information)를 획득할 수 있다(S410). 이때, 운율 정보는 텍스트 문장 전체의 음운 정보, 억양 정보 및 강세 정보를 포함하는 것이며, 문장의 형식, 통사적 구조 및 문맥 중 적어도 하나에 기초한 것일 수 있다.
구체적으로, 도 5에 도시된 바와 같이, 음성으로 출력될 문장의 텍스트 정보인 텍스트 문장(510)이 입력되면, 전자 장치는 텍스트 문장(510) 전체의 운율 정보(520)를 획득할 수 있다.
그리고, 전자 장치는 텍스트 문장을 복수의 문장 구성 요소(sentence element)로 분할할 수 있다(S420). 구체적으로, 도 5에 도시된 바와 같이, 전자 장치는 텍스트 문장(510)을 n개의 문장 구성 요소(530)로 분할할 수 있다.
이때, 전자 장치는 문장 구성 요소가 음성으로 병합되는데 걸리는 시간이 기설정된 시간 미만이 되도록 텍스트 문장을 분할 수 있다. 구체적으로, 전자 장치는 기설정된 기준에 따라 텍스트 문장을 한번 이상 분할하여 기설정된 길이 미만의 문장 구성 요소를 획득할 수 있다. 이때, 분할이 2회 이상 수행되어야 하는 경우, 기설정된 기준은 문장 부호 기준, 절 기준, 구 기준, 단어 기준, 띄어쓰기 기준 순차적으로 적용될 수 있다. 이때, 전자 장치는 문장 구성 요소의 순서에 따라 인덱스 정보를 각 문장 구성 요소에 부여할 수 있다.
그리고, 전자 장치는 복수의 문장 구성 요소 및 텍스트 문장의 운율 정보를 TTS 모듈(111)에 입력하여 복수의 문장 구성 요소 각각에 운율 정보가 반영된 음성을 병렬적으로 획득할 수 있다(S430). 예를 들어, 전자 장치는 TTS 모듈(111)을 통해 문장 구성 요소 1에 운율 정보(520)를 반영하여 음성을 합성하여 문장 구성 요소 1에 대한 음성(540-1)을 획득할 수 있다. 그리고, 전자 장치는 TTS 모듈(111)을 통해 문장 구성 요소 2에 운율 정보(520)를 반영하여 음성을 합성하여 문장 구성 요소 2에 대한 음성(540-2)을 획득할 수 있다. 그리고, 전자 장치는 TTS 모듈(111)을 통해 문장 구성 요소 n에 운율 정보(520)를 반영하여 음성을 합성하여 문장 구성 요소 n에 대한 음성(540-n)을 획득할 수 있다.
구체적으로, TTS 모듈(111)은 TTS 모듈의 음성 합성 동작을 보다 구체적으로 설명하기 위한 도 6에 도시된 바와 같이 저장된 파라미터(650)를 이용하여 텍스트 전처리, 텍스트 인코더(Text Encoder), 오디오 디코더(Audio Decoder) 및 보코더(Vocoder)를 통해 텍스트 정보를 음성으로 합성할 수 있다. 여기서, 텍스트 전처리, 텍스트 인코더(Text Encoder), 오디오 디코더(Audio Decoder) 및 보코더(Vocoder)는 적어도 하나의 칩 또는 소프트웨어로 구현될 수 있다. 이때, 파라미터(650)는 학습된 것이며, 파라미터(650)를 학습하는 방법은 이하 도 8 및 도 9를 참조하여 자세히 설명하기로 한다.
한편, 설명의 편의를 위해 도 6에는 하나의 문장 구성 요소를 음성을 합성하는 단계만이 도시되었으나, 텍스트 문장을 분할한 복수의 문장 구성 요소에 각각 대해 S610 내지 S640 단계가 병렬적으로 수행될 수 있다. 즉, n개인 문장 구성 요소의 개수에 따라 n개의 음성 합성 프로세스가 병렬적으로 수행될 수 있다.
우선, TTS 모듈(111)에는 텍스트 문장 1을 분할하여 생성된 복수의 문장 구성 요소 1.1 내지 1.N 및 인덱스 정보가 입력될 수 있다. TTS 모듈(111)은 입력된 문장 구성 요소의 텍스트 정보에 대해 텍스트 전처리(S610)를 수행할 수 있다. 텍스트 전처리란, 텍스트 정보에 포함된 기호, 외국어 등 기설정된 언어 이외의 언어로 표시된 텍스트를 기설정된 언어로 변환하는 것을 의미할 수 있다. 예를 들어, 텍스트 정보에 '$'가 포함되면, '$'는 기설정된 언어인 'dollar'로 변환될 수 있다.
그리고, TTS 모듈(111)은 전처리된 텍스트를 텍스트 인코더를 통해 장치가 처리할 수 있는 코드로 변환할 수 있다(S620). 예를 들어, 텍스트 인코더는 텍스트 정보를 아스키 코드로 변환할 수 있다. 일 실시 예로, TTS 모듈(111)은 'dollar'를 아스키코드 '100 111 108 108 97 114'와 같이 변환할 수 있다. 한편, TTS 모듈(111)은 아스키 코드 이외에도 유니 코드, BCD 코드, EBCDIC 코드 등 다양한 표준 코드를 사용하여 텍스트를 변환할 수 있다.
그리고, TTS 모듈(111)은 변환된 코드를 오디오 디코더를 이용하여 스펙트럼으로 변환할 수 있다(S630). 여기서, 스펙트럼이란 주파수별 에너지 값의 분포를 의미하는 것으로, TTS 모듈(111)은 기저장된 데이터 베이스를 통해 코드를 스펙트럼으로 변환할 수 있다. 이때, TTS 모듈(111)은 텍스트 문장의 운율 정보(520)를 반영하여 코드를 스펙트럼으로 변환할 수 있다.
이와 같이 문장 구성 요소 각각에 텍스트 문장 전체의 운율 정보가 반영되어 음성 합성됨으로써, 복수의 문장 구성 요소에 대해 합성된 음성은 공통된 운율을 가질 수 있다. 또한, 텍스트 문장보다 길이가 짧은 복수의 문장 구성 요소를 동시에 음성 합성함으로써 음성 합성에 소요되는 시간을 줄일 수 있다.
그리고, TTS 모듈(111)은 보코더를 이용하여 스펙트럼을 사운드로 합성할 수 있다(S640). 즉, N 개의 문장 구성 요소에 대한 합성음 1.1 내지 1.N이 획득될 수 있다. 여기서, 도 6의 합성음 1.1 내지 1.N 도 5의 복수의 문장 구성 요소에 대한 음성(540-1, 540-2, ..., 540-n)과 대응될 수 있다.
그리고, 전자 장치는 병렬적으로 획득된 복수의 문장 구성 요소에 대한 음성(540-1, 540-2, ..., 540-n)을 병합하여 텍스트 문장에 대한 병합된 음성(550)을 획득할 수 있다(S440). 구체적으로, 전자 장치는 획득된 복수의 문장 구성 요소에 대한 음성(540-1, 540-2, ..., 540-n)을 인덱스 정보에 기초하여 병합하여 텍스트 문장 전체에 대한 병합된 음성(550)을 획득할 수 있다. 한편, 도 5에서는 TTS 모듈(111)에서 음성이 병합되는 것으로 도시하였으나, 실제 구현시에는 TTS 모듈(111)에서는 음성 합성만을 수행하고, 음성 병합 동작은 복수의 문장 구성 요소에 대한 음성(540-1, 540-2, ..., 540-n)을 순서대로 출력하는 동작으로 대체될 수도 있다.
도 7은 상술한 도 4 내지 도 6의 음성 합성 방법을 적용한 구체적인 실시 예를 도시한 도면이다.
도 7을 참조하면, 예를 들어 텍스트 문장(710)으로 '수많은 노력을 투입하여 다양한 시도를 적용하였기에 이러한 좋은 결과를 얻었습니다.'가 입력되면, 전자 장치는 텍스트 문장(710) 전체의 운율 정보(720)를 획득할 수 있다. 구체적으로, 전자 장치는 텍스트 문장(710)을 분석하여, 텍스트 문장(710)이 평서문이고, 긍정문인 문장 형식, 통사적 구조, 문맥 등을 이용하여 음운 정보, 강세 정보, 억양 정보를 포함하는 운율 정보를 획득할 수 있다.
그리고, 전자 장치는 텍스트 문장(710)을 복수의 문장 구성 요소(730)로 분할할 수 있다. 구체적으로, 전자 장치는 복수의 문장 구성 요소(730-1, 730-2, 730-3)를 병렬적으로 음성 합성하는데 걸리는 시간이 기설정된 시간 미만인 길이를 갖도록 텍스트 문장(710)을 분할할 수 있다. 예를 들어, 전자 장치는 텍스트 문장(710)인 '수많은 노력을 투입하여 다양한 시도를 적용하였기에 이러한 좋은 결과를 얻었습니다.'를 '수많은 노력을 투입하여'(730-1), '다양한 시도를 적용하였기에,'(730-2) 및 '이러한 좋은 결과를 얻었습니다.'(730-3)와 같이 3개의 문장 구성 요소로 분할할 수 있다. 이때, 전자 장치는 텍스트 문장(710)을 문장 부호를 기준으로 분할한 후에도 문장 구성 요소를 음성 합성하는데 소요되는 시간이 기설정된 시간을 초과되는 것으로 예측되면, 긴 문장 구성 요소를 절 기준으로 다시 분할할 수 있다. 이때, 전자 장치는 각 문장 구성 요소에 순서와 관련된 인덱스 정보를 부여할 수 있다. 한편, 구체적인 문장 분할 과정은 이하 도 10 내지 도 12를 참조하여 설명하기로 한다.
그리고, 전자 장치는 TTS 모듈(111)을 통해 복수의 문장 구성 요소(730-1, 730-2, 730-3) 각각에 운율 정보(720)를 반영하여 병렬적으로 음성 합성을 수행할 수 있다.
구체적으로, 전자 장치는 TTS 모듈(111)을 통해 문장 구성 요소 '수많은 노력을 투입하여'(730-1)에 운율 정보(720)를 반영하여 '수많은 노력을 투입하여'에 대한 음성(740-1)을 합성할 수 있다. 그리고, 전자 장치는 TTS 모듈(111)을 통해 문장 구성 요소 '다양한 시도를 적용하였기에,'(730-2)에 운율 정보(720)를 반영하여 '다양한 시도를 적용하였기에,'에 대한 음성(740-2)을 합성할 수 있다. 그리고, 전자 장치는 TTS 모듈(111)을 통해 문장 구성 요소 '이러한 좋은 결과를 얻었습니다.'(730-3)에 운율 정보(720)를 반영하여 '이러한 좋은 결과를 얻었습니다.'에 대한 음성(740-3)을 합성할 수 있다.
그리고, 전자 장치는 획득된 복수의 음성(740-1, 740-2, 740-3)을 병합하여, 텍스트 문장(710) 전체에 대한 음성(750)을 획득할 수 있다. 이때, 전자 장치는 각 문장 구성 요소에 포함된 인덱스 정보에 기초하여 복수의 음성(740-1, 740-2, 740-3)을 병합할 수 있다.
그리고, 전자 장치는 병합된 음성을 출력할 수 있다(760).
이와 같이 문장 구성 요소 각각에 텍스트 문장 전체의 운율 정보가 반영되어 음성 합성됨으로써, 복수의 문장 구성 요소에 대해 합성된 음성은 공통된 운율을 가질 수 있다. 또한, 텍스트 문장보다 길이가 짧은 복수의 문장 구성 요소를 동시에 음성 합성함으로써 음성 합성에 소요되는 시간을 줄일 수 있다.
도 8 및 도 9는 TTS 모듈의 파라미터 트레이닝 동작의 다양한 실시 예를 설명하기 위한 도면이다. 도 8 및 도 9에서는 복수의 문장 구성 요소가 병렬적으로 처리되는 과정은 굵은 화살표로 표시되었다. 한편, 파라미터(740)는 각 단계에 적용되는 적어도 하나의 파라미터를 포함할 수 있다.
도 8을 참조하면, 우선 전자 장치는 TTS 모듈의 파라미터(840)을 트레이닝하기 위한 텍스트 문장 1(810), 텍스트 문장 1에 대응되는 음성 1(820) 및 조건 1(830)을 입력받을 수 있다.
트레이닝시 운율 및 발화 스타일의 통일성을 부여하기 위하여 화자 별 학습이 진행될 수 있으며, 만일 복수의 화자 또는 다양한 발화 스타일을 동시에 학습하는 경우에는 화자 및 발화 스타일을 구분할 수 있는 추가적인 메타 데이터를 추가하여 학습을 진행하게 된다.
여기서, 조건 1(830)은 언어적 정보 외에 TTS 모듈에 전달되는 메타 데이터로, 텍스트 문장 1(810)에 대한 합성 음성에 운율을 더하기 위한 정보일 수 있다. 예를 들어, 조건 1(830)은 음성의 빠르기, 슬픔, 기쁨 또는 분노와 같은 감정 정보, 한국어 또는 영어와 같은 언어 정보, 지역 방언(dialect)과 같은 억양 정보 등을 포함할 수 있다.
전자 장치는 입력된 텍스트 문장 1(810), 음성 1(820) 및 조건 1(830)에 기초하여 텍스트 문장 1(810)의 운율 정보를 획득할 수 있다(S801). 구체적으로, 전자 장치는 인코더를 통해 텍스트 문장 1(810)을 장치가 처리할 수 있는 코드로 변환할 수 있다. 그리고, 전자 장치는 변환된 코드를 학습 모델에 입력하여 텍스트 문장 1(810) 전체의 운율 정보를 획득할 수 있다. 예를 들어, 학습 모델은 DNN일 수 있다. 그리고, 학습 모델은 복수의 화자 별 발화 스타일에 따라 다른 운율 정보가 획득되도록 학습된 것일 수 있다.
구체적으로, 전자 장치는 학습 모델을 통해 텍스트 문장 1(810)의 문장 형식, 구문 개수와 같은 수치적 특징, 통사적 구조, 문장 전체의 긍정 또는 부정, 감정 상태와 같은 의미적 특징 및 스타일 토큰(Style token)과 같은 메타 데이터 형태의 문맥상 특징 중 적어도 하나를 이용하여 운율 정보를 생성하고, 조건 1(830)을 반영하여 생성된 운율 정보를 수정할 수 있다. 또한, 텍스트 문장 1(810)의 실제 음성인 음성 1(820)의 운율 정보를 더 고려하여 보정된 운율 정보를 재수정할 수 있다.
한편, 전자 장치는 텍스트 문장 1(810)을 분할할 수 있다(S802). 구체적으로, 전자 장치는 음성을 합성하는데 기설정된 시간 미만이 소요되도록 텍스트 문장 1(810)을 복수의 문장 구성 요소 1.1 내지 1.N으로 분할할 수 있다. 이때, 복수의 문장 구성 요소 1.1 내지 1.N 각각은 텍스트 문장 1(810) 내에서의 순서와 관련된 인덱스 정보를 포함할 수 있다.
그리고, 전자 장치는 분할된 문장 구성 요소에 대한 음성을 병렬적으로 획득할 수 있다(S803). 이때, 전자 장치는 기저장된 파라미터(840)를 이용하여 문장 구성 요소에 대한 음성을 합성할 수 있다. 구체적으로, 전자 장치는 획득된 운율 정보를 복수의 문장 구성 요소를 합성하는데 각각 반영하여 합성된 음성을 획득할 수 있다. 구체적인 음성 합성 과정은 도 5 및 도 6에 기재된 바, 중복된 설명은 생략한다.
그리고, 전자 장치는 병렬적으로 획득된 복수의 문장 구성 요소에 대한 합성음 1.1 내지 1.N과 각 음성에 포함된 인덱스 정보에 기초하여 합성음을 병합할 수 있다(S804). 구체적으로, 전자 장치는 인덱스 정보에 기초하여 합성음 1.1 내지 1.N를 순서대로 병합하여 합성음 1을 획득할 수 있다. 이때, 합성음 1은 텍스트 문장 1에 대한 음성일 수 있다.
그리고, 전자 장치는 획득된 합성음 1을 음성 1(820)과 비교하여 Loss를 계산할 수 있다(S805). 구체적으로, 전자 장치는 합성음 1과 음성 1(820)의 주파수, 진폭, 주기, 데시벨과 같은 주파수 특성 및 스펙트럼 등을 비교하여 합성음 1의 Loss를 획득하고, 획득된 Loss를 이용하여 합성음 1이 음성(820)과 일치하도록 모듈 최적화 및 파라미터(840)를 업데이트할 수 있다(S806).
한편, 도 9에 도시된 바와 같이, 전자 장치는 스타일 토큰(style token)에 기초하여 운율 정보를 획득할 수도 있다(S802). 여기서, 스타일 토큰이란 음성의 운율 정보를 포함하는 스타일을 결정하기 위한 임의적 요소를 의미할 수 있다. 예를 들어, 스타일 토큰 글로벌 스타일 토큰(global style token, GST)일 수 있다.
구체적으로, 스타일 토큰은 기저장된 복수의 임의적 요소일 수 있으며, 음성 스타일에 따라 각 임의적 요소에 가중치가 부여될 수 있다. 전자 장치는 가중치가 부여된 임의적 요소를 합하여 원하는 음성 스타일을 획득할 수 있다. 예를 들어, 가중치가 반영된 스타일 토큰을 병합하여 생성된 스타일에 기초하여 음성 합성이 수행되는 경우, 화자(여자, 남자, 유명인 등), 감정 및 성격 상태(기쁨, 화남, 바쁨, 부드러움, 퉁명스러움 등) 등을 표현할 수 있게 된다. 이때, 음성 스타일에 따른 스타일 토큰 별 가중치에 대한 파라미터는 학습 후 저장된 것일 수 있다.
도 9를 참조하면, 전자 장치는 텍스트 문장인 문장 1, 및 문장 1에 대응되는 조건 1에 기초하여 스타일 토큰을 예측(Style Token Predictor)할 수 있다. 구체적으로, 전자 장치는 감정 정보, 억양 정보 등을 포함하는 조건 1을 이용하여 텍스트 문장인 문장 1을 음성으로 합성하는데 적용될 복수의 스타일 토큰에 대한 가중치를 예측할 수 있다. 이때, 전자 장치는 기저장된 복수의 스타일에 포함된 가중치를 이용하여 문장 1을 음성 합성하는데 적용될 각 스타일 토큰에 대한 가중치를 예측할 수 있다.
한편, 전자 장치는 문장 1에 대응되는 음성 1에 대한 스타일 토큰을 획득하기 위해 음성 1의 다양한 길이의 운율 정보를 기설정된 길이의 벡터로 변환할 수 있다.(Reference Encoder). 그리고, 전자 장치는 변환된 벡터를 분석하여 기저장된 복수의 스타일 토큰 별 가중치를 획득(Style Token Layer)할 수 있다.
그리고, 전자 장치는 예측된 스타일 토큰 별 가중치에 실제 음성인 음성 1로부터 획득된 스타일 토큰 별 가중치를 더 고려하여 스타일 토큰 별 가중치를 획득하고, 획득된 가중치가 반영된 스타일 토큰을 합하여 스타일을 획득(Style Embedding)할 수 있다.
그리고, 전자 장치는 복수의 문장 구성 요소에 대한 음성을 병렬적으로 합성할 때 획득된 스타일 정보를 운율 정보로 이용할 수 있다. 구체적으로, 전자 장치는 스타일 토큰을 이용하여 획득된 운율 정보를 이용하여 문장 1을 분할하여 획득된 복수의 문장 구성 요소 각각을 음성 합성하고, 합성된 음성을 병합하여 문장 1에 대한 음성을 획득할 수 있다. 그리고, 병합된 음성 및 입력된 음성 1을 비교하여 병합된 음성이 음성 1과 일치하도록 파라미터를 업데이트할 수 있다.
도 10 내지 도 12는 본 개시의 일 실시 예에 따라 텍스트 문장을 분할하는 방법을 설명하기 위한 도면이다.
우선, 전자 장치는 텍스트 문장을 입력받을 수 있다(S1010). 예를 들어, 도 11에 도시된 바와 같이 '수많은 노력을 투입하여 다양한 시도를 적용하였기에, 이러한 좋은 결과를 얻었습니다.'와 같은 텍스트 문장(1110)이 입력될 수 있다.
그리고, 전자 장치는 응답 제한 시간을 식별할 수 있다(S1020). 여기서, 응답 제한 시간이란 사용자에게 응답 음성을 제공하는데 소요되는 제한 시간을 의미하는 것으로, 응답 음성 제공에 식별된 제한 시간 이상 소요되는 경우, 사용자는 대화가 자연스럽지 못하다고 느낄 수 있게 된다. 이러한 응답 제한 시간은 제조사에 의해 제조시 미리 설정된 것일 수 있고, 또는 사용자에 의해 설정된 것일 수 있다.
예를 들어, 도 12에 도시된 바와 같이, 전자 장치는 응답 음성 제공에 허락되는 최대 응답 제한 시간을 제한 조건(1210)으로 식별할 수 있다. 그리고, 전자 장치는 문장 구성 요소의 길이가 문장 구성 요소를 음성 합성하는데 걸리는 시간이 제한 조건(1210) 미만이 되도록 텍스트 문장(1110)을 복수의 문장 구성 요소로 분할할 수 있다(S1030). 구체적으로, 음성 합성될 텍스트의 길이와 음성 합성 시간은 비례하는 관계에 있어, 음성 합성될 텍스트의 길이에 기초하여 음성 합성에 소요되는 시간이 추정될 수 있다. 이때, 음성 합성이 수행되는 장치의 성능에 기반하여 통계적인 방법으로 음성 합성에 소요되는 시간이 추정될 수 있다.
예를 들어, 통계에 기반하여 음성 합성이 서버에서 수행되는 경우, 문장의 길이가 20 frame일 때 음성 합성에 약 0.1초 소요되고, 음성 합성이 단말 장치에서 수행되는 경우, 문장의 길이가 20 frame 일 때, 음성 합성에 약 0.2초 수행된다고 가정하였을 때, 문장의 길이가 40 frame인 텍스트 문장이 입력되면, 음성 합성이 서버에서 수행되면, 음성 합성에 0.2초가 소요되고, 음성 합성이 단말 장치에서 수행되면, 음성 합성에 0.4초가 소요될 것으로 추정될 수 있다.
여기서, frame이란 음성 합성 과정에서의 처리 단위를 의미하는 것으로, 연속적인 음성 신호를 특정 샘플링 레이트로 캡쳐하여 샘플을 생성하고, 기설정된 개수의 샘플을 하나의 frame이라고 지칭할 수 있다. 예를 들어, 전자 장치는 음성 신호를 1초에 약 16000번 캡쳐하여 약 16000개의 샘플을 생성하고, 생성된 샘플을 1024개씩 처리하는 경우, 1024개의 샘플은 하나의 frame을 구성할 수 있다. 이때, 1 frame은 약 64ms일 수 있다. frame의 길이는 샘플링 레이트 및 1 frame을 구성하는 샘플의 개수에 따라 변경될 수 있으나, 통계에 기반하여 문장의 길이에 기초한 frame의 수가 결정될 수 있으며, frame의 수에 기초하여 음성 합성에 소요되는 시간이 예측될 수 있다.
한편, 텍스트 문장(1110)을 음성 합성하는데 걸리는 추정 시간이 제한 조건(1210) 미만이라면, 전자 장치는 텍스트 문장(1110) 그대로 음성 합성을 수행하고, 텍스트 문장(1110)을 음성 합성하는데 걸리는 추정 시간이 제한 조건(1210) 이상이라면, 텍스트 문장(1110)을 기설정된 조건에 기초하여 분할할 수 있다.
구체적으로, 도 11에 도시된 바와 같은 트리 구조에 기초하여 텍스트 문장(1110)을 분할할 수 있다. 우선, 전자 장치는 텍스트 문장(1110)을 제1 기준에 기초하여 복수의 문장 구성 요소(1120-1, 1120-2)로 분할할 수 있다. 예를 들어, 전자 장치는 문장 부호를 기준으로 텍스트 문장 '수많은 노력을 투입하여 다양한 시도를 적용하였기에, 이러한 좋은 결과를 얻었습니다.'(1110)를 분할하여, 문장 구성 요소 '수많은 노력을 투입하여 다양한 시도를 적용하였기에,'(1120-1) 및 문장 구성 요소 '이러한 좋은 결과를 얻었습니다.'(1120-2)를 획득할 수 있다.
그리고, 전자 장치는 획득된 복수의 문장 구성 요소에 대한 합성 시간을 추정할 수 있다(S1040). 그리고, 추정된 합성 시간에 기초하여 음성 합성이 제한 시간 내 처리 가능한지 판단할 수 있다(S1050).
예를 들어, 도 12에 도시된 바와 같이, 전자 장치는 문장 구성 요소 '수많은 노력을 투입하여 다양한 시도를 적용하였기에,'(1120-1)가 음성으로 합성되는데 걸리는 시간이 제한 조건(1210) 미만인지 판단할 수 있다. 그리고, 전자 장치는 문장 구성 요소 '이러한 좋은 결과를 얻었습니다.'(1120-2)가 음성으로 합성되는데 걸리는 시간이 제한 조건(1210) 미만인지 판단할 수 있다. 이때, 복수의 문장 구성 요소(1120-1, 1120-2)는 병렬적으로 음성 합성되므로, 전자 장치는 복수의 문장 구성 요소(1120-1, 1120-2)의 음성 합성을 동시에 시작하여, 복수의 문장 구성 요소(1120-1, 1120-2) 전체가 음성 합성되는데 걸리는 시간이 제한 조건(1210) 미만인지 판단할 수 있다.
이때, 음성 합성이 제한 시간 이상 걸리는 것으로 예측되면(S1050-N), 전자 장치는 문장 구성 요소를 제2 기준에 기초하여 분할할 수 있다(S1030). 여기서, 제2 기준은 제1 기준보다 문장 구성 요소의 길이를 더 짧게 하기 위한 것일 수 있다.
예를 들어, 도 11에 도시된 바와 같이 전자 장치는 절을 기준으로 문장 구성 요소 '수많은 노력을 투입하여 다양한 시도를 적용하였기에,'(1120-1)를 문장 구성 요소 '수많은 노력을 투입하여'(1130-1) 및 문장 구성 요소 '다양한 시도를 적용하였기에,'(1130-2)로 분할할 수 있다.
한편, 음성으로 합성되는데 걸리는 추정 시간이 제한 조건(1210) 미만인 것으로 판단된 문장 구성 요소 '이러한 좋은 결과를 얻었습니다.'(1120-2)는 더 이상 분할되지 않을 수 있다.
그리고, 전자 장치는 제2 기준에 의해 획득된 복수의 문장 구성 요소에 대한 합성 시간을 추정할 수 있다(S1040). 그리고, 추정된 합성 시간에 기초하여 음성 합성이 제한 시간 내 처리 가능한지 판단할 수 있다(S1050).
예를 들어, 도 12에 도시된 바와 같이, 전자 장치는 문장 구성 요소 '수많은 노력을 투입하여'(1130-1)가 음성으로 합성되는데 걸리는 추정 시간이 제한 조건(1210) 미만인지 판단할 수 있다. 그리고, 전자 장치는 '다양한 시도를 적용하였기에,'(1130-2)가 음성으로 합성되는데 걸리는 추정 시간이 제한 조건(1210) 미만인지 예측할 수 있다. 이때, 복수의 문장 구성 요소(1130-1, 1130-2, 1120-2)는 병렬적으로 음성 합성되므로, 전자 장치는 복수의 문장 구성 요소(1130-1, 1130-2, 1120-2)의 음성 합성을 동시에 시작하여, 복수의 문장 구성 요소(1130-1, 1130-2, 1120-2) 전체가 음성 합성되는데 걸리는 추정 시간이 제한 조건(1210) 미만인지 판단할 수 있다.
이때, 모든 문장 구성 요소를 병렬적으로 음성 합성하는데 걸리는 추정 시간이 제한 시간 미만인 것으로 예측되면(S1050-Y), 전자 장치는 획득된 복수의 문장 구성 요소를 음성으로 합성할 수 있다(S1060). 구체적으로, 전자 장치는 복수의 문장 구성 요소를 TTS 모듈에 입력하여 병렬적으로 음성 합성을 수행할 수 있다.
한편, 실시 예에 따라 제한 조건(1210)이 더 짧아 제2 기준에 의해 획득된 문장 구성 요소도 제한 조건(1210)에 비해 긴 경우, 전자 장치는 제2 기준보다 더 짧은 문장 구성 요소를 획득하기 위한 제3 기준을 적용하여 더 짧은 문장 구성 요소를 획득할 수 있다.
예를 들어, 도 11에 도시된 바와 같이, 절 기준으로 분할하여 획득된 복수의 문장 구성 요소(1130-1, 1130-2) 및 문장 부호를 기준으로 분할하여 획득된 문장 구성 요소(1120-2)를 제3 기준인 구 기준으로 분할하여 복수의 문장 구성 요소(1140-1, 1140-2, 1140-3, 1140-4, 1140-5, 1140-6)를 획득할 수 있다.
도 13을 참조하면, 'You like samsung.'(1310), 'You like samsung?'(1320), 'Do you like samsung?'(1330) 및 'You like samsung, don't you?'(1340) 각각의 운율 정보가 다름을 확인할 수 있다. 특히, 각 텍스트 문장(1310, 1320, 1330, 1340)은 문장의 형식, 통사적 구조, 문맥, 감정 정보 등에 따라 다른 운율을 갖는 'you like samsung'를 포함함을 확인할 수 있다.
한편, 도 14를 참조하면, 'I am planning for a trip this weekend.'의 일부인 'for a trip this weekend.'(1410)와 'What do you think is the best for a trip this weekend?'의 일부인 'for a trip this weekend?'(1420)는 텍스트로는 동일하여, 기존 기술과 같이 텍스트 문장 전체의 운율 정보를 반영하지 않고, 분할된 음성 합성을 수행하는 경우, ‘for a trip this weekend.’(1410)과 'for a trip this weekend?'(1410)는 동일한 운율로 합성될 수 있다. 이 경우, 분할된 문장 구성 요소 각각에 대해 합성된 음성을 병합한 경우, 음성이 부자연스러울 수 있다. 한편, 문장 부호에 의해 'for a trip this weekend.'(1410)와 'for a trip this weekend?'(1420)가 다른 운율을 가지도록 음성 합성 되더라도, 'I am planning'에 대해 합성된 음성과 'What do you think is the best'에 대해 합성된 음성과 각각 병합되어 하나의 문장에 대한 음성이 생성되는 경우, 각 문장 구성 요소가 독립적으로 음성 합성 되어 병합된 음성의 경계가 부자연스러울 수 있다.
그러나, 본 개시에 따르면, 프로세서(120)는 텍스트 문장을 분할하여 텍스트 문장 전체의 운율 정보를 각각 반영하여 병렬적으로 음성 합성을 하는 경우, 각 문장 구성 요소인 ‘for a trip this weekend.’(1411)과 'for a trip this weekend?'(1421)는 동일한 텍스트임에도 불구하고, 텍스트 문장의 운율 정보에 기초하여 서로 다른 운율을 갖도록 음성 합성할 수 있게 된다.
도 15는 운율 정보를 반영하여 음성 합성을 수행한 경우 합성된 음성의 운율 차이를 설명하기 위한 도면이다. 구체적으로, 도 15는 운율 정보 중 하나인 음성의 피치(pitch)를 도시한 것이다. 여기서, 음성의 피치라 함은 음의 높낮이를 의미하는 것으로 소리의 진동수에 기초한 것이다.
도 15를 참조하면, 텍스트 문장인 '나는 학교에 갑니다.'를 문장 구성 요소인 '나는', '학교에', '갑니다.'로 분할하여 병렬적으로 음성을 합성한 후 병합하여 획득된 음성의 피치(pitch)를 도시한 것이다. 구체적으로, 각 문장 구성 요소를 음성 합성하는데 텍스트 문장 전체의 운율 정보를 반영한 결과(1510)를 참고하면, 문장 구성 요소에 대한 음성의 경계(1501, 1502)에서도 음성의 피치가 자연스럽게 연결되는 것을 확인할 수 있다. 이로 인해 사용자는 전체 음성인 '나는 학교에 갑니다.'가 이질감 없는 하나의 문장으로 느껴질 수 있다.
반면, 각 문장 구성 요소를 음성 합성하는데 텍스트 문장 전체의 운율 정보를 반영하지 않은 결과(1520)를 참고하면, 문장 구성 요소에 대한 음성의 경계(1501, 1502)에서 음성의 피치가 연결 되지 않음을 확인할 수 있다. 즉, 사용자는 전체 음성인 '나는 학교에 갑니다.'가 하나의 문장으로써는 부자연스럽게 느껴지게 된다.
도 16은 음성 합성 동안 추임새 음성을 출력하는 실시 예를 설명하기 위한 흐름도이다.
도 16을 참조하면, 전자 장치는 텍스트 문장을 입력받을 수 있다(S1610). 이때, 전자 장치는 텍스트 문장과 함께 텍스트 문장에 대응되는 특징 정보를 함께 입력받을 수 있다. 여기서, 특징 정보는 텍스트 문장의 언어 정보, 텍스트 문장의 감정 정보, 화자에 대한 정보(예로, 화자의 성별, 특정 인물 등) 등을 포함할 수 있다.
그리고, 전자 장치는 텍스트 문장의 음성 합성에 소요되는 시간을 추정할 수 있다(S1620). 예를 들어, 전자 장치는 텍스트 문장의 길이에 기초하여 음성 합성에 소요되는 시간을 추정할 수 있다.
그리고, 전자 장치는 추정된 합성 시간에 기초하여 추임새 음성을 획득할 수 있다(S1630). 구체적으로, 전자 장치는 추정된 합성 시간이 제한 시간을 초과하면 추임새 음성을 획득할 수 있으며, 추임새 음성의 길이는 추정된 합성 시간에 비례하여 결정될 수 있다. 이때, 전자 장치는 텍스트 문장을 순차적으로 음성 합성하는데 소요되는 시간에 기초하여 추임새 음성의 길이를 결정할 수도 있고, 텍스트 문장을 분할하여 병렬적으로 음성 합성을 하는데 소요되는 시간에 기초하여 추임새 음성의 길이를 결정할 수도 있다.
여기서, 추임새 음성은 전자 장치에 기저장된 복수의 녹음 음성 중에서 선택된 것일 수도 있고, 전자 장치에 기저장된 복수의 추임새 텍스트 중에서 선택되어 TTS 모듈에 의해 음성 합성된 것일 수도 있다. 또는, 추임새 음성은 연산량 및 대역폭 효율화를 위한 캐싱(caching) 방법 등에 의해 이전에 재생된 음성 신호를 재사용하는 방식으로 획득될 수도 있다. 또 다른 실시 예로, 추임새 음성은 전자 장치에 저장된 것 뿐만 아니라, 도 17에 도시된 바와 같이 외부 장치로부터 수신될 수도 있다.
그리고, 전자 장치는 텍스트 문장에 대응되는 특징 정보에 기초하여 추임새 음성을 선택할 수 있다. 예를 들어, 특징 정보에 화자로서 특정 인물에 대한 정보가 포함되면, 전자 장치는 해당 인물의 성별, 자주 사용하는 추임새 등에 대한 정보에 기초하여 추임새 음성을 획득할 수 있다.
그리고, 전자 장치는 입력된 텍스트 문장을 음성 합성하면서, 획득된 추임새 음성을 출력할 수 있다(S1640). 이때, 전자 장치는 텍스트 문장 전체를 순차적으로 음성 합성하는 동안 추임새 음성을 출력할 수 있다. 또는, 전자 장치는 텍스트 문장을 분할 후 텍스트 문장 전체에 대한 운율 정보를 반영하여 분할된 문장 구성 요소에 대한 음성 합성을 병렬적으로 수행하는 동안 추임새 음성을 출력할 수도 있다. 또는, 전자 장치는 텍스트 문장의 서두 부분만을 음성 합성하는 동안 추임새 음성을 출력할 수도 있다.
또 다른 실시 예로, 외부 장치에 의해 음성 합성이 수행되는 동안 전자 장치는 추임새 음성을 출력할 수 있으며, 이에 대해서는 이하 도 17을 참조하여 보다 자세히 설명하기로 한다.
그리고, 전자 장치는 추임새 음성 출력 후 합성된 음성을 출력할 수 있다(S1650). 구체적으로, 추임새 음성이 출력되는 동안 텍스트 문장에 대한 합성된 음성을 출력할 수 있다. 이때, 합성된 음성이 텍스트 문장 전체에 대한 음성이라면, 전자 장치는 합성된 음성 출력을 계속 수행할 수 있다. 한편, 합성된 음성이 텍스트 문장의 서두 부분에 해당한다면, 전자 장치는 합성된 음성을 출력하면서, 서두 부분 이후의 텍스트에 대한 음성 합성을 수행할 수 있다.
상술한 바와 같이, 음성 합성을 수행하는 동안 추임새 음성을 출력함으로써, 사용자의 체감 지연 시간을 줄일 수 있으며, 이로 인해 보다 자연스러운 인공 지능 대화 시스템 구현이 가능하게 된다.
도 17은 텍스트 문장의 적어도 일부를 외부 서버에서 음성 합성하는 실시 예를 도시한 시퀀스도이다.
도 17을 참조하면, 전자 장치(100)는 텍스트 문장을 획득할 수 있다(S1710). 구체적으로, 전자 장치(100)는 구비된 마이크 또는 외부 장치에서 수신된 사용자 음성을 인식하고, 인식된 사용자 음성에 대응되는 응답 텍스트 문장을 획득할 수 있다. 한편, 전자 장치(100)는 텍스트 문장을 외부 장치로부터 수신할 수도 있다. 이때, 전자 장치는 텍스트 문장과 함께 텍스트 문장에 대응되는 특징 정보를 함께 획득할 수 있다. 여기서, 특징 정보는 텍스트 문장의 언어 정보, 텍스트 문장의 감정 정보, 화자에 대한 정보(예로, 화자의 성별, 특정 인물 등) 등을 포함할 수 있다.
그리고, 전자 장치(100)는 텍스트 문장 전체의 운율 정보를 획득할 수 있다(S1720).
그리고, 전자 장치(100)는 텍스트 문장을 음성 합성하는데 걸리는 시간을 추정할 수 있다(S1730). 구체적으로, 전자 장치(100)는 추임새 음성의 길이를 추정된 합성 시간에 기초하여 결정할 수 있다. 이때, 텍스트 문장을 음성 합성하는데 걸리는 추정 시간이 제한 시간 이상이면, 전자 장치(100)는 텍스트 문장을 기설정된 조건에 기초하여 분할할 수 있다(S1740). 텍스트 문장 분할 동작에 대해서는 도 10 내지 도 12에 자세히 설명한 바, 중복된 설명은 생략하기로 한다.
전자 장치(100)는 텍스트 문장을 분할하여 획득된 복수의 문장 구성 요소 중 일부 문장 구성 요소를 제외한 나머지 문장 구성 요소 및 운율 정보를 음성 합성을 위한 서버(200)에 전송할 수 있다(S1750). 이때, 전자 장치(100)는 텍스트 문장에서 서두 부분에 해당하는 적어도 하나의 문장 구성 요소 이외의 문장 구성 요소를 서버(200)에 전송할 수 있다.
이때, 전자 장치(100)는 추임새 음성에 대한 정보를 위한 텍스트 문장에 대한 정보 및 추정 합성 시간에 대한 정보를 서버(200)에 전송할 수 있다(S1750). 이때, 텍스트 문장에 대한 정보는 텍스트의 언어 종류, 화자에 대한 정보 등을 포함하는 텍스트 문장에 대응되는 특징 정보로 메타 데이터 형태로 전자 장치(100) 및 서버(200)가 공유할 수 있다.
그리고, 서버(200)는 텍스트 문장에 대한 정보 및 추정 합성 시간에 기초하여 식별된 추임새 음성 정보를 전자 장치(100)에 전송할 수 있다(S1755). 이때, 추임새 음성 정보는 서버(200)에 저장된 녹음 파일, 서버(200)에 의해 음성 합성된 추임새 음성 파일, 추임새 음성에 대한 텍스트 정보 등일 수 있다. 만약, 전자 장치(100)가 서버(200)로부터 추임새 음성에 대한 텍스트 정보를 수신하면, 전자 장치(100)는 TTS 모듈을 이용하여 추임새 음성을 합성하여 출력할 수 있다.
한편, 도 17에서는 서버(200)로부터 추임새 음성을 수신하는 것으로 도시되었으나, 실시 예에 따라, 전자 장치(100)에 저장된 녹음 음성, 전자 장치(100)에 구비된 TTS 모듈에 의해 합성된 음성을 추임새 음성으로 출력할 수도 있다.
한편, 도 17에서는 추임새 음성을 출력하는 것으로 도시하였으나, 실제 구현시에는 추임새 음성 출력 동작은 선택적일 수 있으며, 추임새 음성을 출력하지 않는 경우에는, 서버(200)에서 전자 장치(100)에 추임새 음성 정보를 전송하는 단계(S1755) 및 추임새 음성을 출력하는 단계는 생략될 수 있다.
그리고, 전자 장치(100)는 서버(200)에 전송하지 않은 텍스트 문장의 서두 부분의 문장 구성 요소에 대한 음성을 합성하고, 음성 합성을 수행하는 동안 추임새 음성을 출력할 수 있다(S1760).
그리고, 서버(200)는 전자 장치(100)로부터 수신된 나머지 문장 구성 요소에 대한 음성을 합성할 수 있다(S1765). 이때, 서버(200)는 전자 장치(100)로부터 수신된 텍스트 문장 전체에 대한 운율 정보를 각각 반영하여 문장 구성 요소에 대한 음성 합성을 병렬적으로 수행할 수 있다. 이로 인해, 전자 장치(100)에서 합성된 음성과 서버(200)에서 합성된 음성의 스타일이 유사하게 유지될 수 있다.
그리고, 전자 장치(100)는 텍스트 문장의 서두 부분의 문장 구성 요소에 대해 합성된 음성을 출력할 수 있다(S1770). 전자 장치(100)가 추임새 음성을 출력하고 있었다면, 전자 장치(100)는 추임새 음성의 출력을 완료한 후, 텍스트 문장의 서두 부분의 문장 구성 요소에 대해 합성된 음성을 출력할 수 있다.
그리고, 전자 장치(100)는 서버(200)로부터 합성된 음성을 전송 받을 수 있다(S1780). 구체적으로, 전자 장치(100)는 서버(200)로부터 텍스트 문장의 서두 부분을 제외한 나머지 문장 구성 요소에 대해 합성된 음성을 전송받을 수 있다.
한편, 도 17에서는 전자 장치(100)에서 합성된 음성을 출력한 후 서버(200)로부터 서버(200)에서 합성된 음성이 수신되는 것으로 도시하였으나, 실제 구현시에는 전자 장치(100)에서 합성된 음성 출력 전 또는 출력 도중에 서버(200)로부터 합성된 음성의 수신이 개시될 수 있다.
그리고, 전자 장치(100)는 서버(200)로부터 수신된 음성을 출력할 수 있다(S1790). 구체적으로, 전자 장치(100)는 서버(200)로부터 수신된 텍스트 문장의 서두 부분을 제외한 나머지 문장 구성 요소에 대해 합성된 음성을 출력할 수 있다. 즉, 전자 장치(100)는 텍스트 문장의 서두 부분에 대해 합성된 음성을 먼저 출력한 후, 서버(200)로부터 수신된 나머지 문장 구성 요소에 대해 합성된 음성을 이어 출력할 수 있다.
이와 같이, 텍스트 문장의 서두 부분을 전자 장치(100)에서 합성하여 먼저 출력함으로써, 텍스트 문장 전체를 서버(200)에서 음성 합성할 때보다 빠른 시간 내에 응답 음성 출력이 가능하게 된다.
한편, 도 17에서는 전자 장치(100)에서 운율 정보 획득, 음성 합성 시간 추정, 텍스트 문장 분할 동작을 수행한 후 획득된 정보 및 분할된 문장 구성 요소를 서버(200)에 전송하는 것으로 도시하였으나, 실제 구현시에는 전자 장치(100)에서 사용자 음성이 수신되면, 수신된 사용자 음성을 서버(200)에 전송하고, 서버(200)가 사용자 음성에 대한 응답 텍스트 문장을 생성, 운율 정보 획득, 음성 합성 시간 추정 등의 동작을 수행할 수 있다. 이 경우, 서버(200)는 획득된 응답 텍스트 문장의 정보 및 추정된 음성 합성 시간에 기초하여 추임새 음성에 대한 정보를 전자 장치(100)에 전송하고, 전자 장치(100)에서 추임새 음성을 출력하는 동안 텍스트 문장을 분할한 문장 구성 요소를 병렬적으로 음성 합성하고, 합성된 음성을 전자 장치(100)에 전송하여, 전자 장치(100)가 추임새 음성 출력 후 합성된 음성을 출력하게 할 수 있다.
또 다른 실시 예로, 전자 장치(100)에서 사용자 음성이 수신되면, 전자 장치(100)는 수신된 음성을 서버(200)로 전송하고, 서버(200)가 사용자 음성에 대한 응답 텍스트 문장을 생성, 운율 정보 획득, 음성 합성 시간 추정, 텍스트 문장 분할 등의 동작을 수행할 수 있다.
그리고, 서버(200)는 획득된 운율 정보와 텍스트 문장의 서두 부분을 전자 장치(100)에 전송할 수 있다. 이때, 서버(200)는 획득된 응답 텍스트 문장의 정보 및 추정된 음성 합성 시간에 기초하여 추임새 음성에 대한 정보를 전자 장치(100)에 전송할 수 있다. 전자 장치(100)는 서버(200)로부터 수신된 텍스트 문장의 서두 부분을 운율 정보를 반영하여 음성 합성하는 동안 추임새 음성을 출력할 수 있다.
그리고, 서버(200)는 텍스트 문장에서 전자 장치(100)에 전송된 부분에 대해 음성 합성을 수행하고, 합성된 음성을 전자 장치(100)에 전송할 수도 있다.
도 18은 본 개시의 일부 동작이 서버에서 수행되는 실시 예를 도시한 시퀀스도이다.
도 18을 참조하면, 우선 전자 장치(100)는 전자 장치(100)는 텍스트 문장을 획득할 수 있다(S1710). 구체적으로, 전자 장치(100)는 구비된 마이크 또는 외부 장치에서 수신된 사용자 음성을 인식하고, 인식된 사용자 음성에 대응되는 응답 텍스트 문장을 획득할 수 있다. 한편, 전자 장치(100)는 텍스트 문장을 외부 장치로부터 수신할 수도 있다. 이때, 전자 장치는 텍스트 문장과 함께 텍스트 문장에 대응되는 특징 정보를 함께 획득할 수 있다. 여기서, 특징 정보는 텍스트 문장의 언어 정보, 텍스트 문장의 감정 정보, 화자에 대한 정보(예로, 화자의 성별, 특정 인물 등) 등을 포함할 수 있다.
그리고, 전자 장치(100)는 획득된 텍스트 문장에 대한 정보를 서버(200)에 전송할 수 있다(S1815). 이때, 전자 장치(100)는 텍스트 문장에 대응되는 특징 정보를 함께 전송할 수 있다.
그리고, 서버(200)는 수신된 텍스트 문장 전체의 운율 정보를 획득할 수 있다(S1820).
그리고, 서버(200)는 텍스트 문장을 음성 합성하는데 걸리는 시간을 추정할 수 있다(S1830). 이때, 텍스트 문장을 음성 합성하는데 걸리는 추정 시간이 제한 시간 이상이면, 서버(200)는 텍스트 문장을 기설정된 조건에 기초하여 분할할 수 있다(S1840). 텍스트 문장 분할 동작에 대해서는 도 10 내지 도 12에 자세히 설명한 바, 중복된 설명은 생략하기로 한다.
그리고, 서버(200)는 텍스트 문장에 대한 정보 및 추정 합성 시간에 기초하여 추임새 음성 정보를 식별할 수 있다(S1850). 구체적으로, 서버(200)는 추임새 음성의 길이를 추정된 합성 시간에 기초하여 식별할 수 있다. 또는, 서버(200)는 텍스트 문장의 언어 종류, 화자에 대한 정보 등을 포함하는 텍스트 문장에 대응되는 특징 정보에 기초하여 추임새 음성을 식별할 수도 있다.
그리고, 서버(200)는 식별된 추임새 음성 정보를 전자 장치(100)에 전송할 수 있다(S1855). 이때, 추임새 음성 정보는 서버(200)에 저장된 녹음 파일, 서버(200)에 의해 음성 합성된 추임새 음성 파일, 추임새 음성에 대한 텍스트 정보 등일 수 있다.
그리고, 전자 장치(100)는 수신된 추임새 음성 정보에 기초하여 추임새 음성을 출력할 수 있다(S1860). 만약, 서버(200)가 추임새 음성 신호를 전자 장치(100)에 전송한 경우, 전자 장치(100)는 수신된 추임새 음성 신호를 출력할 수 있다. 한편, 전자 장치(100)가 서버(200)로부터 추임새 음성에 대한 텍스트 정보를 수신하면, 전자 장치(100)는 TTS 모듈을 이용하여 추임새 음성을 합성하여 출력할 수 있다.
또 다른 실시 예로, 서버(200)가 추정된 합성 시간에 대한 정보를 전자 장치(100)에 전송하는 경우, 전자 장치(100)에 저장된 녹음 음성 중 추정된 합성 시간에 대응되는 추임새 음성을 출력할 수도 있다.
그리고, 서버(200)는 텍스트 문장을 분할한 문장 구성 요소에 대한 음성을 합성할 수 있다(S1870). 이때, 서버(200)는 텍스트 문장 전체에 대한 운율 정보를 각각 반영하여 문장 구성 요소에 대한 음성 합성을 병렬적으로 수행할 수 있다.
그리고, 서버(200)는 텍스트 문장에 대해 합성된 음성을 전자 장치(100)에 전송할 수 있다(S1875). 그리고, 전자 장치(100)는 서버(200)로부터 수신된 텍스트 문장에 대한 합성 음성을 출력할 수 있다(S1880).
한편, 도 18에서는 서버(200)에서 텍스트 문장 전체에 대한 음성 합성을 수행하는 것으로 도시하였으나, 실제 구현시에는 텍스트 문장의 서두 부분 및 운율 정보를 전자 장치(100)에 전송하여 전자 장치(100)에서 운율 정보를 반영하여 텍스트 문장의 서두 부분을 음성 합성한 후 먼저 출력하게 할 수 있다.
한편, 도 18에서는 전자 장치(100)에서 텍스트 문장을 획득하고, 서버(200)에서 텍스트 문장에 대한 운율 정보를 획득하는 것을 도시 및 설명하였으나, 구현시에는 전자 장치(100)에서 텍스트 문장을 획득하고 텍스트 문장에 대한 운율 정보를 획득하고, 텍스트 문장에 대한 정보 및 운율 정보를 서버(200)에 전송하면, 서버(200)에서 합성 시간을 추정, 텍스트 문장 분할 동작을 수행할 수도 있다. 또 다른 실시 예로, 전자 장치(100)에서, 텍스트 문장 획득, 운율 정보 획득 및 합성 시간을 추정하고, 텍스트 문장에 대한 정보, 운율 정보 및 추정된 합성 시간에 대한 정보를 서버(200)에 전송하면, 서버(200)는 수신된 정보에 기초하여 텍스트 문장 분할 동작을 수행할 수도 있다.
이상에 기재한 다양한 실시 예에 따라, 텍스트 문장을 분할한 복수의 문장 구성 요소 각각을 음성 합성하는데 전체 텍스트 문장의 운율 정보를 반영함으로써, 빠른 응답이 가능하면서도, 이질감 없는 음성을 출력하여 자연스러운 인공 지능 대화 시스템을 구현할 수 있게 된다.
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합된 것을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 ASICs(Application Specific Integrated Circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 유닛(unit) 중 적어도 하나를 이용하여 구현될 수 있다. 일부의 경우에 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법은 비일시적 판독 가능 매체(non-transitory readable medium) 에 저장될 수 있다. 이러한 비일시적 판독 가능 매체는 다양한 장치에 탑재되어 사용될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 방법을 수행하기 위한 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
1000 : 인공 지능 대화 시스템 100 : 전자 장치
110 : 메모리 120 : 프로세서
200 : 외부 서버

Claims (20)

  1. 전자 장치에 있어서,
    적어도 하나의 명령어를 포함하는 메모리; 및
    상기 적어도 하나의 명령어를 실행하는 프로세서;를 포함하고,
    상기 프로세서는,
    텍스트 문장이 입력되면, 상기 텍스트 문장의 운율 정보(prosody information)를 획득하고,
    상기 텍스트 문장을 복수의 문장 구성 요소(sentence element)로 분할하고,
    상기 복수의 문장 구성 요소 및 상기 텍스트 문장의 운율 정보를 TTS(Text to Speech) 모듈에 입력하여 상기 복수의 문장 구성 요소 각각에 운율 정보가 반영된 음성을 병렬적으로 획득하고,
    상기 병렬적으로 획득된 복수의 문장 구성 요소에 대한 음성을 병합(merging)하여 상기 텍스트 문장에 대한 음성을 획득하는 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 텍스트 문장을 제1 기준으로 분할하여 상기 복수의 제1 문장 구성 요소를 획득하고, 상기 획득된 복수의 제1 문장 구성 요소가 음성으로 변환되는데 걸리는 시간이 기설정된 시간 미만이면, 상기 복수의 제1 문장 구성 요소를 상기 TTS 모듈에 입력하고,
    상기 복수의 제1 문장 구성 요소 중 적어도 하나가 음성으로 변환되는데 걸리는 시간이 상기 기설정된 시간 이상이면, 상기 적어도 하나의 제1 문장 구성 요소를 제2 기준으로 분할하여 복수의 제2 문장 구성 요소를 획득하고, 상기 복수의 제2 문장 구성 요소가 음성으로 변환되는데 걸리는 시간이 상기 기설정된 시간 미만이면, 상기 적어도 하나의 제1 문장 구성 요소를 제외한 나머지 제1 문장 구성 요소 및 상기 획득된 복수의 제2 문장 구성 요소를 상기 TTS 모듈에 입력하는 전자 장치.
  3. 제2항에 있어서,
    상기 제1 기준이 문장 부호(punctuation marks) 기준이면, 상기 제2 기준은 절(clause) 기준이며,
    상기 제1 기준이 절 기준이면, 상기 제2 기준은 구(phrase) 기준인 전자 장치.
  4. 제1항에 있어서,
    상기 운율 정보는,
    상기 텍스트 문장의 형식, 통사적 구조 및 문맥 중 적어도 하나에 기초한 상기 텍스트 문장 전체의 음운 정보, 억양 정보 및 강세 정보를 포함하는 전자 장치.
  5. 제1항에 있어서,
    상기 복수의 문장 구성 요소 각각은,
    상기 텍스트 문장 내에서의 순서와 관련된 인덱스 정보를 포함하고,
    상기 프로세서는,
    상기 인덱스 정보에 기초하여 상기 병렬적으로 획득된 복수의 문장 구성 요소에 대한 음성을 병합하여 상기 텍스트 문장에 대한 음성을 획득하는 전자 장치.
  6. 제1항에 있어서,
    상기 TTS 모듈은,
    DNN TTS(Deep Neural Network Text to Speech) 모듈인 전자 장치.
  7. 제1항에 있어서,
    스피커;를 더 포함하고,
    상기 프로세서는,
    상기 스피커를 통해, 추임새(rejoinder) 음성을 출력 후 상기 획득된 텍스트 문장에 대한 음성을 출력하는 전자 장치.
  8. 제7항에 있어서,
    복수의 추임새 음성은 상기 메모리에 저장되고,
    상기 프로세서는,
    상기 텍스트 문장에 대한 음성을 획득하는데 걸리는 시간에 기초하여 상기 복수의 추임새 음성 중 하나를 식별하고, 식별된 추임새 음성을 상기 스피커를 통해 출력하는 전자 장치.
  9. 제1항에 있어서,
    통신부; 및
    스피커;를 더 포함하고,
    상기 프로세서는,
    상기 복수의 문장 구성 요소 중 일부의 문장 구성 요소를 제외한 나머지 문장 구성 요소 및 상기 운율 정보를 상기 통신부를 통해 음성 합성을 위한 외부 장치로 전송하고,
    상기 운율 정보를 반영하여 상기 일부의 문장 구성 요소에 대한 음성을 병렬적으로 획득하고,
    상기 병렬적으로 획득된 음성 및 상기 외부 장치로부터 수신된 음성을 상기 스피커를 통해 출력하는 전자 장치.
  10. 제9항에 있어서,
    상기 일부의 문장 구성 요소는,
    상기 텍스트 문장의 서두 부분(beginning part)을 포함하고,
    상기 프로세서는,
    상기 일부의 문장 구성 요소에 대해 획득된 음성을 상기 스피커를 통해 출력 후 상기 외부 장치로부터 수신된 음성을 상기 스피커를 통해 출력하는 전자 장치.
  11. 전자 장치의 제어 방법에 있어서,
    텍스트 문장이 입력되면, 상기 텍스트 문장의 운율 정보(prosody information)를 획득하는 단계;
    상기 텍스트 문장을 복수의 문장 구성 요소(sentence element)로 분할하는 단계;
    상기 복수의 문장 구성 요소 및 상기 텍스트 문장의 운율 정보를 TTS(Text to Speech) 모듈에 입력하여 상기 복수의 문장 구성 요소 각각에 운율 정보가 반영된 음성을 병렬적으로 획득하는 단계;
    상기 병렬적으로 획득된 복수의 문장 구성 요소에 대한 음성을 병합하여 상기 텍스트 문장에 대한 음성을 획득하는 단계;를 포함하는 전자 장치의 제어 방법.
  12. 제11항에 있어서,
    상기 분할하는 단계는,
    상기 텍스트 문장을 제1 기준으로 분할하여 상기 복수의 제1 문장 구성 요소를 획득하고, 상기 획득된 복수의 제1 문장 구성 요소가 음성으로 변환되는데 걸리는 시간이 기설정된 시간 미만이면, 상기 복수의 제1 문장 구성 요소를 상기 TTS 모듈에 입력하고,
    상기 복수의 제1 문장 구성 요소 중 적어도 하나가 음성으로 변환되는데 걸리는 시간이 상기 기설정된 시간 이상이면, 상기 적어도 하나의 제1 문장 구성 요소를 제2 기준으로 분할하여 복수의 제2 문장 구성 요소를 획득하고, 상기 복수의 제2 문장 구성 요소가 음성으로 변환되는데 걸리는 시간이 상기 기설정된 시간 미만이면, 상기 적어도 하나의 제1 문장 구성 요소를 제외한 나머지 제1 문장 구성 요소 및 상기 획득된 복수의 제2 문장 구성 요소를 상기 TTS 모듈에 입력하는 전자 장치의 제어 방법.
  13. 제12항에 있어서,
    상기 제1 기준이 문장 부호(punctuation marks) 기준이면, 상기 제2 기준은 절(clause) 기준이며,
    상기 제1 기준이 절 기준이면, 상기 제2 기준은 구(phrase) 기준인 전자 장치의 제어 방법.
  14. 제11항에 있어서,
    상기 운율 정보는,
    상기 텍스트 문장의 형식, 통사적 구조 및 문맥 중 적어도 하나에 기초한 상기 텍스트 문장 전체의 음운 정보, 억양 정보 및 강세 정보를 포함하는 전자 장치의 제어 방법.
  15. 제11항에 있어서,
    상기 복수의 문장 구성 요소 각각은,
    상기 텍스트 문장 내에서의 순서와 관련된 인덱스 정보를 포함하고,
    상기 텍스트 문장에 대한 음성을 획득하는 단계는,
    상기 인덱스 정보에 기초하여 상기 병렬적으로 획득된 복수의 문장 구성 요소에 대한 음성을 병합하여 상기 텍스트 문장에 대한 음성을 획득하는 전자 장치의 제어 방법.
  16. 제11항에 있어서,
    스피커를 통해 추임새(rejoinder) 음성을 출력 후 상기 획득된 텍스트 문장에 대한 음성을 출력하는 단계;를 더 포함하는 전자 장치의 제어 방법.
  17. 제16항에 있어서,
    복수의 추임새 음성은 메모리에 저장되고,
    상기 출력하는 단계는,
    상기 텍스트 문장에 대한 음성을 획득하는데 걸리는 시간에 기초하여 상기 복수의 추임새 음성 중 하나를 식별하고, 식별된 추임새 음성을 상기 스피커를 통해 출력하는 전자 장치의 제어 방법.
  18. 제11항에 있어서,
    상기 복수의 문장 구성 요소 중 일부의 문장 구성 요소를 제외한 나머지 문장 구성 요소 및 상기 운율 정보를 음성 합성을 위한 외부 장치로 전송하는 단계; 및
    상기 운율 정보를 반영하여 상기 일부의 문장 구성 요소에 대한 음성을 병렬적으로 획득된 음성 및 상기 외부 장치로부터 수신된 음성을 스피커를 통해 출력하는 단계;를 더 포함하는 전자 장치의 제어 방법.
  19. 제18항에 있어서,
    상기 일부의 문장 구성 요소는,
    상기 텍스트 문장의 서두 부분(beginning part)을 포함하고,
    상기 출력하는 단계는,
    상기 일부의 문장 구성 요소에 대해 획득된 음성을 상기 스피커를 통해 출력 후 상기 외부 장치로부터 수신된 음성을 상기 스피커를 통해 출력하는 전자 장치의 제어 방법.
  20. 전자 장치의 제어 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록 매체에 있어서,
    전자 장치의 제어 방법은,
    텍스트 문장이 입력되면, 상기 텍스트 문장의 운율 정보(prosody information)를 획득하는 단계;
    상기 텍스트 문장을 복수의 문장 구성 요소(sentence element)로 분할하는 단계;
    상기 복수의 문장 구성 요소 및 상기 텍스트 문장의 운율 정보를 TTS(Text to Speech) 모듈에 입력하여 상기 복수의 문장 구성 요소 각각에 운율 정보가 반영된 음성을 병렬적으로 획득하는 단계;
    상기 병렬적으로 획득된 복수의 문장 구성 요소에 대한 음성을 병합하여 상기 텍스트 문장에 대한 음성을 획득하는 단계;를 포함하는 컴퓨터 판독가능 기록 매체.
KR1020190024241A 2018-11-14 2019-02-28 전자 장치 및 이의 제어 방법 KR20200056261A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201980063157.XA CN112771607A (zh) 2018-11-14 2019-11-07 电子设备及其控制方法
EP19885929.0A EP3818518A4 (en) 2018-11-14 2019-11-07 ELECTRONIC DEVICE AND ITS CONTROL PROCESS
PCT/KR2019/015050 WO2020101263A1 (en) 2018-11-14 2019-11-07 Electronic apparatus and method for controlling thereof
US16/683,342 US11289083B2 (en) 2018-11-14 2019-11-14 Electronic apparatus and method for controlling thereof
US17/679,446 US20220180872A1 (en) 2018-11-14 2022-02-24 Electronic apparatus and method for controlling thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862767168P 2018-11-14 2018-11-14
US62/767,168 2018-11-14

Publications (1)

Publication Number Publication Date
KR20200056261A true KR20200056261A (ko) 2020-05-22

Family

ID=70913781

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190024241A KR20200056261A (ko) 2018-11-14 2019-02-28 전자 장치 및 이의 제어 방법

Country Status (3)

Country Link
EP (1) EP3818518A4 (ko)
KR (1) KR20200056261A (ko)
CN (1) CN112771607A (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111768756A (zh) * 2020-06-24 2020-10-13 华人运通(上海)云计算科技有限公司 信息处理方法、装置、车辆和计算机存储介质
WO2022065603A1 (ko) * 2020-09-25 2022-03-31 주식회사 딥브레인에이아이 텍스트 기반의 음성 합성 방법 및 장치
KR102395399B1 (ko) * 2021-09-29 2022-05-10 주식회사 인피닉 음성 인식 학습을 위한 음성 데이터 분해 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
KR20220072593A (ko) * 2020-11-25 2022-06-02 주식회사 자이냅스 무음 멜-스펙트로그램을 이용하여 음성 데이터를 생성하는 방법 및 음성 합성 시스템
KR20220072605A (ko) * 2020-11-25 2022-06-02 주식회사 자이냅스 멜-스펙트로그램의 길이에 기초하여 음성 데이터의 참조 구간을 결정하는 방법 및 음성 합성 시스템
KR102408455B1 (ko) * 2021-09-29 2022-06-14 주식회사 인피닉 음성 인식 학습을 위한 음성 데이터 합성 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
WO2024090997A1 (ko) * 2022-10-25 2024-05-02 삼성전자주식회사 감정을 고려하여 합성 음성을 획득하는 전자 장치 및 그 제어 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113643684B (zh) * 2021-07-21 2024-02-27 广东电力信息科技有限公司 语音合成方法、装置、电子设备及存储介质
WO2023102931A1 (zh) * 2021-12-10 2023-06-15 广州虎牙科技有限公司 韵律结构的预测方法、电子设备、程序产品及存储介质
WO2023184874A1 (zh) * 2022-03-31 2023-10-05 美的集团(上海)有限公司 语音合成方法和装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3595041B2 (ja) * 1995-09-13 2004-12-02 株式会社東芝 音声合成システムおよび音声合成方法
US7401020B2 (en) * 2002-11-29 2008-07-15 International Business Machines Corporation Application of emotion-based intonation and prosody to speech in text-to-speech systems
US7496498B2 (en) * 2003-03-24 2009-02-24 Microsoft Corporation Front-end architecture for a multi-lingual text-to-speech system
US8352270B2 (en) * 2009-06-09 2013-01-08 Microsoft Corporation Interactive TTS optimization tool
KR101021215B1 (ko) * 2010-03-31 2011-03-11 주식회사 예스피치 음성분할에 의한 병렬 음성인식 장치 및 방법
CN102543068A (zh) * 2010-12-31 2012-07-04 北大方正集团有限公司 语音播放文本信息的方法和装置
US9368104B2 (en) * 2012-04-30 2016-06-14 Src, Inc. System and method for synthesizing human speech using multiple speakers and context
WO2014141054A1 (en) * 2013-03-11 2014-09-18 Video Dubber Ltd. Method, apparatus and system for regenerating voice intonation in automatically dubbed videos
US9318113B2 (en) * 2013-07-01 2016-04-19 Timestream Llc Method and apparatus for conducting synthesized, semi-scripted, improvisational conversations
US9542929B2 (en) * 2014-09-26 2017-01-10 Intel Corporation Systems and methods for providing non-lexical cues in synthesized speech
US10394963B2 (en) * 2015-10-22 2019-08-27 International Business Machines Corporation Natural language processor for providing natural language signals in a natural language output
CN106098056B (zh) * 2016-06-14 2022-01-07 腾讯科技(深圳)有限公司 一种语音新闻的处理方法、新闻服务器及系统
CN106504742B (zh) * 2016-11-14 2019-09-20 海信集团有限公司 合成语音的传输方法、云端服务器和终端设备

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111768756A (zh) * 2020-06-24 2020-10-13 华人运通(上海)云计算科技有限公司 信息处理方法、装置、车辆和计算机存储介质
CN111768756B (zh) * 2020-06-24 2023-10-20 华人运通(上海)云计算科技有限公司 信息处理方法、装置、车辆和计算机存储介质
WO2022065603A1 (ko) * 2020-09-25 2022-03-31 주식회사 딥브레인에이아이 텍스트 기반의 음성 합성 방법 및 장치
KR20220072593A (ko) * 2020-11-25 2022-06-02 주식회사 자이냅스 무음 멜-스펙트로그램을 이용하여 음성 데이터를 생성하는 방법 및 음성 합성 시스템
KR20220072605A (ko) * 2020-11-25 2022-06-02 주식회사 자이냅스 멜-스펙트로그램의 길이에 기초하여 음성 데이터의 참조 구간을 결정하는 방법 및 음성 합성 시스템
KR102395399B1 (ko) * 2021-09-29 2022-05-10 주식회사 인피닉 음성 인식 학습을 위한 음성 데이터 분해 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
KR102408455B1 (ko) * 2021-09-29 2022-06-14 주식회사 인피닉 음성 인식 학습을 위한 음성 데이터 합성 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
WO2024090997A1 (ko) * 2022-10-25 2024-05-02 삼성전자주식회사 감정을 고려하여 합성 음성을 획득하는 전자 장치 및 그 제어 방법

Also Published As

Publication number Publication date
EP3818518A4 (en) 2021-08-11
EP3818518A1 (en) 2021-05-12
CN112771607A (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
KR20200056261A (ko) 전자 장치 및 이의 제어 방법
US11289083B2 (en) Electronic apparatus and method for controlling thereof
US11514886B2 (en) Emotion classification information-based text-to-speech (TTS) method and apparatus
JP6802005B2 (ja) 音声認識装置、音声認識方法及び音声認識システム
EP3489950B1 (en) Response sentence generation apparatus, method and program
CN110838289A (zh) 基于人工智能的唤醒词检测方法、装置、设备及介质
CN108630203B (zh) 语音交互设备及其处理方法和程序
CN111048062A (zh) 语音合成方法及设备
KR20230034423A (ko) 2-레벨 스피치 운율 전송
CN111081280B (zh) 与文本无关的语音情感识别方法及装置、用于识别情感的算法模型的生成方法
CN111696521B (zh) 语音克隆模型的训练方法、可读存储介质和语音克隆方法
JP2022046731A (ja) 音声生成方法、装置、電子機器及び記憶媒体
US20230099732A1 (en) Computing system for domain expressive text to speech
CN113658577A (zh) 一种语音合成模型训练方法、音频生成方法、设备及介质
JP2024508033A (ja) 対話中のテキスト-音声の瞬時学習
JP2024505076A (ja) 多様で自然なテキスト読み上げサンプルを生成する
JP2016045655A (ja) 応答生成方法、応答生成装置及び応答生成プログラム
US11176943B2 (en) Voice recognition device, voice recognition method, and computer program product
CN113963679A (zh) 一种语音风格迁移方法、装置、电子设备及存储介质
López-Ludeña et al. LSESpeak: A spoken language generator for Deaf people
CN113611316A (zh) 人机交互方法、装置、设备以及存储介质
US20220375469A1 (en) Intelligent voice recognition method and apparatus
KR20210051523A (ko) 도메인 자동 분류 대화 시스템
JP2024507603A (ja) オーディオデータの処理方法、装置、電子機器、媒体及びプログラム製品
CN114694633A (zh) 语音合成方法、装置、设备及存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right