KR20200050104A - Tts 서비스 제공 방법 및 이를 위한 중계 서버 - Google Patents

Tts 서비스 제공 방법 및 이를 위한 중계 서버 Download PDF

Info

Publication number
KR20200050104A
KR20200050104A KR1020180132658A KR20180132658A KR20200050104A KR 20200050104 A KR20200050104 A KR 20200050104A KR 1020180132658 A KR1020180132658 A KR 1020180132658A KR 20180132658 A KR20180132658 A KR 20180132658A KR 20200050104 A KR20200050104 A KR 20200050104A
Authority
KR
South Korea
Prior art keywords
tts
cache
request
voice data
server
Prior art date
Application number
KR1020180132658A
Other languages
English (en)
Other versions
KR102304993B1 (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 KR1020180132658A priority Critical patent/KR102304993B1/ko
Publication of KR20200050104A publication Critical patent/KR20200050104A/ko
Application granted granted Critical
Publication of KR102304993B1 publication Critical patent/KR102304993B1/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/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • 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/027Concept to speech synthesisers; Generation of natural phrases from machine-based concepts

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 출원은 TTS 서비스 제공 방법 및 이를 위한 중계 서버에 관한 것으로서, 본 발명의 일 실시예에 의한 TTS 서비스 제공 방법은, 사용자 단말로부터 TTS 요청 메시지를 수신하는 TTS 요청수신단계; 상기 TTS 요청 메시지에 포함된 요청문장을 상기 중계서버 내에 구비된 1차 캐시(cache)에서 검색하는 1차 캐시 검색단계; 상기 1차 캐시 내에 상기 요청문장에 대응하는 음성데이터가 없으면, 2차 캐시가 구비된 캐시 서버로 상기 요청문장에 대한 검색을 요청하는 2차 캐시 검색단계; 상기 2차 캐시 내에 상기 요청문장에 대응하는 음성데이터가 없으면, 합성엔진서버로 상기 요청문장에 대응하는 음성데이터의 합성을 요청하는 음성합성요청단계; 및 상기 1차 캐시, 2차 캐시 및 합성엔진서버 중 어느 하나로부터 상기 음성데이터를 수신하면, 상기 음성데이터에 대응하는 TTS 데이터를 생성하여 상기 사용자 단말로 전송하는 TTS 전송단계를 포함할 수 있다.

Description

TTS 서비스 제공 방법 및 이를 위한 중계 서버 {Method for providing Text-To-Speech service and relay server for the same}
본 출원은 TTS(Text-to-Speech) 서비스 제공 방법 및 이를 위한 중계 서버에 관한 것으로서, 더욱 상세하게는 TTS 서비스의 처리속도 및 처리용량을 향상시킬 수 있는 TTS 서비스 제공 방법 및 이를 위한 중계 서버에 관한 것이다.
최근 음성 합성 기술의 발전과 함께 음성 합성 기술은 각종 음성 안내, 교육 분야 등에 널리 사용되고 있다. 음성 합성은 사람이 말하는 소리와 유사한 소리를 생성해내는 기술로 흔히 TTS(Text To Speech) 시스템으로도 알려져 있다. 음성 합성 기술은 사용자에게 정보를 텍스트나 그림이 아닌 음성 신호로 전달함으로써 운전 중이거나, 맹인인 경우처럼 사용자가 작동하는 기계의 화면을 볼 수 없는 경우에 매우 유용하다. 근래에 들어, 스마트폰, 전자 책 리더, 차량 네비게이션 등 개인 휴대용 장치와 더불어 스마트 TV, 스마트 냉장고 등과 같이 스마트 홈에서 스마트 가정용 장치의 개발과 보급이 활발하게 이루어짐으로써 음성 출력을 위한 음성 합성 기술 및 장치의 필요성도 급속도로 증가하였다.
본 출원은, TTS 서비스의 처리속도 및 처리용량을 향상시킬 수 있는 TTS 서비스 제공 방법 및 이를 위한 중계 서버를 제공하고자 한다.
본 출원은, 효율적인 캐시 활용을 통하여 실시간 TTS 서비스를 제공할 수 있는 TTS 서비스 제공 방법 및 이를 위한 중계 서버를 제공하고자 한다.
본 발명의 일 실시예에 의한 중계서버에서의 TTS(Text to Speech) 서비스 제공 방법은, 사용자 단말로부터 TTS 요청 메시지를 수신하는 TTS 요청수신단계; 상기 TTS 요청 메시지에 포함된 요청문장을 상기 중계서버 내에 구비된 1차 캐시(cache)에서 검색하는 1차 캐시 검색단계; 상기 1차 캐시 내에 상기 요청문장에 대응하는 음성데이터가 없으면, 2차 캐시가 구비된 캐시 서버로 상기 요청문장에 대한 검색을 요청하는 2차 캐시 검색단계; 상기 2차 캐시 내에 상기 요청문장에 대응하는 음성데이터가 없으면, 합성엔진서버로 상기 요청문장에 대응하는 음성데이터의 합성을 요청하는 음성합성요청단계; 및 상기 1차 캐시, 2차 캐시 및 합성엔진서버 중 어느 하나로부터 상기 음성데이터를 수신하면, 상기 음성데이터에 대응하는 TTS 데이터를 생성하여 상기 사용자 단말로 전송하는 TTS 전송단계를 포함할 수 있다.
여기서 상기 TTS 요청메시지는, 상기 TTS 요청메시지를 전송하는 사용자 단말을 식별하기 위한 단말정보, 상기 사용자 단말의 접근권한을 인증하기 위한 인증정보, 상기 사용자 단말이 음성으로 변환하고자 하는 문자들을 포함하는 요청문구, 요청하는 음성데이터에 대응하는 TTS 데이터의 파일명인 요청파일명 및, 요청하는 음성데이터의 재생속도, 음량 또는 음높낮이(pitch)에 대한 합성옵션 중 적어도 어느 하나를 포함할 수 있다.
여기서 상기 TTS 요청수신단계는, 상기 TTS 요청 메시지에 포함된 요청문구를 각각의 문장으로 분리하여, 복수의 요청문장으로 구별할 수 있다.
여기서 상기 1차 캐시 검색 단계는, 상기 TTS 요청 메시지에 상기 요청 파일명이 포함되면, 상기 1차 캐시에서 상기 요청 파일명과 동일한 TTS 데이터를 우선적으로 검색하고, 상기 요청 파일명과 동일한 TTS 데이터가 없으면 상기 요청문장을 검색할 수 있다.
여기서 상기 1차 캐시 검색 단계는, 상기 TTS 요청 메시지에 상기 합성옵션이 포함되면, 상기 1차 캐시에서 상기 요청문장과 함께 상기 합성옵션까지 동일한 음성데이터를 우선적으로 검색하고, 검색결과 상기 요청문장과 합성옵션이 동시에 동일한 음성데이터가 없으면, 상기 합성옵션은 제외하고 상기 요청문장이 동일한 음성 데이터를 제공하도록 요청할 수 있다.
여기서 상기 2차 캐시 검색 단계는, 상기 1차 캐시 내에 상기 요청문장에 대응하는 음성데이터가 없으면, 상기 캐시 서버로 상기 요청문장과 합성옵션을 전달하여, 상기 2차 캐시에서 상기 요청문장과 함께 상기 합성옵션까지 동일한 음성데이터를 우선적으로 검색하고, 검색결과 상기 요청문장과 합성옵션이 동시에 동일한 음성데이터가 없으면, 상기 합성옵션은 제외하고 상기 요청문장이 동일한 음성 데이터를 제공하도록 요청할 수 있다.
여기서 상기 합성엔진서버는, 딥러닝으로 학습한 TTS 알고리즘을 이용하여, 상기 요청문장에 대응하는 음성데이터를 생성하는 것일 수 있다.
여기서 상기 TTS 전송단계는, 상기 1차 캐시, 2차 캐시 및 상기 합성엔진서버 중 어느 하나로부터 상기 음성데이터를 수신하면, 캐시관리규칙에 따라 상기 1차 캐시 및 2차 캐시를 업데이트하는 캐시 업데이트단계; 및 상기 수신한 음성데이터에 상기 TTS 요청 메시지에 포함된 합성옵션에 대응하는 후처리작업을 수행하여, 상기 TTS 데이터를 생성하는 후처리단계를 포함할 수 있다.
여기서 상기 캐시관리규칙은, 상기 음성데이터를 수신하면, 상기 1차 캐시 내에 상기 음성데이터의 호출시점 또는 호출횟수에 따른 우선순위를 업데이트하여 저장하고, 상기 1차 캐시 내에서 한계기한 이상 호출되지 않거나, 또는 상기 우선순위가 설정순위 이하인 음성데이터는 2차 캐시로 이동시키는 것일 수 있다.
또한, 상기 캐시관리규칙은 상기 2차 캐시 내에서 최후기한 이상 호출되지 않거나, 호출순서에 따른 우선순위가 퇴출순위 이하인 음성데이터는 삭제하는 것일 수 있다.
여기서 상기 캐시 업데이트 단계는, 복수의 합성엔진서버들이 연결된 라우터를 통하여 상기 합성엔진서버가 브로드캐스팅(broadcasting)하는 상기 음성데이터를 수신하며, 상기 라우터를 통하여 연결된 복수의 중계서버들은 상기 음성데이터를 이용하여 상기 제1 캐시를 각각 업데이트하는 것일 수 있다.
또한, 상기 캐시 업데이트 단계는 상기 복수의 중계서버들과 연동하도록 연결된 상기 캐시서버를 이용하여, 각각의 중계서버들이 수신하는 상기 음성데이터를 상기 캐시관리규칙에 따라 상기 캐시서버에 업데이트하는 것일 수 있다.
여기서 상기 후처리단계는, 상기 합성옵션에 따라 상기 음성데이터의 재생속도, 음량 또는 음높낮이를 설정하여 상기 TTS 데이터를 생성하고, 상기 생성한 TTS 데이터의 파일명을 설정할 수 있다.
본 발명의 일 실시예에 의하면, 하드웨어와 결합되어 상술한 중계 서버에서의 TTS 서비스 제공 방법을 실행하기 위하여 매체에 저장된 컴퓨터 프로그램이 존재할 수 있다.
본 발명의 일 실시예에 의한 TTS(Text to Speech) 서비스를 제공하는 중계서버는, 사용자 단말로부터 TTS 요청 메시지를 수신하는 TTS 요청수신부; 상기 TTS 요청 메시지에 포함된 요청문장을 1차 캐시(cache)에서 검색하는 1차 캐시 검색부; 상기 1차 캐시 내에 상기 요청문장에 대응하는 음성데이터가 없으면, 2차 캐시가 구비된 캐시 서버로 상기 요청문장에 대한 검색을 요청하는 2차 캐시 검색부; 상기 2차 캐시 내에 상기 요청문장에 대응하는 음성데이터가 없으면, 합성엔진서버로 상기 요청문장에 대응하는 음성데이터의 합성을 요청하는 음성합성요청부; 및 상기 1차 캐시, 2차 캐시 및 합성엔진서버 중 어느 하나로부터 상기 음성데이터를 수신하면, 상기 음성데이터에 대응하는 TTS 데이터를 생성하여 상기 사용자 단말로 전송하는 TTS 전송부를 포함할 수 있다.
본 발명의 일 실시예에 의한 중계서버는, 프로세서; 및 상기 프로세서에 커플링된 메모리를 포함하는 것으로서, 상기 메모리는 상기 프로세서에 의하여 실행되도록 구성되는 하나 이상의 모듈을 포함하고, 상기 하나 이상의 모듈은, 사용자 단말로부터 TTS 요청 메시지를 수신하고, 상기 TTS 요청 메시지에 포함된 요청문장을 1차 캐시(cache)에서 검색하며, 상기 1차 캐시 내에 상기 요청문장에 대응하는 음성데이터가 없으면, 2차 캐시가 구비된 캐시 서버로 상기 요청문장에 대한 검색을 요청하고, 상기 2차 캐시 내에 상기 요청문장에 대응하는 음성데이터가 없으면, 합성엔진서버로 상기 요청문장에 대응하는 음성데이터의 합성을 요청하며, 상기 1차 캐시, 2차 캐시 및 합성엔진서버 중 어느 하나로부터 상기 음성데이터를 수신하면, 상기 음성데이터에 대응하는 TTS 데이터를 생성하여 상기 사용자 단말로 전송하는, 명령어를 포함할 수 있다.
덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시형태를 참조하여 보다 상세하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 의한 TTS 서비스 제공 방법 및 이를 위한 중계 서버에 의하면, 캐시(cache)를 활용하여 합성엔진서버에 대한 음성합성요청을 최소화할 수 있으므로, 효율적으로 TTS 서비스를 제공할 수 있다.
본 발명의 일 실시예에 의한 TTS 서비스 제공 방법 및 이를 위한 중계 서버에 의하면, 합성엔진서버는 생성한 음성데이터를 브로드캐스팅(broadcasting)하여 복수의 중계서버들에 공유할 수 있으므로, 동일한 음성합성에 대한 중복요청을 방지할 수 있다.
또한, 본 발명의 일 실시예에 의한 TTS 서비스 제공 방법 및 이를 위한 중계 서버에 의하면, 캐시 서버와 합성엔진서버를 각각 라우터(router)를 이용하여 연결하므로, 증설시 각각의 서버에 대한 IP 주소를 추가로 설정하는 등의 방식으로 용이하게 서버용량을 확장할 수 있다.
도1은 본 발명의 일 실시예에 의한 TTS 서비스 제공 시스템을 나타내는 블록도이다.
도2 및 도3은 본 발명의 일 실시예에 의한 중계서버를 나타내는 블록도이다.
도4는 본 발명의 일 실시예에 의한 TTS 요청 메시지를 나타내는 예시도이다.
도5는 본 발명의 일 실시예에 의한 TTS 서비스 제공 시스템의 동작을 나타내는 타이밍도이다.
도6 및 도7은 본 발명의 다른 실시예에 의한 TTS 서비스 제공 시스템을 나타내는 블록도이다.
도8 및 도9는 본 발명의 일 실시예에 의한 TTS 서비스 제공 방법을 나타내는 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 명세서에 기재된 "~부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
도1은 본 발명의 일 실시예에 의한 TTS 서비스 제공 시스템을 나타내는 블록도이다.
도1을 참조하면 본 발명의 일 실시예에 의한 TTS 서비스 제공 시스템은 사용자 단말(1), 중계서버(100), 캐시 서버(200) 및 합성엔진서버(300)를 포함할 수 있다.
이하 도1을 참조하여 본 발명의 일 실시예에 의한 TTS 서비스 제공 시스템을 설명한다.
사용자 단말(1)은 유선 또는 무선 통신망을 이용하여 중계서버(100) 등과의 통신을 수행할 수 있다. 사용자 단말(1)은 유선 또는 무선 통신망을 통해 데이터 통신을 수행할 수 있으며, 사용자 단말(1)은 정보의 송수신을 위한 통신모듈, 프로그램 및 프로토콜을 저장하는 메모리, 각종 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비할 수 있다.
구체적으로, 사용자 단말(1)은 스마트 폰(smart phone), 태블릿 PC(Tablet PC), 노트북, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), MP3 Player, 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)) 등의 무선 통신 기술이 적용되는 이동 단말기 또는 PC, IPTV, 스마트 TV, 음성인식 스피커 등과 같이 휴대하기 어려운 디지털 기기일 수 있다.
사용자 단말(1)은 유선 또는 무선 통신망을 이용하여 중계서버(100)로 TTS(Text to Speech) 서비스를 요청할 수 있으며, 이때 사용자 단말(1)은 음성으로 변환하고자 하는 요청문구 등을 포함하는 TTS 요청 메시지를 중계서버(100)로 전송할 수 있다. 중계서버(100)는 요청문구에 대응하는 음성을 wave 파일 등의 형태로 포함하는 TTS 데이터를 추출할 수 있으며, 추출한 TTS 데이터를 사용자 단말(1)로 전송할 수 있다.
예를들어, 사용자 단말(1)이 음성인식 스피커인 경우, 사용자는 음성으로 현재 날씨를 문의할 수 있다. 이 경우 음성인식 스피커는 사용자의 음성을 텍스트(text)로 인식하여 현재 날씨에 대응하는 응답을 인터넷 등에서 검색할 수 있으며, 텍스트로된 검색결과를 도출할 수 있다. 다만, 사용자가 문의한 현재 날씨에 대한 응답은 다시 음성으로 제공할 필요가 있으므로, 음성인식 스피커는 텍스트로된 검색결과를 다시 음성으로 변환할 필요가 있다. 여기서, 음성인식 스피커 내에 TTS 서비스 제공을 위한 모듈 등을 모두 포함하는 것도 가능하지만, TTS 서비스를 제공하는 중계서버(100)에게 요청하는 것도 가능하다. 즉, 사용자 단말(1)은 중계서버(100)에게 TTS 서비스를 요청할 수 있으며, 중계서버(100)가 제공하는 TTS 데이터를 이용하여, 현재 날씨에 대한 응답을 음성으로 제공할 수 있다. 여기서는 사용자 단말(1)이 음성인식 스피커인 경우를 예로들어 설명하였으나, 이외에도 다양한 종류의 사용자 단말(1)에 적용가능하다. 또한, 실시예에 따라서는 ARS(Automatic Response Service) 전화상담 등에도 본 발명의 일 실시예에 의한 TTS 서비스 제공 시스템을 적용할 수 있으며, 이 경우 사용자 단말(1)은 ARS 서버 등으로 확장될 수 있다.
중계서버(100)는 사용자 단말(1)로부터 TTS 서비스에 대한 요청을 수신할 수 있으며, 수신한 요청에 대응하여 합성엔진서버(300)에게 음성합성을 요청할 수 있다. 또한, 합성엔진서버(300)로부터 제공받은 음성데이터를 사용자 단말(1)이 요구하는 합성옵션에 따라 후처리하여 TSS 데이터를 생성할 수 있으며, 생성한 TSS 데이터를 사용자 단말(1)로 제공할 수 있다. 즉, 중계서버(100)는 사용자 단말(1)과 합성엔진서버(300) 사이에서, 사용자 단말(1)의 TTS 서비스 요청과 합성엔진서버(300)가 생성한 음성데이터를 중계하는 기능을 수행할 수 있다.
합성엔진서버(300)는 성우들이 녹음한 코퍼스(corpus)를 합성하는 등의 방식으로 텍스트에 대응하는 음성데이터를 생성할 수 있으며, 실시예에 따라서는 딥러닝 등의 인공지능을 활용하는 것도 가능하다. 즉, 텍스트와 그에 대응하는 음성데이터를 딥러닝하여 음소에 대한 데이터 가중치를 계산하고, 데이터 가중치를 활용하여 음성합성을 수행할 수 있다. 이 경우, 기존의 방식에 비하여 녹음데이터의 수를 줄일 수 있으나, 많은 계산량이 필요하므로 음성합성에 소요되는 시간이 증가할 수 있으며, 높은 계산성능의 CPU 또는 GPU 등을 활용하여야 하므로 합성엔진서버(300)의 구축비용이 증가할 수 있다.
다만, 녹음에 소요되는 시간과 비용 등을 고려하면, 딥러닝 등의 인공지능을 이용하는 합성엔진서버(300)를 활용하는 것이 유리할 수 있다. 따라서, 캐시(cache) 등을 활용하여 합성엔진서버(300)에 대한 음성합성요청을 최소화하는 등의 방식으로, TTS 서비스 제공 시스템을 구축할 필요가 있다.
캐시는 합성엔진서버(300)에서 생성한 음성데이터를 보관하는 임시저장소로, 활용빈도가 높거나 최근에 사용된 음성데이터들이 저장될 수 있다. 따라서, 사용자 단말(1)이 요청한 요청문장에 대응하는 음성데이터가 캐시 내에 저장된 경우, 중계서버(100)는 합성엔진서버(300)로 음성합성을 요청하는 대신에, 캐시에 저장된 음성데이터를 추출하여 사용자 단말(1)에 제공할 수 있다. 이 경우, 합성엔진서버(300)의 음성합성을 생략할 수 있으므로, TTS 서비스에 대한 처리속도를 획기적으로 향상시키는 것이 가능하다. 또한, 캐시를 활용하면 합성엔진서버(300)의 동작이 없이도 각각의 TTS 서비스 요청에 대한 처리를 수행할 수 있으므로, 처리용량을 향상시킬 수 있다.
여기서, TTS 서비스 제공 시스템 내의 캐시를 다양한 방법으로 포함시킬 수 있으며, 실시예에 따라서는 중계서버(100) 내에 1차 캐시를 포함하고, 캐시서버(200)에 2차 캐시를 포함하도록 하여, 캐시를 계층적으로 관리하는 것도 가능하다. 구체적으로, 캐시의 효율적인 활용을 위하여, 본 발명의 일 실시예에 의한 TTS 서비스 제공 시스템은, 도1에 도시한 바와 같이, 중계서버(100), 캐시서버(200), 합성엔진서버(300)들을 연결할 수 있다. 즉, 라우터(router, r1)을 이용하여 복수의 사용자 단말(1)들이 요청하는 TTS 서비스 요청을 복수의 중계서버(100)들로 분배하여 전송할 수 있으며, 라우터(r2)를 이용하여 캐시서버(200)가 복수의 중계서버(100)들과 연동되도록 연결할 수 있다. 여기서, 합성엔진서버(300)가 전송하는 정보는 라우터(r2)를 이용하여 중계서버(100)와 캐시서버(200)들에게 브로드캐스팅(broadcasting)되도록 연결할 수 있다. 이 경우, 합성엔진서버(300)가 생성한 음성데이터는 중계서버(100)와 캐시서버(200)에 각각 공유되므로, 합성엔진서버(300)들에게 동일한 음성합성을 중복요청하는 것을 방지할 수 있다. 또한, 라우터(r2)를 통하여 연결되므로, 캐시 서버(200) 또는 합성엔진서버(300)의 증설시, 증설되는 서버에 대한 IP 주소를 추가로 설정하는 등의 방식으로 서버 용량을 용이하게 확장하는 것이 가능하다.
실시예에 따라서는, 도6에 도시한 바와 같이 중계서버(100), 캐시서버(200), 합성엔진서버(300)들을 연결하는 것도 가능하다. 즉, 캐시서버(200)가 라우터(r2)를 통하여 연결되는 대신에, 중계서버(100)들과 직접 연결되도록 할 수 있다. 또 다른 실시예에 의하면, 도7에 도시한 바와 같이, 중계서버(100)와 1차 캐시서버(210)를 분리하는 것도 가능하다. 이 경우, 중계서버(100)는 웹 서버에 해당하며, TTS 서비스 제공 시스템 내에서 보안이나 부하 분산(load balancing) 등의 동작을 수행할 수 있다. 또한, 중계서버(100)는 1차 캐시서버(210)와 2차 캐시서버(200)에 순차적으로 요청문구에 대한 음성데이터를 요청할 수 있다.
도2는 본 발명의 일 실시예에 의한 중계서버를 나타내는 블록도이다.
도2를 참조하면 본 발명의 일 실시예에 의한 중계서버(100)는 TTS 요청수신부(110), 1차 캐시 검색부(120), 2차 캐시 검색부(130), 음성합성요청부(140) 및 TTS 전송부(150)를 포함할 수 있다.
이하 도2를 참조하여 본 발명의 일 실시예에 의한 중계서버(100)를 설명한다.
TTS 요청수신부(110)는 사용자 단말(1)로부터 TTS 요청 메시지를 수신할 수 있다. 중계서버(100)는 TTS 요청수신부(110)에 입력된 TTS 요청 메시지를 통하여 사용자 단말(1)이 요청하는 TTS 서비스를 인식할 수 있다. 여기서, TTS 요청 메시지는 미리 설정된 양식을 가질 수 있으며, 사용자 단말(1)은 미리 설정된 양식의 TTS 요청 메시지를 전송하여 TTS 서비스를 요청할 수 있다.
구체적으로, TTS 요청메시지는 도4(a)에 도시한 바와 같이, 단말정보, 인증정보, 요청문구, 요청파일명, 합성옵션 등을 포함할 수 있다. 여기서 단말정보는 "요청 단말/요청서버 정보(모델명, SN 등)"에 대응하는 것으로, TTS 요청메시지를 전송하는 사용자 단말(1)을 식별하기 위한 것일 수 있다. 예를들어, 도4(b)에 도시한 바와 같이, 사용자 단말(1)은 MD-T1000의 모델명을 가지는 것으로, SN(Serial Number)가 10001234일 수 있다. 따라서, TTS 요청수신부(110)는 단말정보를 이용하여 TTS 요청메시지를 전송한 사용자 단말(1)을 특정할 수 있으며, 이후 대응하는 사용자 단말(1)로 TTS 데이터를 전송할 수 있다.
인증정보는 사용자 단말(1)의 중계서버(100)에 대한 접근권한을 인증하기 위한 것으로, 실시예에 따라서는 암호키와 공개키를 이용하는 비대칭키 암호(asymmetric-key algorithm)를 이용하여 TTS 요청 메시지를 전송한 사용자 단말(1)이 중계서버(100)로 TTS 서비스를 요청할 수 있는 권한을 가지는 사용자 단말(1)에 해당하는지를 검증할 수 있다. 이외에도, 등록된 사용자 단말(1)의 MAC 주소(Media Access Control address)나 SN, 사용자의 ID(Identification) 등을 활용하는 것도 가능하다. 또한, 인증정보는 사용자 단말(1)이 인증요청한 시간정보를 더 포함하여, 접근권한을 부여한 기한만료 등을 판별하는 것도 가능하다. 도4(b)를 참조하면, 사용자 단말(1)이 인증정보로 공개키인 "xAqf2f4m"를 제공할 수 있으며, 인증을 요청하는 시간정보인 "20180611093522425"를 포함하여 전송할 수 있다.
요청문구는 사용자 단말(1)이 음성으로 변환하고자 하는 텍스트(text)에 해당하는 것일 수 있다. 즉, 도4(b)에 도시한 바와 같이, 사용자 단말(1)은 "오늘의 서초구 날씨입니다. 화창한 날씨에 최저 10도 최고19도 입니다."의 요청문구를 음성으로 변환할 것을 요청할 수 있다. 실시예에 따라서는, 요청문구에 복수의 문장이 포함될 수 있으며, 텍스트에 대한 합성 음성의 품질을 높이기 위해서는 각각의 문장으로 분할하는 것이 유리할 수 있다. 따라서, TTS 요청수신부(110)는 TTS 요청 메시지로부터 수신한 요청문구로부터 각각의 문장들을 분리할 수 있으며, 분리한 각각의 문장들을 요청문장으로 각각 구별할 수 있다. 이후, 구별된 각각의 요청문장들에 대하여 개별적으로 TTS 요청할 수 있다. 도4(b)에서 예시한 요청문구의 경우, "오늘의 서초구 날씨입니다."와 "화창한 날씨에 최저 10도 최고19도 입니다."의 2개의 문장으로 분리하여 각각을 요청문장으로 구별할 수 있다.
요청파일명은 합성엔진서버(300) 등에서 미리 생성한 TTS 데이터의 파일명 등일 수 있다. 예를들어, 특정한 조건에서 동일하게 사용되는 음성데이터나 특정 어플리케이션 내에서 빈번하게 사용되는 음성데이터 등이 존재할 수 있다. 따라서, 이러한 음성데이터에 대하여는 미리 생성해둘 수 있으며, 파일명도 미리 설정해둘 수 있다. 실시예에 따라서는, 사용자 단말(1)이 해당 음성데이터의 파일명을 미리 알고 있을 수 있으며, 이 경우 사용자 단말(1)은 TTS 데이터의 파일명을 직접 입력하여 해당 파일명에 해당하는 TTS 데이터를 요청할 수 있다. 즉, 정확하게 TTS 데이터의 파일명으로 검색하도록 하여, 매번 요청문구를 추출하여 음성데이터를 합성하거나 캐시에서 검색할 필요없이, 신속하고 정확하게 해당하는 TTS 데이터를 추출하도록 할 수 있다. 다만, 도4(b)에 도시한 바와 같이 요청파일명을 별도로 설정하지 않는 경우나 요청한 파일이 없는 경우에는, 요청문구를 이용하여 검색하도록 할 수 있다.
합성옵션은 생성한 음성데이터의 재생속도, 음량 또는 음높낮이(pitch)에 대한 요청사항일 수 있다. 즉, 동일한 문장이라도 각각의 경우에 따라 재생속도나 음량, 음높낮이 등을 조절할 필요가 있을 수 있다. 따라서, 합성옵션을 미리 설정하여, 동일한 음성데이터라도 각각의 특성 등은 상이하게 설정하는 것도 가능하다. 도4에 도시한 바와 같이, "합성 언어"로"KO_KR"를 선택하여 한국어 문자를 한국어로 발음한 음성데이터를 요청할 수 있으며, "목소리 ID"로 "1011"를 선택할 수 있다. 여기서 "목소리 ID"는 목소리의 종류로, 각각의 사람들마다 음색 등 특징이 상이하므로, 남여, 연령대, 특정인물 등에 따라 다양한 종류로 발화한 음성데이터를 지정할 필요가 있다. 따라서, 각각의 목소리의 종류에 대응하는 일련번호가 존재할 수 있으며, 여기서는 "1011"에 대응하는 목소리로 생성하도록 요청하는 것일 수 있다. 또한, 목소리의 속도나 높이(pitch), 볼륨(음량) 등을 미리 설정된 기준값을 기준으로 빠르거나 느린 정도를 설정하는 것도 가능하다. 도4(b)에 도시한 바와 같이, 속도와 볼륨을 기준(100%)보다 10% 빠르게 지정할 수 있으며, 소리높이는 기준과 동일하게 하는 방식으로 설정할 수 있다.
한편, TTS 요청수신부(110)에서 TTS 요청메시지를 수신하면, 중계서버(100)는 수신한 TTS 요청메시지에 대응하는 요청문장들을 캐시에서 검색할 수 있다. 즉, 합성엔진서버(300)로 음성합성을 요청하기 전에, 먼저 캐시 내에 동일한 요청문장이 존재하는지를 확인할 수 있다. 여기서, 도1에 도시한 바와 같이, 중계서버(100)는 1차 캐시를 포함할 수 있으며, 캐시서버(200)는 2차 캐시를 포함할 수 있다. 즉, 본 발명의 일 실시예에 의한 TTS 서비스 제공 시스템은 1차 캐시와 2차캐시를 분리하여 계층적으로 캐시를 관리할 수 있다.
1차 캐시 검색부(120)는 TTS 요청 메시지에 포함된 요청문장을 1차 캐시에서 먼저 검색할 수 있다. 즉, 1차 캐시 검색부(120)는 중계서버(100)에 포함된 1차 캐시에서 먼저 요청문장을 검색할 수 있으며, 1차 캐시에서 요청문장에 대응하는 음성데이터가 검색되지 않으면 2차 캐시 검색부(130)에게 2차 캐시에서 검색하도록 요청할 수 있다.
1차 캐시에서 대응하는 음성데이터가 검색되면, 1차 캐시 검색부(120)는 2차 캐시로 추가적인 캐시 검색 등을 수행하지 않고 TTS 전송부(150)로 검색된 음성데이터를 전송할 수 있다. 1차 캐시는 새로운 음성데이터가 입력되면 1차 캐시 내에 저장하고, 기존에 1차 캐시에 저장된 음성데이터가 입력되면 해당 음성데이터에 대한 호출횟수를 증가시키거나 호출시간을 업데이트할 수 있다. 이후, 1차 캐시 내에 저장공간이 부족한 경우에는, 호출횟수가 낮거나 호출시간이 오래된 음성데이터를 삭제하고 새로운 음성데이터를 저장할 수 있다. 여기서, 1차 캐시에는 TTS 서비스 제공 시스템 내에서 가장 빈번하게 요청되는 음성메시지 또는 최근에 요청된 음성메시지가 저장되어 있을 수 있다.
한편, 실시예에 따라서는, TTS 요청 메시지에 요청 파일명이 포함될 수 있다. 이 경우, 1차 캐시에서 요청 파일명과 동일한 TTS 데이터를 우선적으로 검색할 수 있다. 즉, 사용자 단말(1)이 요청 파일명으로 지정해서 요청하는 TTS 데이터의 경우, 빈번하게 사용되는 일정한 문구일 수 있다. 이 경우, 음성합성와 함께 음성 데이터에 대한 후처리도 제외할 수 있으므로, TTS 요청 메시지 내에 요청 파일명이 포함되는 경우를 우선적으로 검색하도록 할 수 있다. 이후, 요청 파일명이 존재하지 않는 경우에는, TTS 요청 메시지에 포함된 요청 문장을 캐시 내에서 검색할 수 있다.
또한, 실시예에 따라서는, TTS 요청 메시지에 합성옵션이 포함될 수 있으며, 이 경우 1차 캐시 검색부(120)는 1차 캐시에서 요청문장과 함께 합성옵션까지 동일한 음성데이터를 우선적으로 검색할 수 있다. TTS 요청 메시지에 합성옵션이 포함된 경우에는, 사용자 단말(1)의 합성옵션을 만족하기 위하여 추가적인 후처리 공정을 수행할 필요가 있다. 여기서, 합성옵션이 동일하여 후처리 공정의 제외가 가능하면 속도 등의 측면에서 유리하므로, 요청문장과 함께 합성옵션까지 동일한 음성데이터를 우선적으로 검색할 수 있다. 다만, 요청문장과 합성옵션이 동시에 동일한 음성데이터가 없는 경우에는, 합성옵션은 제외하고, 요청문장이 동일한 음성 데이터를 검색할 수 있다.
2차 캐시 검색부(130)는 1차 캐시 내에 요청문장에 대응하는 음성데이터가 없으면, 2차 캐시가 구비된 캐시 서버(200)로 요청문장에 대한 검색을 요청할 수 있다. 즉, 1차적으로 1차 캐시를 확인하여 요청문장에 대응하는 음성데이터를 검색할 수 있으며, 1차 캐시 내에서 검색되지 않는 경우에는 2차적으로 2차 캐시를 검색할 수 있다. 여기서, 1차 캐시 내에 요청문장에 대응하는 음성데이터가 없으면, 캐시 서버(200)로 요청문장과 합성옵션을 전달할 수 있다. 이 경우 캐시 서버(200)는 2차 캐시에서 요청문장과 함께 합성옵션까지 동일한 음성데이터를 우선적으로 검색할 수 있다. 다만, 요청문장과 합성옵션이 동시에 동일한 음성데이터가 없으면, 합성옵션은 제외하고 요청문장이 동일한 음성 데이터를 검색할 수 있다.
여기서, 2차 캐시는 캐시서버(200) 내에 위치하는 것이므로, 2차 캐시 검색부(130)는 캐시서버(200)에게 검색을 요청할 수 있으며, 캐시서버(200)는 2차 캐시 검색부(130)의 요청에 대응하여 검색결과를 제공할 수 있다. 즉, 동일한 음성데이터가 존재하면 2차 캐시 검색부(130)로 음성데이터를 제공할 수 있으며, 동일한 음성데이터가 존재하지 않으면 대응하는 검색결과가 없음을 2차 캐시 검색부(130)로 알릴 수 있다. 2차 캐시 검색부(130)는 각각의 캐시서버(200)들과 연결될 수 있으며, 캐시서버(200)들과의 통신을 수행할 수 있다. 여기서 캐시 서버(200)는 복수의 중계서버(100)들과 연동되어 2차 캐시를 저장하고 검색할 수 있도록 연결될 수 있다.
음성합성요청부(140)는 2차 캐시 내에 요청문장에 대응하는 음성데이터가 없으면, 합성엔진서버(300)로 요청문장에 대응하는 음성데이터의 합성을 요청할 수 있다. 여기서, 합성엔진서버(300)는 딥러닝으로 학습한 TTS 알고리즘을 이용할 수 있으며, 이를 통하여 요청문장에 대응하는 음성데이터를 생성할 수 있다. 즉, 1차 캐시 및 2차 캐시에 대응하는 음성데이터가 모두 없는 경우에 한하여 합성엔진서버(300)로 음성데이터의 합성을 요청할 수 있다. 합성엔진서버(300)는 음성합성요청부(140)가 요청하는 음성데이터를 생성하여, 음성합성요청부(140)로 제공할 수 있다.
TTS 전송부(150)는 수신한 음성데이터에 대응하는 TTS 데이터를 생성하여 사용자단말(1)로 전송할 수 있다. TTS 전송부(150)는 1차 캐시, 2차 캐시 또는 합성엔진서버(300)로부터 음성데이터를 수신할 수 있으며, 수신한 음성데이터를 가공하여 TTS 데이터를 생성할 수 있다. 여기서, 요청문구를 복수개의 문장으로 분할한 경우에는 각각의 생성한 문장데이터를 합쳐서 TTS 데이터를 생성할 수 있으며, 이후 생성한 TTS 데이터를 사용자 단말(1)로 전송할 수 있다. 사용자 단말(1)은 TTS 데이터를 이용하여 요청문구에 대응하는 음성을 출력하여 사용자에게 제공할 수 있다. TTS 전송부(150)는 수신한 음성데이터를 사용자 단말(1)에 전송하는 이외에, 1차 캐시와 2차 캐시를 업데이트할 수 있으며, 수신한 음성데이터에 대한 후처리를 수행하여 TTS 데이터를 생성하는 것도 가능하다. 구체적으로, 도2에 도시한 바와 같이, TTS 전송부(150)는 캐시 업데이트부(151) 및 후처리부(152)를 더 포함할 수 있다.
캐시 업데이트부(151)는 1차 캐시, 2차 캐시 또는 합성엔진서버(300) 등으로부터 음성데이터를 수신하면, 캐시관리규칙에 따라 1차 캐시 및 2차 캐시를 업데이트할 수 있다. 구체적으로, 캐시 업데이트부(151)는 음성데이터를 수신하면, 해당 음성데이터를 1차 캐시 내에 음성데이터의 호출시점을 업데이트하거나, 또는 호출횟수에 따른 우선순위를 업데이트하여 저장할 수 있다. 예를들어, 호출시점으로부터 한계기한 이상 호출되지 않은 음성데이터를 2차 캐시로 이동시키는 1차 캐시의 경우, 수신한 음성데이터에 대한 최신 호출시점을 업데이트하여, 해당 음성데이터의 2차 캐시로의 이동시점을 연장할 수 있다. 또한, 호출횟수에 따른 우선순위가 설정순위 이하인 음성데이터를 2차 캐시로 이동시키는 1차 캐시의 경우, 수신한 음성데이터에 대한 호출횟수와, 호출횟수에 따른 우선순위를 재설정하여 업데이트할 수 있다.
TTS 전송부(150)가 수신하는 음성데이터는 사용자 단말(1)이 요청한 음성데이터에 해당하므로, 최근에 호출된 음성데이터에 해당한다. 최근에 호출된 음성데이터는 다시 호출될 가능성이 높으므로, 1차 캐시 내에 업데이트하여 해당 음성데이터를 캐시 내에 유지하도록 할 수 있다.
또한, 2차 캐시 내에서도 최후기한 이상 호출되지 않거나 호출횟수에 따른 우선순위가 퇴출순위 이하인 음성데이터는 삭제하여 제거할 수 있다. 즉, 1차 캐시에서 2차 캐시로 이동한 이후에도, 최후기한 이상 호출되거나 우선순위가 밀려난 음성데이터의 경우, 다시 호출되지 않을 가능성이 높은 것으로 판단할 수 있다. 따라서, 해당하는 음성데이터를 2차 캐시에서 제거하여 다른 음성데이터가 캐시 내에 대체하여 저장되도록 유도할 수 있다.
한편, 도1에 도시한 바와 같이, 복수의 합성엔진서버(300)들은 하나의 라우터(r2)를 통하여 연결될 수 있으며, 라우터(r2)에 연결된 각각의 중계서버(100)들은 합성엔진서버(300)에서 브로드캐스팅하는 음성데이터를 공유하도록 연결될 수 있다. 따라서, 각각의 중계서버(100)들의 캐시업데이트부(151)는, 복수의 합성엔진서버(300)들이 연결된 라우터(r2)를 통하여 합성엔진서버(300)가 브로드캐스팅(broadcasting)하는 음성데이터를 수신할 수 있다. 이 경우, 라우터(r2)를 통하여 연결되는 복수의 중계서버(100)들은 각각 수신한 음성데이터를 이용하여 제1 캐시를 업데이트할 수 있다. 이를 통하여, 복수의 중계서버(100)들은 동일하게 업데이트되어 공유할 수 있다. 또한, 캐시서버(200)는 복수의 중계서버(100)들과 연동하도록 연결될 수 있으며, 각각의 중계서버(100)들은 수신하는 음성데이터를 캐시관리규칙에 따라 캐시서버(200)에 개별적으로 업데이트할 수 있다.
후처리부(152)는 수신한 음성데이터에 TTS 요청 메시지에 포함된 합성옵션에 대응하는 후처리작업을 수행할 수 있다. 즉, 후처리부(152)는 합성옵션에 대한 처리가 완료된 TTS 데이터를 생성할 수 있다. 구체적으로, 후처리부(152)는 합성옵션에 따라 음성데이터의 재생속도, 음량 또는 음높낮이 등을 설정하여 TTS 데이터를 생성할 수 있다. 예를들어, 도4(b)에 도시한 바와 같이, 속도와 볼륨을 기준보다 10% 빠르게 지정하고, 소리높이는 기준과 동일하게 하는 등 합성옵션에 따라, 음성데이터에 대한 후처리를 적용하여 TTS 데이터를 생성할 수 있다. 추가적으로, 후처리부(152)는 생성한 TTS 데이터에 대한 파일명을 설정하여, 파일로 저장하는 것도 가능하다. 예를들어, 도4의 "단순 기록용 정보"인 "20180705_1000_2_5"를 파일명으로 이용하여 저장하는 것도 가능하다. 또한, 요청문구를 복수개의 문장으로 분할한 경우에는, 후처리부(152)가 각각의 생성한 문장데이터를 합쳐서 TTS 데이터로 생성할 수 있다.
한편, 도3에 도시한 바와 같이, 본 발명의 일 실시예에 의한 중계서버(100)는, 프로세서(10), 메모리(40) 등의 물리적인 구성을 포함할 수 있으며, 메모리(40) 내에는 프로세서(10)에 의하여 실행되도록 구성되는 하나 이상의 모듈이 포함될 수 있다. 구체적으로, 하나 이상의 모듈에는, TTS 요청수신모듈, 1차캐시 검색모듈, 2차캐시 검색모듈, 음성합성요청모듈 및 TTS 전송모듈 등이 포함될 수 있다.
프로세서(10)는, 다양한 소프트웨어 프로그램과, 메모리(40)에 저장되어 있는 명령어 집합을 실행하여 여러 기능을 수행하고 데이터를 처리하는 기능을 수행할 수 있다. 주변인터페이스부(30)는, 중계 서버(100)의 입출력 주변 장치를 프로세서(10), 메모리(40)에 연결할 수 있으며, 메모리 제어기(20)는 프로세서(10)나 중계 서버(100)의 구성요소가 메모리(40)에 접근하는 경우에, 메모리 액세스를 제어하는 기능을 수행할 수 있다. 실시예에 따라서는, 프로세서(10), 메모리 제어기(20) 및 주변인터페이스부(30)를 단일 칩 상에 구현하거나, 별개의 칩으로 구현할 수 있다.
메모리(40)는 고속 랜덤 액세스 메모리, 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 비휘발성 메모리 등을 포함할 수 있다. 또한, 메모리(40)는 프로세서(10)로부터 떨어져 위치하는 저장장치나, 인터넷 등의 통신망을 통하여 엑세스되는 네트워크 부착형 저장장치 등을 더 포함할 수 있다.
도3에 도시한 바와 같이, 본 발명의 일 실시예에 의한 중계 서버(100)는, 메모리(40)에 운영체제를 비롯하여, 응용프로그램에 해당하는 TTS 요청수신모듈, 1차캐시 검색모듈, 2차캐시 검색모듈, 음성합성요청모듈 및 TTS 전송모듈 등을 포함할 수 있다. 여기서, 각각의 모듈들은 상술한 기능을 수행하기 위한 명령어의 집합으로, 메모리(40)에 저장될 수 있다.
따라서, 본 발명의 일 실시예에 의한 중계서버(100)는, 프로세서(10)가 메모리(40)에 액세스하여 각각의 모듈에 대응하는 명령어를 실행할 수 있다. 다만, TTS 요청수신모듈, 1차캐시 검색모듈, 2차캐시 검색모듈, 음성합성요청모듈 및 TTS 전송모듈은 상술한 TTS 요청수신부, 1차캐시 검색부, 2차캐시 검색부, 음성합성요청부 및 TTS 전송부에 각각 대응하므로 여기서는 자세한 설명을 생략한다.
도5는 본 발명의 일 실시예에 의한 TTS 서비스 제공 시스템의 동작을 나타내는 타이밍도이다.
도5를 참조하면, 사용자 단말(1)이 중계서버(100)로 TTS 요청 메시지를 전송할 수 있으며(s1), 중계서버(100)는 수신한 TTS 요청메시지에 추출한 각각의 요청문장들을 1차 캐시에서 검색할 수 있다(s2). 여기서 사용자 단말(1)은 미리 설정된 API(Application Programmable Interface)를 이용하여 TTS 요청 메시지를 전송할 수 있으며, 이때, 사용자 단말(1)은 중계서버(100)의 소켓 등에 직접 유선으로 연결되거나, 라우터(r1)를 통하여 http 형식의 무선으로 연결될 수 있다. 1차 캐시 내에 요청문장에 대응하는 음성데이터가 존재하는 경우에는(s3), 중계서버(100)가 캐시 업데이트(s11) 및 후처리(s12)를 수행한 후, 사용자 단말(1)에게 TTS 데이터를 전송할 수 있다(s13).
반면에, 1차 캐시 내에 음성데이터가 존재하지 않는 경우(s3)에는, 중계서버(100)가 캐시서버(200)에게 2차 캐시에 대한 검색을 요청할 수 있다(s4). 캐시서버(200)는 내부에 구비된 2차 캐시에서 요청문장들을 검색할 수 있으며(s5), 2차 캐시 검색결과를 중계서버(100)로 전송할 수 있다(s6). 여기서, 2차 캐시 내 음성데이터가 존재하는 경우(s7)에는 캐시 업데이트(s11) 및 후처리(s12)를 수행한 후, 사용자 단말(1)에게 TTS 데이터를 전송할 수 있다(s13).
반면에, 2차 캐시 내에 음성데이터가 존재하지 않는 경우(s7)에는, 중계서버(100)가 합성엔진서버(300)로 음성합성을 요청할 수 있다(s8). 음성합성을 요청받은 합성엔진서버(300)는 수신한 요청문장에 대응하는 음성합성을 수행할 수 있으며(s9), 생성한 음성데이터를 브로드캐스팅하여 복수의 중계서버(100)로 전송할 수 있다(s10). 즉, 복수의 중계서버(100)들은 합성엔진서버(300)가 생성한 음성데이터들을 공유할 수 있으므로, 각각의 중계서버(100)에 포함된 1차 캐시에 해당 음성데이터를 업데이트할 수 있다. 따라서, 합성엔진서버(300)에게 동일한 요청문장에 대한 음성합성요청을 중복하여 요청하는 것을 방지할 수 있다.
이후, 중계서버(100)는 1차 캐시 및 2차 캐시에 대한 캐시 업데이트를 수행할 수 있으며(s11), 음성데이터에 합성옵션을 적용하는 후처리를 수행한 후(s12), 사용자 단말(1)에게 TTS 데이터를 전송할 수 있다(s13).
도8 및 도9는 본 발명의 일 실시예에 의한 중계서버에서의 TTS 서비스 제공방법을 나타내는 순서도이다.
도8 및 도9를 참조하면 본 발명의 일 실시예에 의한 중계서버에서의 TTS 서비스 제공방법은, TTS 요청수신단계(S110), 1차 캐시 검색단계(S120), 2차 캐시 검색단계(S130), 음성합성요청단계(S140) 및 TTS 전송단계(S150)를 포함할 수 있다.
이하 도8 및 도9를 참조하여 본 발명의 일 실시예에 의한 중계서버에서의 TTS 서비스 제공방법을 설명한다.
TTS 요청수신단계(S110)에서는, 사용자 단말로부터 TTS 요청 메시지를 수신할 수 있다. 중계서버는 TTS 요청 메시지를 통하여 사용자 단말이 요청하는 TTS 서비스를 인식할 수 있다. 여기서, TTS 요청 메시지는 미리 설정된 양식을 가질 수 있으며, 사용자 단말은 미리 설정된 양식의 TTS 요청 메시지를 전송하여 TTS 서비스를 요청할 수 있다. 구체적으로, TTS 요청메시지는 단말정보, 인증정보, 요청문구, 요청파일명, 합성옵션 등을 포함할 수 있다.
1차 캐시 검색단계(S120)에서는, TTS 요청 메시지에 포함된 요청문장을 1차 캐시에서 먼저 검색할 수 있다. 즉, 중계서버에 포함된 1차 캐시에서 먼저 요청문장을 검색할 수 있으며, 1차 캐시에서 요청문장에 대응하는 음성데이터가 검색되지 않으면 캐시서버에 구비된 2차 캐시에서 검색하도록 요청할 수 있다.
1차 캐시는 새로운 음성데이터가 입력되면 1차 캐시 내에 저장하고, 기존에 1차 캐시에 저장된 음성데이터가 입력되면 해당 음성데이터에 대한 호출횟수를 증가시키거나 호출시간을 업데이트할 수 있다. 이후, 1차 캐시 내에 저장공간이 부족한 경우에는, 호출횟수가 낮거나 호출시간이 오래된 음성데이터를 삭제하고 새로운 음성데이터를 저장할 수 있다. 여기서, 1차 캐시에는 TTS 서비스 제공 시스템 내에서 가장 빈번하게 요청되는 음성메시지 또는 최근에 요청된 음성메시지가 저장되어 있을 수 있다.
한편, 실시예에 따라서는, TTS 요청 메시지에 요청 파일명이 포함될 수 있다. 이 경우, 1차 캐시에서 요청 파일명과 동일한 TTS 데이터를 우선적으로 검색할 수 있다. 즉, 사용자 단말이 요청 파일명으로 지정해서 요청하는 TTS 데이터의 경우, 빈번하게 사용되는 일정한 문구일 수 있다. 이 경우, 음성합성과 함께 음성 데이터에 대한 후처리도 제외할 수 있으므로, TTS 요청 메시지 내에 요청 파일명이 포함되는 경우를 우선적으로 검색하도록 할 수 있다. 이후, 요청 파일명이 존재하지 않는 경우에는, TTS 요청 메시지에 포함된 요청 문장을 캐시 내에서 검색할 수 있다.
또한, 실시예에 따라서는, TTS 요청 메시지에 합성옵션이 포함될 수 있으며, 이 경우 중계서버는 1차 캐시에서 요청문장과 함께 합성옵션까지 동일한 음성데이터를 우선적으로 검색할 수 있다. TTS 요청 메시지에 합성옵션이 포함된 경우에는, 사용자 단말의 합성옵션을 만족하기 위하여 추가적인 후처리 공정을 수행할 필요가 있다. 여기서, 합성옵션이 동일하여 후처리 공정의 제외가 가능하면 속도 등의 측면에서 유리하므로, 요청문장과 함께 합성옵션까지 동일한 음성데이터를 우선적으로 검색할 수 있다. 다만, 요청문장과 합성옵션이 동시에 동일한 음성데이터가 없는 경우에는, 합성옵션은 제외하고, 요청문장이 동일한 음성 데이터를 검색할 수 있다.
2차 캐시 검색단계(S130)에서는, 1차 캐시 내에 요청문장에 대응하는 음성데이터가 없으면, 2차 캐시가 구비된 캐시 서버로 요청문장에 대한 검색을 요청할 수 있다. 즉, 1차적으로 1차 캐시를 확인하여 요청문장에 대응하는 음성데이터를 검색할 수 있으며, 1차 캐시 내에서 검색되지 않는 경우에는 2차적으로 2차 캐시를 검색할 수 있다. 여기서, 캐시 서버로 요청문장과 합성옵션을 전달하여 캐시 검색을 요청할 수 있다. 이 경우 캐시 서버는 2차 캐시에서 요청문장과 함께 합성옵션까지 동일한 음성데이터를 우선적으로 검색할 수 있다. 다만, 요청문장과 합성옵션이 동시에 동일한 음성데이터가 없으면, 합성옵션은 제외하고 요청문장이 동일한 음성 데이터를 검색할 수 있다.
음성합성요청단계(S140)에서는, 2차 캐시 내에 요청문장에 대응하는 음성데이터가 없으면, 합성엔진서버로 요청문장에 대응하는 음성데이터의 합성을 요청할 수 있다. 여기서, 합성엔진서버는 딥러닝으로 학습한 TTS 알고리즘을 이용할 수 있으며, 이를 통하여 요청문장에 대응하는 음성데이터를 생성할 수 있다. 즉, 1차 캐시 및 2차 캐시에 대응하는 음성데이터가 모두 없는 경우에 한하여 합성엔진서버로 음성데이터의 합성을 요청할 수 있다. 합성엔진서버는 중계서버가 요청하는 음성데이터를 생성하여, 중계서버로 제공할 수 있다.
TTS 전송단계(S150)에서는, 수신한 음성데이터에 대응하는 TTS 데이터를 생성하여 사용자단말로 전송할 수 있다. TTS 전송단계(S150)에서는, 중계서버가 1차 캐시, 2차 캐시 또는 합성엔진서버로부터 음성데이터를 수신할 수 있으며, 수신한 음성데이터를 가공하여 TTS 데이터를 생성할 수 있다. 구체적으로, 중계서버는 수신한 음성데이터를 사용자 단말에 전송하는 이외에, 1차 캐시와 2차 캐시를 업데이트할 수 있으며, 수신한 음성데이터에 대한 후처리를 수행하여 TTS 데이터를 생성하는 것도 가능하다. 즉, 도9에 도시한 바와 같이, TTS 전송단계(S150)는 캐시 업데이트단계(S151) 및 후처리단계(S152)를 더 포함할 수 있다.
캐시 업데이트단계(S151)에서는, 중계서버가 1차 캐시, 2차 캐시 또는 합성엔진서버 등으로부터 음성데이터를 수신하면, 캐시관리규칙에 따라 1차 캐시 및 2차 캐시를 업데이트할 수 있다. 구체적으로, 음성데이터를 수신하면, 중계서버는 해당 음성데이터를 1차 캐시 내에 음성데이터의 호출시점, 또는 호출횟수에 따른 우선순위를 업데이트하여 저장할 수 있다. 예를들어, 호출시점으로부터 한계기한 이상 호출되지 않은 음성데이터를 2차 캐시로 이동시키는 1차 캐시의 경우, 수신한 음성데이터에 대한 최신 호출시점을 업데이트하여, 해당 음성데이터의 2차 캐시로의 이동시점을 연장할 수 있다. 또한, 호출횟수에 따른 우선순위가 설정순위 이하인 음성데이터를 2차 캐시로 이동시키는 1차 캐시의 경우, 수신한 음성데이터에 대한 호출횟수와, 호출횟수에 따른 우선순위를 재설정하여 업데이트할 수 있다. 중계서버가 수신하는 음성데이터는 사용자 단말이 요청한 음성데이터에 해당하므로, 최근에 호출된 음성데이터에 해당한다. 최근에 호출된 음성데이터는 다시 호출될 가능성이 높으므로, 1차 캐시 내에 업데이트하여 해당 음성데이터를 캐시 내에 유지하도록 할 수 있다.
또한, 2차 캐시 내에서도 최후기한 이상 호출되지 않거나 호출횟수에 따른 우선순위가 퇴출순위 이하인 음성데이터는 삭제하여 제거할 수 있다. 즉, 1차 캐시에서 2차 캐시로 이동한 이후에도, 최후기한 이상 호출되거나 우선순위가 밀려난 음성데이터의 경우, 다시 호출되지 않을 가능성이 높은 것으로 판단할 수 있다. 따라서, 해당하는 음성데이터를 2차 캐시에서 제거하여 다른 음성데이터가 캐시 내에 대체하여 저장되도록 유도할 수 있다.
후처리단계(S152)에서는, 수신한 음성데이터에 TTS 요청 메시지에 포함된 합성옵션에 대응하는 후처리작업을 수행할 수 있다. 구체적으로, 중계서버는 합성옵션에 따라 음성데이터의 재생속도, 음량 또는 음높낮이 등을 설정하여 TTS 데이터를 생성할 수 있다. 또한, 요청문구를 복수개의 문장으로 분할한 경우에는, 후처리단계(S152)에서, 각각의 생성한 문장데이터를 합쳐서 TTS 데이터를 생성할 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.
1: 사용자 단말 100: 중계서버
110: TTS 요청수신부 120: 1차 캐시 검색부
130: 2차 캐시 검색부 140: 음성합성요청부
150: TTS 전송부 151: 캐시 업데이트부
152: 후처리부 200: 캐시 서버
300: 합성엔진서버
S110: TTS 요청수신단계 S120: 1차 캐시 검색단계
S130: 2차 캐시 검색단계 S140: 음성합성요청단계
S150: TTS 전송단계 S151: 캐시 업데이트단계
S152: 후처리 단계

Claims (15)

  1. 중계서버에서의 TTS(Text to Speech) 서비스 제공 방법에 있어서,
    사용자 단말로부터 TTS 요청 메시지를 수신하는 TTS 요청수신단계;
    상기 TTS 요청 메시지에 포함된 요청문장을 상기 중계서버 내에 구비된 1차 캐시(cache)에서 검색하는 1차 캐시 검색단계;
    상기 1차 캐시 내에 상기 요청문장에 대응하는 음성데이터가 없으면, 2차 캐시가 구비된 캐시 서버로 상기 요청문장에 대한 검색을 요청하는 2차 캐시 검색단계;
    상기 2차 캐시 내에 상기 요청문장에 대응하는 음성데이터가 없으면, 합성엔진서버로 상기 요청문장에 대응하는 음성데이터의 합성을 요청하는 음성합성요청단계; 및
    상기 1차 캐시, 2차 캐시 및 합성엔진서버 중 어느 하나로부터 상기 음성데이터를 수신하면, 상기 음성데이터에 대응하는 TTS 데이터를 생성하여 상기 사용자 단말로 전송하는 TTS 전송단계를 포함하는 중계 서버에서의 TTS 서비스 제공 방법.
  2. 제1항에 있어서, 상기 TTS 요청메시지는
    상기 TTS 요청메시지를 전송하는 사용자 단말을 식별하기 위한 단말정보, 상기 사용자 단말의 접근권한을 인증하기 위한 인증정보, 상기 사용자 단말이 음성으로 변환하고자 하는 문자들을 포함하는 요청문구, 요청하는 음성데이터에 대응하는 TTS 데이터의 파일명인 요청파일명 및, 요청하는 음성데이터의 재생속도, 음량 또는 음높낮이(pitch)에 대한 합성옵션 중 적어도 어느 하나를 포함하는 것을 특징으로 하는 중계 서버에서의 TTS 서비스 제공방법.
  3. 제2항에 있어서, 상기 TTS 요청수신단계는
    상기 TTS 요청 메시지에 포함된 요청문구를 각각의 문장으로 분리하여, 복수의 요청문장으로 구별하는 것을 특징으로 하는 중계 서버에서의 TTS 서비스 제공방법.
  4. 제3항에 있어서, 상기 1차 캐시 검색 단계는
    상기 TTS 요청 메시지에 상기 요청 파일명이 포함되면, 상기 1차 캐시에서 상기 요청 파일명과 동일한 TTS 데이터를 우선적으로 검색하고, 상기 요청 파일명과 동일한 TTS 데이터가 없으면 상기 요청문장을 검색하는 것을 특징으로 하는 중계 서버에서의 TTS 서비스 제공 방법.
  5. 제3항에 있어서, 상기 1차 캐시 검색 단계는
    상기 TTS 요청 메시지에 상기 합성옵션이 포함되면, 상기 1차 캐시에서 상기 요청문장과 함께 상기 합성옵션까지 동일한 음성데이터를 우선적으로 검색하고, 검색결과 상기 요청문장과 합성옵션이 동시에 동일한 음성데이터가 없으면, 상기 합성옵션은 제외하고 상기 요청문장이 동일한 음성 데이터를 제공하도록 요청하는 것을 특징으로 하는 중계 서버에서의 TTS 서비스 제공 방법.
  6. 제5항에 있어서, 상기 2차 캐시 검색 단계는
    상기 1차 캐시 내에 상기 요청문장에 대응하는 음성데이터가 없으면, 상기 캐시 서버로 상기 요청문장과 합성옵션을 전달하여, 상기 2차 캐시에서 상기 요청문장과 함께 상기 합성옵션까지 동일한 음성데이터를 우선적으로 검색하고, 검색결과 상기 요청문장과 합성옵션이 동시에 동일한 음성데이터가 없으면, 상기 합성옵션은 제외하고 상기 요청문장이 동일한 음성 데이터를 제공하도록 요청하는 것을 특징으로 하는 중계 서버에서의 TTS 서비스 제공 방법.
  7. 제1항에 있어서, 상기 TTS 전송단계는
    상기 1차 캐시, 2차 캐시 및 상기 합성엔진서버 중 어느 하나로부터 상기 음성데이터를 수신하면, 캐시관리규칙에 따라 상기 1차 캐시 및 2차 캐시를 업데이트하는 캐시 업데이트단계; 및
    상기 수신한 음성데이터에 상기 TTS 요청 메시지에 포함된 합성옵션에 대응하는 후처리작업을 수행하여, 상기 TTS 데이터를 생성하는 후처리단계를 포함하는 것을 특징으로 하는 중계 서버에서의 TTS 서비스 제공 방법.
  8. 제7항에 있어서, 상기 캐시관리규칙은
    상기 음성데이터를 수신하면, 상기 1차 캐시 내에 상기 음성데이터의 호출시점, 또는 호출횟수에 따른 우선순위를 업데이트하여 저장하고, 상기 1차 캐시 내에서 한계기한 이상 호출되지 않거나, 또는 상기 우선순위가 설정순위 이하인 음성데이터는 2차 캐시로 이동시키는 것을 특징으로 하는 중계 서버에서의 TTS 서비스 제공 방법.
  9. 제8항에 있어서, 상기 캐시관리규칙은
    상기 2차 캐시 내에서 최후기한 이상 호출되지 않거나, 호출순서에 따른 우선순위가 퇴출순위 이하인 음성데이터는 삭제하는 것을 특징으로 하는 중계 서버에서의 TTS 서비스 제공 방법.
  10. 제7항에 있어서, 상기 캐시 업데이트 단계는
    복수의 합성엔진서버들이 연결된 라우터를 통하여 상기 합성엔진서버가 브로드캐스팅(broadcasting)하는 상기 음성데이터를 수신하며, 상기 라우터를 통하여 연결된 복수의 중계서버들은 상기 음성데이터를 이용하여 상기 제1 캐시를 각각 업데이트하는 것을 특징으로 하는 중계서버에서의 TTS 서비스 제공 방법.
  11. 제10항에 있어서, 상기 캐시 업데이트 단계는
    상기 복수의 중계서버들과 연동하도록 연결된 상기 캐시서버를 이용하여, 각각의 중계서버들이 수신하는 상기 음성데이터를 상기 캐시관리규칙에 따라 상기 캐시서버에 업데이트하는 것을 특징으로 하는 중계서버에서의 TTS 서비스 제공 방법.
  12. 제7항에 있어서, 상기 후처리단계는
    상기 합성옵션에 따라 상기 음성데이터의 재생속도, 음량 또는 음높낮이를 설정하여 상기 TTS 데이터를 생성하고, 상기 생성한 TTS 데이터의 파일명을 설정하는 것을 특징으로 하는 중계 서버에서의 TTS 서비스 제공 방법.
  13. 하드웨어와 결합되어 제1항 내지 제12항 중 어느 한 항의 중계 서버에서의 TTS 서비스 제공 방법을 실행하기 위하여 매체에 저장된 컴퓨터 프로그램.
  14. TTS(Text to Speech) 서비스를 제공하는 중계서버에 있어서,
    사용자 단말로부터 TTS 요청 메시지를 수신하는 TTS 요청수신부;
    상기 TTS 요청 메시지에 포함된 요청문장을 1차 캐시(cache)에서 검색하는 1차 캐시 검색부;
    상기 1차 캐시 내에 상기 요청문장에 대응하는 음성데이터가 없으면, 2차 캐시가 구비된 캐시 서버로 상기 요청문장에 대한 검색을 요청하는 2차 캐시 검색부;
    상기 2차 캐시 내에 상기 요청문장에 대응하는 음성데이터가 없으면, 합성엔진서버로 상기 요청문장에 대응하는 음성데이터의 합성을 요청하는 음성합성요청부; 및
    상기 1차 캐시, 2차 캐시 및 합성엔진서버 중 어느 하나로부터 상기 음성데이터를 수신하면, 상기 음성데이터에 대응하는 TTS 데이터를 생성하여 상기 사용자 단말로 전송하는 TTS 전송부를 포함하는 중계 서버.
  15. 프로세서; 및
    상기 프로세서에 커플링된 메모리를 포함하는 것으로서,
    상기 메모리는 상기 프로세서에 의하여 실행되도록 구성되는 하나 이상의 모듈을 포함하고, 상기 하나 이상의 모듈은,
    사용자 단말로부터 TTS 요청 메시지를 수신하고,
    상기 TTS 요청 메시지에 포함된 요청문장을 1차 캐시(cache)에서 검색하며,
    상기 1차 캐시 내에 상기 요청문장에 대응하는 음성데이터가 없으면, 2차 캐시가 구비된 캐시 서버로 상기 요청문장에 대한 검색을 요청하고,
    상기 2차 캐시 내에 상기 요청문장에 대응하는 음성데이터가 없으면, 합성엔진서버로 상기 요청문장에 대응하는 음성데이터의 합성을 요청하며,
    상기 1차 캐시, 2차 캐시 및 합성엔진서버 중 어느 하나로부터 상기 음성데이터를 수신하면, 상기 음성데이터에 대응하는 TTS 데이터를 생성하여 상기 사용자 단말로 전송하는,
    명령어를 포함하는 중계 서버.
KR1020180132658A 2018-11-01 2018-11-01 Tts 서비스 제공 방법 및 이를 위한 중계 서버 KR102304993B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180132658A KR102304993B1 (ko) 2018-11-01 2018-11-01 Tts 서비스 제공 방법 및 이를 위한 중계 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180132658A KR102304993B1 (ko) 2018-11-01 2018-11-01 Tts 서비스 제공 방법 및 이를 위한 중계 서버

Publications (2)

Publication Number Publication Date
KR20200050104A true KR20200050104A (ko) 2020-05-11
KR102304993B1 KR102304993B1 (ko) 2021-09-27

Family

ID=70729573

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180132658A KR102304993B1 (ko) 2018-11-01 2018-11-01 Tts 서비스 제공 방법 및 이를 위한 중계 서버

Country Status (1)

Country Link
KR (1) KR102304993B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112735372A (zh) * 2020-12-29 2021-04-30 竹间智能科技(上海)有限公司 外呼语音输出方法、装置及设备
CN113421542A (zh) * 2021-06-22 2021-09-21 广州小鹏汽车科技有限公司 语音交互方法、服务器、语音交互系统和存储介质
KR20220102423A (ko) * 2021-01-13 2022-07-20 중소기업은행 Tts를 이용한 금융 업무를 위한 서비스 시스템
KR102452820B1 (ko) * 2022-01-14 2022-10-11 (주)진명아이앤씨 공공생활안전을 위한 통합형 정보감지 솔라시스템
CN117743809A (zh) * 2024-02-20 2024-03-22 之江实验室 一种细胞检测数据预处理方法、装置及存储介质
CN117743809B (zh) * 2024-02-20 2024-05-24 之江实验室 一种细胞检测数据预处理方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020062017A (ko) * 2001-01-19 2002-07-25 엠제이엘테크놀러지 주식회사 인터넷을 이용한 음성 정보 제공 시스템 및 방법
KR20030024421A (ko) * 2001-09-18 2003-03-26 (주) 보이스웨어 음성합성 및 음성변조 서버를 구비한 통합서버에서문자메시지를 음성으로 변환하는 시스템
KR20060014043A (ko) * 2003-06-02 2006-02-14 인터내셔널 비지네스 머신즈 코포레이션 음성 응답 시스템, 음성 응답 방법, 음성 서버, 음성 파일처리 방법, 프로그램 및 기록 매체

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020062017A (ko) * 2001-01-19 2002-07-25 엠제이엘테크놀러지 주식회사 인터넷을 이용한 음성 정보 제공 시스템 및 방법
KR20030024421A (ko) * 2001-09-18 2003-03-26 (주) 보이스웨어 음성합성 및 음성변조 서버를 구비한 통합서버에서문자메시지를 음성으로 변환하는 시스템
KR20060014043A (ko) * 2003-06-02 2006-02-14 인터내셔널 비지네스 머신즈 코포레이션 음성 응답 시스템, 음성 응답 방법, 음성 서버, 음성 파일처리 방법, 프로그램 및 기록 매체

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112735372A (zh) * 2020-12-29 2021-04-30 竹间智能科技(上海)有限公司 外呼语音输出方法、装置及设备
KR20220102423A (ko) * 2021-01-13 2022-07-20 중소기업은행 Tts를 이용한 금융 업무를 위한 서비스 시스템
CN113421542A (zh) * 2021-06-22 2021-09-21 广州小鹏汽车科技有限公司 语音交互方法、服务器、语音交互系统和存储介质
KR102452820B1 (ko) * 2022-01-14 2022-10-11 (주)진명아이앤씨 공공생활안전을 위한 통합형 정보감지 솔라시스템
CN117743809A (zh) * 2024-02-20 2024-03-22 之江实验室 一种细胞检测数据预处理方法、装置及存储介质
CN117743809B (zh) * 2024-02-20 2024-05-24 之江实验室 一种细胞检测数据预处理方法、装置及存储介质

Also Published As

Publication number Publication date
KR102304993B1 (ko) 2021-09-27

Similar Documents

Publication Publication Date Title
KR102304993B1 (ko) Tts 서비스 제공 방법 및 이를 위한 중계 서버
CN107210033B (zh) 基于众包来更新用于数字个人助理的语言理解分类器模型
CN112270925B (zh) 用于创建可定制对话系统引擎的平台
AU2018250489B2 (en) Encapsulating and synchronizing state interactions between devices
KR101770358B1 (ko) 내장형 및 네트워크 음성 인식기들의 통합
US9292603B2 (en) Receipt and processing of user-specified queries
US10698654B2 (en) Ranking and boosting relevant distributable digital assistant operations
CN109523991A (zh) 语音识别的方法及装置、设备
US20210056970A1 (en) Method and system for context association and personalization using a wake-word in virtual personal assistants
US10705789B2 (en) Dynamic volume adjustment for virtual assistants
KR20170103801A (ko) 디지털 개인 비서 내에서 헤드리스로 작업을 완료하기 위한 기법
US11683320B2 (en) Distributed identification in networked system
JP2015127758A (ja) 応答制御装置、制御プログラム
CN105190614A (zh) 使用声调细微差别的搜索结果
US20130018864A1 (en) Methods and apparatus for identifying and providing information of various types to a user
US11626107B1 (en) Natural language processing
US11756538B1 (en) Lower latency speech processing
EP3692431A1 (en) Coordination of parallel processing of audio queries across multiple devices
JP2021108095A (ja) スピーチ理解における解析異常の情報を出力するための方法
CN111427444B (zh) 一种智能设备的控制方法和设备
US11048393B2 (en) Personalized visual representations of an artificially intelligent agent
JP2014109998A (ja) 対話装置及びコンピュータ対話方法
KR20200005359A (ko) 동영상 내 포함된 음원에 대한 검색 서비스 제공 방법 및 이를 이용하는 서버
KR20210053512A (ko) Tts 서비스 제공 방법 및 tts 서비스 제공 시스템
CN105824857A (zh) 一种语音搜索方法、装置及终端

Legal Events

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