KR101469715B1 - 수식 콘텐츠의 한글 독음 변환 시스템 및 방법 - Google Patents

수식 콘텐츠의 한글 독음 변환 시스템 및 방법 Download PDF

Info

Publication number
KR101469715B1
KR101469715B1 KR1020130051206A KR20130051206A KR101469715B1 KR 101469715 B1 KR101469715 B1 KR 101469715B1 KR 1020130051206 A KR1020130051206 A KR 1020130051206A KR 20130051206 A KR20130051206 A KR 20130051206A KR 101469715 B1 KR101469715 B1 KR 101469715B1
Authority
KR
South Korea
Prior art keywords
mathematical
mathml
operator
coded
mapping
Prior art date
Application number
KR1020130051206A
Other languages
English (en)
Other versions
KR20140132114A (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 KR1020130051206A priority Critical patent/KR101469715B1/ko
Publication of KR20140132114A publication Critical patent/KR20140132114A/ko
Application granted granted Critical
Publication of KR101469715B1 publication Critical patent/KR101469715B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/162Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Machine Translation (AREA)

Abstract

본 발명에 따라서 HTML 또는 XML 등의 포맷을 갖는 웹문서에 포함되어 있는 MathML(mathematical markup language) 기반의 수식 콘텐츠를 한글 독음으로 변환하여 출력하기 위한 수식 콘텐츠의 한글 독음 변환 시스템이 제공된다. 상기 시스템은 상기 웹문서가 저장되어 있는 소정의 경로가 입력 또는 지정되면, 그 경로를 통해 상기 웹문서의 데이터를 수신하는 데이터 수신부와; 상기 수신된 웹문서 데이터 내에 MathML로 표현된 수식 콘텐츠가 있는지 검색하는 수식 콘텐츠 검색부와; 상기 수식 콘텐츠 검색부에 의해 상기 수식 콘텐츠가 확인되면, 그 MathML로 표현된 수식 콘텐츠에서 연산자를 검색하는 연산자 검색부와; 미리 코딩되어 있는 수식 독음 매핑 템플릿(templates)을 참조하여, 상기 연산자 검색부가 검색한 연산자에 매치되는 수식 독음 매핑 템플릿을 호출하고, 그 호출된 수식 독음 매핑 템플릿을 상기 검색된 연산자에 매핑하여, 한글 수식 독음 텍스트를 추출하는 수식 매핑/추출부로서, 상기 수식 독음 매핑 템플릿은 복수의 수식 각각에 대하여 미리 정해진 한글 독음 변환 규칙이 XSLT(extendible stylesheet language transformation)에 의해 코딩되어 구성된 것인, 상기 수식 매핑/추출부와; 상기 추출된 수식 독음 텍스트에 음성 스타일 변환 템플릿을 적용하여 SSML(speech synthesis markup language) 파일을 출력하는 음성 스타일 변환부와; 상기 음성 스타일 변환부로부터 출력되는 SSML 파일을 한글 음성으로 변환하여 출력하는 음성 합성부를 포함하는 것을 특징으로 한다.

Description

수식 콘텐츠의 한글 독음 변환 시스템 및 방법{SYSTEM AND METHOD FOR CONVERTING EQUATION CONTENTS INTO HANGEUL SOUNDS}
본 발명은 웹 문서, 전자책 중의 수식 콘텐츠를 한글 독음(讀音)으로 변환하는 시스템 및 방법에 관한 것으로서, 보다 구체적으로는 MathML(mathematical markup language)을 기반으로 한 수식 콘텐츠를 별도의 부가 정보 없이도 자동으로 한글 독음(소리)으로 변환하여 출력할 수 있는 시스템 및 방법에 관한 것이다.
시각 장애와 노령화와 같은 신체 상의 장애로 인해 인쇄 매체를 읽는 데에 어려움이 있는 사람을 '독서 장애인'이라 일컫는다. 이러한 독서 장애인이 전자책이나 웹 문서에 접근하기 위해 스크린 리더 프로그램과 같은 다양한 보조 프로그램을 활용한다. 예컨대, 시각 장애인, 난독증을 포함한 독서 장애인을 위해 도서 녹음 파일이나 컴퓨터 합성음으로 책을 읽어주는 디지털 음성도서가 활용되고 있으며, 이러한 기술 중 DAISY(Digital Access Information System)가 국제 음성 도서의 표준으로 널리 사용되고 있다. 한편, 전자책이나 웹 문서에 표현된 텍스트는 컴퓨터 합성음으로 읽어주고 있지만, 이미지, 비디오, 수식과 같은 다양한 멀티미디어 콘텐츠에 대한 독음은 원활히 이루어지지 않고 있다.
특히, 수학책에 많이 포함된 수식 표현은 독음이 어려워 그림과 마찬가지로 수식의 이름 정도만 제공되거나 생략되고 있다. 이와 관련하여, 해외에서는 MathPlayer나 MathDaisy와 같은 프로그램을 통해 수식 독음을 제공하고 있다. 그러나, 각 언어마다 수식을 표현하는 음성 표현이 다르기 때문에, 해외의 수식 독음을 직역할 경우, 해석 과정에서 오류가 발생할 수 있다. 따라서, 국내의 수식 독음 방식에 맞는 독자적인 수식 독음 변환 시스템이 필요하지만, 이러한 요구를 만족시키는 시스템은 개발되지 않고 있다. 한편, 텍스트를 음성으로 변환하여 주는 기술도 제안되고 있지만(예컨대, 공개번호 제10-2000-14088호 참조), 일반적인 문장을 음성으로 변환하여 줄뿐, 수식과 같은 특수 기호를 우리말로 독음하여 주는 기술은 제안하지 못하고 있다.
본 발명은 상기 종래 기술에서 나타나는 문제점을 해결하기 위한 것으로서, 국내 전자책, 웹 문서 등에서 나타나는 수식을 한글 표현 방법에 맞춰 자동적으로 읽어줄 수 있는 수식 독음 변환 시스템 및 방법을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위하여, 본 발명에 따라서 HTML 또는 XML 등의 포맷을 갖는 웹문서에 포함되어 있는 MathML(mathematical markup language) 기반의 수식 콘텐츠를 한글 독음으로 변환하여 출력하기 위한 수식 콘텐츠의 한글 독음 변환 시스템이 제공된다. 상기 시스템은 상기 웹문서가 저장되어 있는 소정의 경로가 입력 또는 지정되면, 그 경로를 통해 상기 웹문서의 데이터를 수신하는 데이터 수신부와; 상기 수신된 웹문서 데이터 내에 MathML로 표현된 수식 콘텐츠가 있는지 검색하는 수식 콘텐츠 검색부와; 상기 수식 콘텐츠 검색부에 의해 상기 수식 콘텐츠가 확인되면, 그 MathML로 표현된 수식 콘텐츠에서 연산자를 검색하는 연산자 검색부와; 미리 코딩되어 있는 수식 독음 매핑 템플릿(templates)을 참조하여, 상기 연산자 검색부가 검색한 연산자에 매치되는 수식 독음 매핑 템플릿을 호출하고, 그 호출된 수식 독음 매핑 템플릿을 상기 검색된 연산자에 매핑하여, 한글 수식 독음 텍스트를 추출하는 수식 매핑/추출부로서, 상기 수식 독음 매핑 템플릿은 복수의 수식 각각에 대하여 미리 정해진 한글 독음 변환 규칙이 XSLT(extendible stylesheet language transformation)에 의해 코딩되어 구성된 것인, 상기 수식 매핑/추출부와; 상기 추출된 수식 독음 텍스트에 음성 스타일 변환 템플릿을 적용하여 SSML(speech synthesis markup language) 파일을 출력하는 음성 스타일 변환부와; 상기 음성 스타일 변환부로부터 출력되는 SSML 파일을 한글 음성으로 변환하여 출력하는 음성 합성부를 포함하는 것을 특징으로 한다.
한 가지 실시예에 있어서, 상기 수식 독음 매핑 템플릿에서 상기 한글 독음 변환 규칙은 상기 MathML의 Contents MathML에 대하여 규정되어 코딩되며, 상기 Contents MathML의 노드가 (1) 수식의 시작을 나타내는 루트 요소와 수식의 부가 정보를 표현하는 부가 정보 요소를 포함하는 메타 요소와, (2) 연산자에 대한 피연산자 요소와 (3) 수식의 연산자를 포함하는 연산자 요소로 분류되어, 각각에 대하여 상기 한글 독음 변환 규칙이 규정되어 상기 수식 독음 매핑 템플릿에 코딩될 수 있다.
한 가지 실시예에 있어서, 상기 수식 독음 매핑 템플릿에서 상기 (1) 메타 요소는 한글 독음으로 변환하지 않도록 상기 한글 독음 변환 규칙이 규정되어 코딩되어 있고, 상기 Contents MathML에서 상기 (2) 피연산자 요소 중 <apply> 요소가 중첩되어 나타나는 경우, "괄호 열고"와 "괄호 닫고"를 수식 독음 전후에 매핑하여 상기 한글 독음 변환 규칙이 규정되어 코딩되어 있으며, 상기 (3) 연산자 요소는 수식 연산자를 기본 요소, 산술 논리 대수, 관계, 집합, 기본 고전 함수로 분류하여 각각에 대하여 한글 독음 변환 규칙이 규정되어 코딩될 수 있다.
한 가지 실시예에 있어서, 등호 또는 부등호의 관계 요소의 수식에서 3개 이상의 피연산자가 나타나는 경우, 처음과 마지막 피연산자를 제외한 피연산자들은 두 번씩 독음하도록 상기 한글 독음 변환 규칙이 규정되어 코딩될 수 있다.
한 가지 실시예에 있어서, 상기 피연산자 요소의 값에서 마지막 자의 종성 유무에 따라 조사를 판단하여, 종성이 있을 경우에는 은/는 중 '은', 이/가 중 '이', 을/를 중 '을'을 선택하고 종성이 없을 경우에는 나머지를 선택하도록 상기 한글 독음 변환 규칙이 규정되어 코딩될 수 있다.
한 가지 실시예에 있어서, 상기 시스템은 전체적으로 상기 수식 매핑/추출부와 마찬가지로 XSLT로 구현될 수 있다.
한 가지 실시예에 있어서, 상기 음성 합성부는 TTS(Text-To-Speech) 엔진일 수 있다.
본 발명의 다른 양태에 따라서, HTML 또는 XML 등의 포맷을 갖는 웹문서에 포함되어 있는 MathML 기반의 수식 콘텐츠를 한글 독음으로 변환하여 출력하기 위한 수식 콘텐츠의 한글 독음 변환 방법이 제공되는데, 상기 방법은 상기 웹문서가 저장되어 있는 소정의 경로가 입력 또는 지정되면, 그 경로를 통해 상기 웹문서의 데이터를 수신하는 단계와; 상기 수신된 웹문서 데이터 내에 MathML로 표현된 수식 콘텐츠가 있는지 여부를 검색하는 단계와; 상기 검색 결과 상기 수식 콘텐츠가 확인되면, 그 MathML로 표현된 수식 콘텐츠에서 연산자를 검색하는 단계와; 미리 코딩되어 있는 수식 독음 매핑 템플릿(templates)을 참조하여, 상기 검색된 연산자에 매치되는 수식 독음 매핑 템플릿을 호출하고, 그 호출된 수식 독음 매핑 템플릿을 상기 검색된 연산자에 매핑하여, 한글 수식 독음 텍스트를 추출하는 수식 매핑/추출 단계로서, 상기 수식 독음 매핑 템플릿은 복수의 수식 각각에 대하여 미리 정해진 한글 독음 변환 규칙이 XSLT(extendible stylesheet language transformation)에 의해 코딩되어 구성된 것인, 상기 수식 매핑/추출 단계와; 상기 추출된 수식 독음 텍스트에 음성 스타일 변환 템플릿을 적용하여 SSML(speech synthesis markup language) 파일을 출력하는 단계와; 상기 출력되는 SSML 파일을 한글 음성으로 변환하여 출력하는 음성 합성 단계를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 양태에 따라서, HTML 또는 XML 등의 포맷을 갖는 웹문서에 포함되어 있는 MathML 기반의 수식 콘텐츠를 한글 독음으로 변환하여 출력하기 위한 수식 콘텐츠의 한글 독음 변환 시스템에 사용하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체가 제공되는데, 상기 프로그램은 상기 웹문서가 저장되어 있는 소정의 경로가 입력 또는 지정되면, 그 경로를 통해 상기 웹문서의 데이터를 수신하도록 프로그램된 명령어와; 상기 수신된 웹문서 데이터 내에 MathML로 표현된 수식 콘텐츠가 있는지 여부를 검색하도록 프로그램된 명령어와; 상기 검색 결과 상기 수식 콘텐츠가 확인되면, 그 MathML로 표현된 수식 콘텐츠에서 연산자를 검색하도록 프로그램된 명령어와; 미리 코딩되어 있는 수식 독음 매핑 템플릿(templates)을 참조하여, 상기 검색된 연산자에 매치되는 수식 독음 매핑 템플릿을 호출하고, 그 호출된 수식 독음 매핑 템플릿을 상기 검색된 연산자에 매핑하여, 한글 수식 독음 텍스트를 추출하도록 프로그램된 명령어로서, 상기 수식 독음 매핑 템플릿은 복수의 수식 각각에 대하여 미리 정해진 한글 독음 변환 규칙이 XSLT(extendible stylesheet language transformation)에 의해 코딩되어 구성된 것인, 상기 명령어와; 상기 추출된 수식 독음 텍스트에 음성 스타일 변환 템플릿을 적용하여 SSML(speech synthesis markup language) 파일을 출력하도록 프로그램된 명령어와; 상기 출력되는 SSML 파일을 한글 음성으로 변환하여 출력하도록 프로그램된 명령어를 포함하는 것을 특징으로 한다.
본 발명에 따르면, 웹문서나 전자책에 포함된 수식 콘텐츠를 한글로 자동으로 독음하여 출력할 수 있어, 독서 장애인에게 특별한 제약 없는 음성 서비스를 제공할 수 있다. 또한, 입력되는 콘텐츠를 Contents MathML로 하여, 전자 도서뿐만 아니라 웹 문서에 포함된 수식도 독음 변환할 수 있고, XSLT를 이용하여 시스템을 구현함으로써, 수식의 파싱 과정을 직접 코딩할 필요가 없다. 또한, 독음 규칙을 Contents MathML에 맞게 규정하고 수식의 범위를 중학교 수학 과정부터 공통수학 교과 과정까지 하여 독서장애인이 접하게 되는 수식의 대부분을 음성으로 출력할 수 있다.
도 1에는 본 발명의 한 가지 실시예에 따른 수식 콘텐츠의 한글 독음 변환 시스템의 전체적인 구성 및 그 독음 과정이 개략적으로 보여주는 도면이다.
도 2는 도 1의 시스템을 이용하여 실제 수식 콘텐츠를 변환한 실행예를 보여주는 도면이다.
도 3은 도 1의 시스템을 이용하여 변환된 수식 독음의 이해도 평가 결과를 보여주는 도면이다.
도 4는 도 3의 평가에서 각 난이도와 독음 속도에 따른 평균을 보여주는 도면이다.
도 5a 내지 도 5e는 Contents MathML의 전 요소 및 그 요소의 중등/고등 수학 과정에서의 등장 여부를 보여주는 도면이다.
도 6a 내지 도 6c는 본 발명의 시스템을 이용하여 수식 예제들을 독음한 결과를 보여주는 도면이다.
이하에서는 첨부 도면을 참조하여 본 발명의 실시예를 구체적으로 설명한다. 이하의 설명에 있어서, 당업계에 이미 널리 알려진 기술적 구성, 용어, 기능 등에 대한 설명은 생략한다. 특히, 이하의 설명을 비롯한 명세서 전체 및 청구항에서 사용하는 용어, 예컨대 토큰 요소, 단말노드, 비단말 노드 등의 용어는 당업계에서 통상적으로 사용되고 있는 용어로서, 그 기술적 의미는 이미 널리 통용되고 있다. 따라서, 이러한 용어 등에 대해서는 별도로 설명하지 않으며, 이러한 설명을 생략하더라도, 당업자라면 이하의 설명을 통해 본 발명의 특징적 구성을 쉽게 이해할 수 있을 것이다.
A. MathML
국제 음성 도서 기술의 표준인 DAISY 내의 수식 콘텐츠는 웹에서도 널리 사용되고 있는 MathML로 표현된다. MathML은 웹에서의 수학적 표현의 한계를 극복하기 위해 만들어진 XML의 응용분야로서, 컴퓨터 통신에 있어 수학적인 내용이나 표기를 다루는 방법에 대한 저수준 포맷으로 웹에서 수식을 표현하고, 처리, 공유하는 데에 필요한 많은 해결책을 제공하는 마크업 언어이다. MathML은 두 가지 마크업으로 나뉘는데, Presentation MathML과 Contents MathML이 있다. Presentation MathML은 수식의 표현에 중점을 둔 마크업이고, Contents MathML은 수식의 구조와 의미 표현에 중점을 둔 마크업이다. 본 발명에서는 Contents MathML에 대해 한글 독음 규칙을 정의하고, 이 독음규칙을 XSLT(extendible stylesheet language transformation)를 이용하여 코딩하여, Contents MathML로 표현된 수식 콘텐츠를 상기 코딩된 독음 규칙에 맞춰 독음 텍스트로 변환한 다음에, 변환된 텍스트를 SSML(speech synthesis markup language) 콘텐츠로 출력하는 시스템을 제공한다. 한편, 본 발명에서는 중학교 내지 고등학교 1학년에 해당하는 공통 수학 과정까지 등장하는 수식을 대상으로 한 독음 기법을 제공한다. 본 발명을 설명하기에 앞서, Content MathML을 추가하여 설명하면 다음과 같다.
Contents MathML은 수식이 가진 의미 전달에 집중하여 명확한 인코딩이 가능하게 하는 마크업이다. 따라서 Contents MathML로 표현된 수식은 Presentation MathML로 표현된 수식보다 모호성이 적고, 기계가 해석하기 편리하다는 장점이 있다. Contents MathML은 전위 표기방식으로 수식을 표현한다. 도 7은 Contents MathML의 수식 표현 방식을 트리(tree) 구조로 도식화하고, 수식에 대한 Contents MathML의 예를 보여주는 도면이다.
대부분의 Contents MathML의 요소들은 연산이나 수학적인 데이터 타입을 표시하며, <apply> 요소는 이러한 연산들과 변수들을 그룹화하는 역할을 수행한다. Contents MathML에서 가장 보편적인 토큰 요소는 <ci>와 <cn>으로 이 두 요소는 식별자와 숫자를 의미한다. Contents MathML은 도 8과 같이 <apply> 요소로 하나의 단위 수식을 그룹화하고, 첫 번째 자식 노드에서는 연산자 요소를, 그 다음 형제 노드들을 피 연산자 요소를 사용하여 수식을 표현한다.
피연산자 노드가 하나일 때는 대부분 우피연산자이며, 피연산자 노드가 2개일 때는 좌피연산자, 우피 연산자 순으로 노드가 오게 되며, 피연산자 노드의 수가 3개 이상일 때는 하나의 연산자 노드로 여러 피연산자가 반복되어 나오게 된다. 예를 들면, a+b+c+d의 경우 +라는 연산자로 묶이는 경우이므로 연산자 요소는 <plus>가 되며 피연산자 노드의 수는 4개가 된다.
Contents MathML은 12개 정도의 속성과 함께 100여 개의 요소들로 구성된다. 이 요소들은 각각 집합이나 구간, 벡터, 행렬 등과 같이 구조를 이용하여 인코딩할 수 있는 수학적 대상이나 데이터 타입을 나타내기 위한 컨테이너(Container), 산술, 대수, 논리, 미적분, 집합론과 같은 넓은 범주 안에 있는 보편적인 함수와 연산들을 표시하기 위한 연산자와 함수(Operators and Functions), 등호, 부등호, 집합의 포함 관계 등의 관계를 서술하기 위한 관계(Relations), 극한이나 미분, 적분과 같은 수식에서 상황에 맞게 필요한 변수를 표한하기 위한 한정자(Qualifiers)로 나눌 수 있다
B. 본 발명의 시스템 구성
도 1에는 본 발명의 한 가지 실시예에 따른 수식 콘텐츠의 한글 독음 변환 시스템의 전체적인 구성 및 그 독음 과정이 개략적으로 도시되어 있다.
본 발명의 수식 콘텐츠의 한글 독음 변환 시스템은 전제적으로 XSLT로 구현되며, 크게 데이터 수신부(10), 데이터 출력부(20), 수식 콘텐츠 검색부(30), 연산자 검색부(40), 수식 매핑/추출부(50), 음성 스타일 변환부(60)를 포함하고, 음성 스타일 변환부(60)에 의해 출력되는 SSML을 이용하여 음성으로 변환하는 음성 합성기(도시 생략)(예컨대, TTS(Text-To-Speech) 엔진)도 포함한다. 이하에서는, 도 1을 참조하여, 수식 콘텐츠를 음성으로 변환하는 처리를 설명한다.
먼저, 예컨대, 사용자가 HTML, XML 등의 포맷을 갖는 웹문서 또는 전자책(이하, 총괄적으로 웹문서라 지칭한다)이 저장되어 있는 소정의 경로를 입력 또는 지정하면, 데이터 수신부(10)는 그 경로를 통해 상기 웹문서의 데이터를 수신한다. 이와 같이 수신된 웹문서는 데이터 출력부(20)를 통해 출력되어, 사용자는 그 웹문서를 확인할 수 있다. 이때, 본 발명은 독서장애인을 대상으로 하는 것으로서, 시각적으로 출력하는 것은 크게 중요하지 않으며, 단순히 본 발명의 처리 결과를 확인하는 데에 그 의미를 갖는다.
이어서, 수식 콘텐츠 검색부(30)는 수신된 웹문서 내에 MathML로 표현된 수식이 있는지 검색하고, 그러한 수식이 있으면, 연산자 검색부(40)가 MathML로 표현된 수식 콘텐츠에서 연산자 노드(후술)를 검색한다. 이어서, 수식 매핑/추출부(50)가 수식 독음 템플릿을 검색하여 상기 연산자에 적합한 수식을 찾아내어 연산자와 매핑한 후 수식 독음 텍스트를 출력한다. 이하에서는, 수식 매핑/추출부(50)가 참조하는 수식 독음 템플릿이 어떻게 구성되어 있는지, 즉 수식과 관련한 독음규칙이 어떻게 정의되어 코딩되어 있는지를 보다 구체적으로 설명한다. 한편, 본 발명에서는 수식과 관련된 독음 규칙을 본 발명의 시스템에 일체로 코딩하여 구현하였다. 즉, 수식은 그 종류가 많지 않으므로, 별도의 데이터베이스에 저장하는 것과 비교하여 시스템의 전체적인 크기를 줄일 수 있고 또 변환 속도도 증대시킬 수 있으므로, 본 발명의 시스템에 XSLT로 코딩하여 구현하였다.
1. Contents MathML 노드의 분류
본 발명자는 Contents MathML의 전 요소 중 중학교와 고등학교 교과과정에서의 등장 여부를 분석하였고, 이를 토대로 독음 규칙을 정의하여, 해당 규칙을 XSLT로 코딩하여, 템플릿 형태로 구현하였다. Contents MathML의 전 요소에 대한 요약 및 중학교, 고등학교 교과 과정에서의 등장 여부는 도 5에 나타내었다.
본 발명자는 Contents MathML의 노드 구성을 수식의 특징에 따라 메타 요소, 연산자 요소, 피연산자 요소로 분류하였다. 메타 요소는 루트 요소와 부가 정보에 해당하는 요소의 분류이다. 피연산자 요소는 수식의 피연산자에 해당하는 요소의 분류로 토큰 요소, 비단말 요소로 이루어진다. 연산자 요소는 수식의 연산자에 해당하는 요소의 분류로 크게 산술, 논리, 대수, 관계, 집합이론, 기본 고전 함수, 통계로 나누어진다. 각 분류에 따른 요소들을 표 1 내지 표 3에 나타내었다.
루트 요소 <math>
부가 정보 요소
(Semantic Mapping)
<annotation> <annotation-xml> <semantics>
<메타 요소>
토큰요소 수(Numbers) <cn>
식별자
(Identifiers)
<ci>
상수 및 식별요소
(Contstant and
Symbol
Elements)
<emptyset> <pi>
<integers/> <reals/>
<rationals/> <naturalnumbers/>
<complexes/> <exponentiale/>
<imaginaryi/> <infinity/>
비단말요소 <apply>
<피연산자 요소>
기본요소
(Basic Elements)
<fn> <inverse/>
산술 논리 대수
(Arithmetic,
Algebra and
Logic)
대수 <divide/> <power/>
<max/> <min/>
<minus/> <plus/>
<rem/> <times/>
<root/> <degree>
<gcd/> <lcm/>
<abs>
명제 <implies/> <forall/>
<exists/>
관계(기호논리학, Relations) <eq/> <neq/>
<gt/> <lt/>
<geq/> <leq/>
<equivalent/> <approx/>
집합이론(Theory of Sets) <set> <union/>
<intersect/> <in/>
<notin/> <prsubset/>
<notprsubset/>
기본 고전 함수
(Elementary
Classical
Functions)
삼각함수 <sin/> <sec/>
<cos/> <csc/>
<tan/> <cot/>
지수/로그 <exp/> <ln/>
<log/>
통계(Statistics) <mean/> <sdev/>
<variance/>
<연산자 요소>
2. Contents MathML 독음 변환 규칙
(1) 메타요소
<math>
Contents MathML은 수식을 <math>로 시작되는 식 트리(expression tree)로 표현한다. <math>는 루트에 해당하는 요소이므로 따로 한글 독음으로 변환하지 않는다.
<Semantic Mapping>
<표 4>에 해당하는 노드들은 Contents MathML에서 수식의 부가 정보를 표현하는 요소들이다. 수식의 연산자 요소와 피연산자 요소를 통해 수식 독음이 가능하므로 다음의 요소들은 따로 한글 독음으로 변환하지 않는다.
Contents MathML 한글 독음 설명
<math> (변환하지 않음) MathML의 루트 요소
<semantics> (변환하지 않음) MathML의 부가정보나 대체 표현을 위한 컨테이너 요소
<annotation> (변환하지 않음) XML 포맷을 사용하지 않고 의미를 표현하는 부가 정보
<annotation-xml> (변환하지 않음) XML 포맷을 사용하여 의미를 표현하는 부가 정보
<Contents MathML 독음 변환 규칙 1 -메타 요소>
(2) 피 연산자 요소
<apply>의 나머지 자식 요소에는 첫 번째 자식 요소인 연산자에 대한 피 연산자 요소들이 온다. 피 연산자 요소에는 토큰 요소가 단말 노드(terminal node)로 오거나 <apply> 요소가 형성한 비단말 노드(non-terminal node)가 올 수 있다.
가. 토큰 요소(Token elements)
- 수(numbers): <cn>
<cn> 요소는 수를 나타내며 <cn> 요소가 가지는 text 값을 그대로 출력한다. 다만, <cn>의 텍스트 값이 다음의 심볼 값 중 하나일 때는 <표 5> 독음 규칙 2A를 적용하여, <cn>의 독음 텍스트를 추출한다.
Contents MathML value(symbol) 한글독음
<cn> value </cn>





&pi; 파이
&ExponentialE; (or &ee;) 익스포넨셜 이
&ImaginaryI; (or *ii;) 허수 아이
&gamma; 감마
&infin; (or &infty;) 무한대
&true;
&false; 거짓
<Contents MathML 독음 규칙 2A - 수>
- 식별자(Content Identifier): <ci>
<ci> 요소는 식별자를 나타내며 <ci>요소의 텍스트 값을 그대로 출력한다. 그리고 <ci> 요소에 type 속성이 존재할 때, type 속성 값에 따라 <표 6>의 독음 규칙을 적용하여 독음 텍스트로 변환한다.
Contents MathML value 한글 독음
<ci type=value> a </ci> integer 정수 a
rational 유리수 a
real 실수 a
complex 복소수 a
constant 상수 a
function 함수 a
vector 벡터 a
set 집합 a
matrix 행렬 a
<Contents MathML 독음 규칙 2B - 식별자>
- 상수 및 심볼 요소(Contstant and Symbol Elements)
상수와 심볼을 나타내는 요소들은 다음의 요소들이 있으며, <표 7>의 독음 규칙을 적용하여 한글 독음으로 변환한다.
Contents MathML 수학 기호 한글 독음
<emptyset> Ø 공집합 Ø
<pi> π 파이 π
<integers/> Z 정수 -42 ∈ Z
<reals/> R 실수 44.997 ∈ R
<rationals/> Q 유리수 22/7 ∈ Q
<naturalnumbers/> N 자연수 351 ∈ N
<complexes/> C 복소수 32i ∈ C
<exponentiale/> e 자연대수 이 e
<imaginaryi/> i 허수 아이 a+bi
<infinity/> 무한대
<Contents MathML 독음 규칙 2C - 상수 및 심볼 요소>
나. 중첩된 <apply> 요소
피연산자 요소에는 단말 노드인 토큰 요소들이나 비단말 노드인 <apply> 요소가 올 수 있다. 다음과 같은 경우에 중첩된 <apply> 요소를 사용하게 되는데, 그룹핑 독음으로 자식 요소와 부모 요소의 독음을 구분하지 않으면 청취자는 수식의 이해에 혼란이 올 수 있다. 다음의 예를 보면 분수의 범위를 정해주지 않은 채 독음을 했을 경우, 독음을 이중적으로 해석할 가능성이 있다. 하지만, 그룹핑 독음을 적용하여 독음했을 경우, 청자는 정확하게 수식의 의미를 이해할 수 있다.
<예>
Figure 112013040195614-pat00001
따라서 수식 독음의 모호성을 줄여 수식 이해의 명확성을 높이기 위해 후술하는 경우를 제외한 나머지는 <표 8>과 같이 중첩된 <apply>에 '괄호 열고'와 '괄호 닫고'를 수식 독음의 전후에 매핑하여 연산자의 범위를 명확하게 한다.
Contents MathML 한글 독음
<apply>
...
<apply> operator argument (s) </apply>
...
</apply>


괄호 열고 operator argument (s) 괄호 닫고
<Contents MathML 독음 규칙 2D - 중첩된 <apply> 요소>
Contents MathML 수식 콘텐츠에서 중첩된 <apply>를 사용한 예제와 이에 그룹핑 독음 규칙을 적용한 결과를 살펴 보면, 다음의 예와 같다.
Figure 112013040195614-pat00002
<그룹핑 독음 규칙 적용의 예>
(3) 연산자 요소
연산자 요소는 수식의 연산자를 표현하는 요소로, <apply>의 첫 번째 자식 요소에 등장하는 요소이다. 본 발명자는 연산자 요소 중 중학교 3년 교과 과정과 고교 공통 수학에 등장하는 수식 연산자를 대상으로 독음 규칙을 정의하였다. 연산자는 크게 기본 요소, 산술 논리 대수, 관계, 집합 이론, 기본 고전 함수로 분류하였다. 이하에서는 그에 따른 독음 규칙을 설명한다.
독음 규칙의 표기에서 토큰 요소에 해당하는 단말 노드는 a, A로 나타냈고, 중첩된 <apply> 요소에 해당하는 비단말 노드는 [a], [A]로 나타냈으며, *은 반복을 나타냈다.
가. 기본 요소 (Basic Elements)
기본 요소는 다음 표 9에 등장하는 요소들이 있으며 다음과 같이 독음한다.
Figure 112013040195614-pat00003
<Contents MathML 독음 규칙 3A - 기본 요소>
나. 산술, 논리, 대수 (Arithmetic, Algebra and Logic)
대수학의 부분으로 양, 비 및 비례에 대한 계산을 중심으로 하는 연산자에 해당하는 분류로, 사칙연산, 제곱 및 지수 등이 있다. 산술 논리 대수에 해당하는 독음 규칙은 <표 10>과 같다.
Figure 112013040195614-pat00004
<Contents MathML 독음 규칙 3B - 산술, 논리, 대수>
다. 관계(기호 논리학, Relations)
두 수의 크고 작음, 유사함에 관한 연산자에 해당하는 분류로, 관계에 해당하는 연산자의 독음 규칙은 <표 11>과 같다.
Figure 112013040195614-pat00005
<Contents MathML 독음 규칙 3C - 관계>
라. 집합 이론(Theory of Sets)
집합과 집합에 관계된 연산자에 해당하는 분류로, 집합 이론에 관계된 연산자의 독음 규칙은 <표 12>와 같다.
Figure 112013040195614-pat00006
<Contents MathML 독음 규칙 3D - 집합 이론>
마. 기본 고전 함수 (Elementary Classical Functions)
삼각함수, 로그에 관한 연산자에 해당하는 분류로, 독음 규칙은 <표 13>과 같다.
Figure 112013040195614-pat00007
<Contents MathML 독음 규칙 3E - 기본 고전 함수>
바. 통계(Statistics)
통계에 관련된 연산자에 대한 분류로, 독음 규칙은 <표 14>와 같다.
Figure 112013040195614-pat00008
<Contents MathML 독음 규칙 3F - 통계>
(4) 독음 시 특이사항
대부분의 수식은 좌피연산자, 연산자, 우피연산자의 순으로 독음하게 된다. Contents MathML의 수식 표현 방식은 전위표기법을 따르므로 이를 고려하여 노드들의 독음 변환 순서를 결정한다. 이하에서는 앞서 설명한 독음 변환 규칙들 중 변환에 주의하여야 할 요소들을 설명한다.
가. 단말 및 비단말 노드
상기한 바와 같이, 피연산자 요소에는 단말 노드에 해당하는 토큰 요소와 비단말 노드에 해당하는 <apply> 요소가 있다. 연산자의 형제 노드에 등장하는 피연산자 요소 중 수나 식별자, 상수, 심볼 요소가 등장하면 이는 식 트리(expression tree)의 가장 하위에 해당하는 단말 노드가 된다. 하지만 피연산자 요소 중 식별자, 상수, 심볼 요소 외에 하위 수식이 등장할 경우, 이는 단말 노드가 아니므로 비단말 노드라 한다. 수식 (a/b + 1)을 살펴보자. 더하기(+)라는 연산자의 좌피연산자인 'a/b'는 분수에 해당하는 수식이므로 이는 비단말요소에 해당한다. 하지만 더하기(+) 연산자의 우피연산자 '1'은 수에 해당하므로 우피연산자에 해당한다.
나. 그룹핑 독음 규칙
피연산자 요소에서 토큰 요소가 등장할 경우에는 수식의 범위를 한정하지 않아도 수식의 이해에 혼동이 없지만, 비단말 요소가 등장할 경우에 수식의 범위를 한정하지 않으면 수식을 들은 청자는 수식을 혼동할 수가 있다. 이를 위해 본 발명에서는 그룹핑 독음이라는 개념을 도입하여, 일반적으로 '괄호 열고'와 '괄호 닫고'라는 한정어를 요소의 앞뒤로 추가하여 범위를 한정하였다.
그러나, 모든 수식 요소에 이 그룹핑 독음 규칙을 적용하였을 때 수식의 전체적인 구조를 파악하지 못해 수식의 이해에 더욱 무리를 줄 수 있는 경우가 있다. 이 경우는 수식을 구성하는 각 요소가 위치에 따른 공식적인 명칭을 가지는 경우이다. 이에 해당하는 연산자는 분수, 루트, 로그, 지수이다. 분수는 분자와 분모로 구성되고, 루트에는 '근지수'가 존재하며, 로그에는 로그의 '밑', 제곱수에는 '지수'가 존재한다. 이러한 경우에, 일반적인 사용자는 우선 연산자의 명칭과 함께 분모나 분자, 제곱근, 밑과 같은 공식적인 명칭을 들을 때 더욱 쉽게 수식의 해당 부분을 떠올리기 쉬우므로 <표 15>와 같이 그룹핑 독음 규칙을 정의하였다.
Figure 112013040195614-pat00009
다. 반복 독음 규칙
일반적인 반복 독음 규칙은 하나의 연산자 노드에 3개 이상의 형제 노드가 존재할 경우이다. 이러한 경우 연산자를 반복하여 독음해주어야 한다. 예를 들면, 'A∪B∪C'라는 수식을 독음할 때에는 'A 합집합 B 합집합 C'라고 독음해주어야 할 것이다. 이때 합집합 연산이 반복되므로 '합집합'이라는 독음이 반복되어 변환되어야 한다. 반복 독음에 해당하는 연산자는 더하기, 곱하기에 해당하는 연산자, 최대, 최솟값에 대한 연산자, 최소공배수, 최대공약수를 표현하는 연산자, 합집합(∪), 교집합(∩), 관계 대수, 통계에 해당하는 연산자 요소 등이 있다.
반복 독음 규칙이 적용되는 연산자 중 일반적인 반복 독음 규칙과 달리 독음해야 하는 경우가 있다. 바로 관계 요소의 독음 규칙이다. 관계 요소는 등호, 부등호 등에 해당하는 요소이다. 관계 요소에서 특히, 3개 이상의 피연산자가 등장할 때 독음에 주의해야 한다. 관계 요소는 두 피 연산자의 크기나 포함관계 등을 나타내게 되는데, 이 때 처음 피 연산자와 마지막 피 연산자를 제외하고는 모두 두 번씩 반복하여 독음하여야 한다. 예컨대,
a<b<c<d
위의 수식에서 피연산자를 한 번씩만 독음하게 되면, 'a는 b보다 작고 c보다 작고 d보다 작다'가 된다. 이렇게 하면 a와 b, c, d의 대소 관계는 알 수 있지만, b와 c, d의 대소 관계는 알 수 없게 된다. 이를 위해 'a는 b보다 작고, b는 c보다 작고, c는 d보다 작다'라고 읽어주어야 모든 피연산자 요소의 대소 관계를 파악할 수 있다. 이를 위해 처음과 마지막 피연산자를 제외한 피연산자들은 두 번씩 독음하도록 한다.
라. 조사 처리
수식 독음 중 피연산자에 조사가 쓰이는 독음 규칙들이 있다. 예를 들어, 수식 'a=b'의 경우, '에이는 비와 같다'라고 읽게 된다. 이때, 피연산자인 a의 다음에 '와'라는 조사가 붙게 된다. 피연산자에 종성이 존재한다면 조사 '과'라고 읽게 되고, 종성이 없다면 조사 '와'로 읽게 될 것이다. 이렇게 조사를 사용할 경우, 피연산자 요소의 값에서 마지막 자의 종성 유무에 따라 조사를 판단하여 독음 텍스트를 추출한다. 종성이 있을 경우에는 은/는 중 '은', 이/가 중 '이', 을/를 중 '을'을 선택하고, 종성이 없을 경우에는 나머지를 선택하도록 한다.
수식 매핑/추출부(50)는 상기한 독음 규칙이 XSLT로 코딩되어 있는 수식 독음 매핑 템플릿을 참조하여, 연산자 검색부(40)가 검색한 연산자에 맞는 수식 독음 매핑 템플릿을 호출하여, 연산자에 적합한 독음 템플릿을 매핑하여 수식의 독음 텍스트를 변환/추출한다. 그 변환이 모두 완료되면, 음성 스타일 변환부(60)가 추출된 독음 텍스트에 음성 스타일 변환 템플릿을 적용하여 SSML 파일을 출력하고, 이 SSML 파일이 음성 변환기(도시 생략)로 전달되어, 최종적으로 수식이 음성으로 출력된다. 이하에서는, 수식 매핑/추출부(50)가 호출하는 템플릿에 대하여 구체적인 예를 통해 좀 더 상세히 설명한다.
3. 템플릿 설계
(1) 노드 트리의 최상위 노드 변환
Contents MathML로 표현된 수식은 <math>라는 루트 요소로 시작된다. 수식이 단일 요소, 즉 숫자나 변수, 상수일 경우에는 <ci> 혹은 <cn>으로 시작된다. 이 때에는 터미널 노드를 처리하는 독음 규칙에 따라 템플릿을 적용한다. 수식이 단일 요소가 아닌 경우에는 <apply>라는 요소로 수식이 시작된다. 따라서 노드 트리 정규화 모듈은 <apply>에 대한 템플릿에 매핑하는 것으로 시작된다.
<apply> 노드의 첫 번째 자식으로 연산자 요소가 등장하고 피연산자 노드가 연산자 노드의 형제 노드로 등장한다. 이러한 노드 트리의 순서를 독음 규칙에 맞춘 순서로 매핑해 줄 필요가 있으며, 상기한 독음 규칙을 적용하여 각각의 연산자 템플릿을 구현하고, 노드 트리 정규화 모듈에서는 <apply>의 첫 번째 자식인 연산자에 맞는 템플릿을 매핑한다.
Figure 112013040195614-pat00010
(최상위 노드 변환 - <apply> 노드 템플릿 구현의 예)
(2) 일반적인 독음 규칙 처리를 위한 변환
Contents MathML에서 수식을 표현할 때, 상기한 바와 같이 <apply>의 하위 요소로 연산자 요소와 피연산자 요소가 등장하고, 연산자 요소의 형제 노드로 피연산자 요소가 등장한다. 각 연산자 템플릿에서 일반적인 독음 규칙은 피연산자가 2개 이하였으므로, 이에 따라 독음 템플릿에서의 변환을 결정한다. 형제 노드가 없는 단일 노드일 경우에는 피 연산자 노드 중 단말 노드이므로, 단말 노드에 해당하는 템플릿을 매핑한다. 형제 노드가 하나일 경우에는 좌피연산자만 가지는 노드이다. 대표적인 예를 들자면 음의 정수, -1이 있을 수 있다. 이는 <minus/>라는 연산자 요소에 <cn>이라는 형제 노드를 하나만 가지는 경우라고 할 수 있다. 이 때에는 연산자 노드를 먼저 매핑한 후 피연산자 노드의 템플릿을 매핑한다. 형제 노드가 2개일 경우에는 연산자의 좌/우 피연산자가 존재하는 경우이다. 이 경우에는 국내의 독음 규칙 순서에 따라 각 노드별 독음 순서를 정한 후 노드에 맞는 템플릿을 호출한다.
Figure 112013040195614-pat00011
(일반적인 독음 규칙 처리를 위한 템플릿의 예-<approx>)
(3) 특수 독음 규칙 처리를 위한 변환
Contents MathML와 관련하여 특수하게 독음해야 하는 규칙으로서 그룹핑 독음 규칙과 반복 독음 규칙이 있다. 우선 그룹핑 독음 규칙을 처리하는 템플릿을 설명하면, 그룹핑 독음 규칙의 대표적인 예로는 분수와 루트가 있다. 분수 연산자에 대한 템플릿은 '분수 시작'과 '분수 끝'을 제일 앞과 제일 뒤에 변환하고, 분모나 분자가 단말 노드라면 노드의 값을 독음의 위치에 추가한다. 분모나 분자가 비단말 노드라면 '분모'/'분자', '분모 끝'/'분자 끝'이라는 독음을 추가하여 분모와 분자의 범위를 명확히 한다.
Figure 112013040195614-pat00012
(특수 독음 규칙 처리를 위한 템플릿의 예 - <divide>)
루트 연산자에 대한 템플릿의 경우, <degree>라는 자식요소의 등장에 따라 독음이 달라지므로, <degree> 요소의 유무를 판단하여 독음 텍스트로 변환한다.
Figure 112013040195614-pat00013
(특수 독음 규칙 처리를 위한 템플릿의 예 - <root>)
반복 독음 규칙에 해당하는 연산자의 특징은 형제 노드가 3개 이상 등장할 수 있다는 것이다. 일반적인 반복 독음 규칙을 위한 연산자 템플릿은 각 피연산자를 순차적으로 독음하고 피 연산자들의 사이에 연산자에 대한 독음을 추가한다.
Figure 112013040195614-pat00014
(특수 독음 규칙 처리를 위한 템플릿의 예 - <times>)
반복 독음 규칙 중 특수한 경우에 해당하는 부등호의 경우, 첫 번째 피연산자와 마지막 피 연산자를 제외한 피연산자들은 두 번씩 반복되어 호출되어야 한다. 이를 처리하기 위해 세 번째 이상의 피연산자에서는 이전 형제 노드를 호출한 뒤 연산자에 대한 독음 텍스트를 추가한 후 현재 위치의 피연산자를 독음 텍스트로 변환한다.
Figure 112013040195614-pat00015
(특수 독음 규칙 처리를 위한 템플릿의 예 - <gt>)
마지막으로 피연산자 노드의 마지막 자의 종성 유무에 따라 조사를 판단하여 독음 텍스트를 추출한다. 종성이 있을 경우에는 은/는 중 '은', 이/가 중 '이', 을/를 중 '을'을 선택하고 종성이 없을 경우에는 나머지를 택한다.
수식 매핑/추출부(50)는 상기와 같이 규정된 템플릿을 참조하여, 연산자 검색부(40)가 검색한 연산자에 맞는 수식 독음 매핑 템플릿을 호출하고, 연산자에 적합한 독음 템플릿을 매핑하여 수식의 독음 텍스트를 변환/추출한다. 한편, 음성 스타일 모듈을 적용하기 위해, 현재 음성 스타일 시트로 가장 활발히 사용되고 있는 SSML 파일을 바로 출력할 수 있도록 하는데, 음성 스타일 변환부(60)가 추출된 독음 텍스트에 음성 스타일 변환 템플릿을 적용하여 SSML 파일을 출력한다. 한편, XSLT를 적용할 때에, 최종적으로 추출된 수식의 독음 텍스트의 앞과 뒤에 SSML의 헤더 부분과 태그를 합성하여 SSML 파일을 출력한다.
Figure 112013040195614-pat00016
(음성 스타일 적용을 위한 템플릿)
C. 본 발명의 시스템의 실제 실행예
본 발명의 시스템의 실제 수행 가능성을 확인하기 위하여, 임의의 MathML 콘텐츠를 생성하였다. 현재 MathML의 렌더링을 지원하는 브라우저는 Firefox가 유일하므로, Firefox를 이용하여 수식의 독음 변환 결과를 확인하였다. Firefox에서는 아직까지 Presentation MathML에 대한 수식 렌더링만을 지원하고 있기 때문에, 수식의 이미지를 보기 위해 Presentation MathML과 Contents MathML을 혼합한 수식 콘텐츠를 생성하였다. 이를 통해 Presentation MathML을 지원하고 있는 Firefox 브라우저에서 보게 되면 수식의 이미지를 볼 수 있고, 본 발명의 XSLT로 구현한 시스템을 통해서 Contents MathML을 변환하여 독음 텍스트를 추출하였다. Contents MathML로 표현된 수식은 본 발명의 시스템을 통해 연산자에 따른 독음 변환 템플릿을 호출하여 독음 텍스트로 변환되고, 이 독음 텍스트에 음성 스타일 변환 템플릿을 적용하여 음성 지원을 위한 SSML 파일을 출력되며, 그 실제 실행예를 도 2에 나타내었다.
D. 평가 및 분석
본 발명자는 상기 시스템을 실제로 구현한 후, 수식변환이 제대로 되었는지(적합성 검사) 그리고 본 발명에서 정의한 독음 규칙을 기반으로 추출한 독음 텍스트를 사용자들이 얼마나 이해하는지에 대하여 실험을 하였다(독음 이해도 검사).
1. 적합성 검사
중학교 3년 수학 교과과정과 고등학교 1학년 교과과정인 공통 수학에 해당하는 범위의 수식을 표현한 Contents MathML 예제들을 본 발명에 따라서 구현한 독음 시스템을 이용하여 변환하였다. 그 결과 모든 수식 예제들이 상기한 실제 실행예와 동일하게 한글 수식 독음으로 변환된 것을 확인할 수 있었다. <표 16>은 각 영역별 수식 예제와 예제의 한글 독음 변환 결과를 표로 정리한 것이다. 다른 모든 수식 예제들에 대한 독음 프로그램 실행 사례는 도 6에 나타내었다.
Figure 112013040195614-pat00017
2. 독음 이해도 검사
본 발명의 독음 시스템을 통해 변환된 수식 독음의 이해도를 측정하기 위해 독음의 이해도 평가를 실시하였다. 구체적으로, 중학교 및 공통수학 과정에 등장하는 수식을 난이도 상, 중, 하에 따라 각 6개씩 총 18개의 수식을 MathML 파일로 생성한 뒤, 이를 본 발명의 시스템을 통해 한글 독음 텍스트로 변환하였다. 변환된 한글 독음을 일반인 5명에게 들려주어 그 이해도를 측정하였다. 받아쓰기를 시행한 수식의 예제와 독음의 내용은 상기 적합성 검사에 제시된 <표 16>에 있는 수식을 이용하였다. 실험방법과 측정 방법을 표 17에 요약하였고, 난이도에 따른 테스트 결과 값은 도 3에 나타내었다.
Figure 112013040195614-pat00018
테스트 결과, 기존 전자책 뷰어에서의 독음 속도로 수식을 읽어주었을 때에 수식을 절반 이상 이해하는 사용자는 1명에 불과했고, 대부분의 사용자가 기존의 전자책 뷰어에서의 독음 속도로 수식을 독음했을 시에 수식을 제대로 이해하지 못하는 것으로 나타났다. 그러나 수식을 보통 속도로 읽었을 때부터 수식에 대한 이해도가 증가함을 알 수 있었다. 또한 수식의 난이도가 상일 경우, 느리게 읽었을 때 절반 정도 수식을 이해할 수 있음을 알 수 있었다.
3. 결과 분석
각 난이도와 독음 속도에 따른 평균을 도 4의 그래프로 표현하였다. 우선 난이도가 높아짐에 따라 독음의 이해도가 느려짐을 알 수 있었다. 그리고 전자책 뷰어의 독음 속도로 진행했을 때는 거의 수식을 이해하지 못한다고 볼 수 있다. 2차 테스트부터 독음의 속도가 조금 느려지자 사용자들이 독음을 좀더 잘 이해하는 것으로 나타났다. 보통 책 읽는 속도에서는 난이도 하의 수식은 이해도가 높았으나, 난이도 중에서는 절반을, 난이도 상에서는 1/3 정도로 수식을 맞추는 것을 알 수 있었다. 즉, 수식의 난이도가 높을 때에는 독음의 속도가 보통이더라도 이해하기 어려워함을 알 수 있었다. 마지막으로 독음의 속도를 느리게 하였을 때, 난이도 상, 중, 하 모두 절반 이상의 독음 이해도를 보여, 수식과 같은 특수 콘텐츠를 읽어줄 경우에는 독음의 속도를 느리게 하는 것이 적합함으로 나타났다. 테스트 진행과 함께 Think Aloud 기법을 적용하여 요구 사항을 도출해보았다. 그 결과 가장 주된 의견은 수식의 의미 단위에 맞게 끊어 읽어달라는 의견과, 그룹핑 독음과 같은 특수 규칙에 대한 설명이 먼저 있다면 더욱 이해가 빠를 것 같다는 의견이 있었다.
이상, 본 발명을 바람직한 실시예를 참조하여 설명하였지만, 본 발명은 상기 실시예에 제한되지 않는다는 것을 이해하여야 한다. 예컨대, 수식을 중등/고등 과정의 수학에 나오는 수식으로 한정하여 설명하였지만, 본 발명이 제시한 독음 규칙 등은 대학과정의 수학에도 마찬가지로 적용할 수도 있다. 즉, 본 발명은 수학 범위와 관련하여 특별히 제한되지 않는다. 따라서, 본 발명은 후술하는 특허청구범위 내에서 다양하게 변형/수정할 수 있으며, 이들 역시 본 발명의 범위 내에 속하는 것이며, 본 발명은 특허청구범위 및 그 균등물에 의해서만 제한된다.

Claims (18)

  1. HTML 또는 XML 등의 포맷을 갖는 웹문서에 포함되어 있는 MathML(mathematical markup language) 기반의 수식 콘텐츠를 한글 독음으로 변환하여 출력하기 위한 수식 콘텐츠의 한글 독음 변환 시스템으로서,
    상기 웹문서가 저장되어 있는 소정의 경로가 입력 또는 지정되면, 그 경로를 통해 상기 웹문서의 데이터를 수신하는 데이터 수신부와;
    상기 수신된 웹문서 데이터 내에 MathML로 표현된 수식 콘텐츠가 있는지 검색하는 수식 콘텐츠 검색부와;
    상기 수식 콘텐츠 검색부에 의해 상기 수식 콘텐츠가 확인되면, 그 MathML로 표현된 수식 콘텐츠에서 연산자를 검색하는 연산자 검색부와;
    미리 코딩되어 있는 수식 독음 매핑 템플릿(templates)을 참조하여, 상기 연산자 검색부가 검색한 연산자에 매치되는 수식 독음 매핑 템플릿을 호출하고, 그 호출된 수식 독음 매핑 템플릿을 상기 검색된 연산자에 매핑하여, 한글 수식 독음 텍스트를 추출하는 수식 매핑/추출부로서, 상기 수식 독음 매핑 템플릿은 복수의 수식 각각에 대하여 미리 정해진 한글 독음 변환 규칙이 XSLT(extendible stylesheet language transformation)에 의해 코딩되어 구성된 것인, 상기 수식 매핑/추출부와;
    상기 추출된 수식 독음 텍스트에 음성 스타일 변환 템플릿을 적용하여 SSML(speech synthesis markup language) 파일을 출력하는 음성 스타일 변환부와;
    상기 음성 스타일 변환부로부터 출력되는 SSML 파일을 한글 음성으로 변환하여 출력하는 음성 합성부
    를 포함하고,
    상기 수식 독음 매핑 템플릿에서, 상기 한글 독음 변환 규칙은 등호 또는 부등호의 관계 요소의 수식에서 3개 이상의 피연산자가 나타나는 경우, 처음과 마지막 피연산자를 제외한 피연산자들은 두 번씩 독음하도록 규정되어 코딩되어 있는 것을 특징으로 하는 수식 콘텐츠의 한글 독음 변환 시스템.
  2. 청구항 1에 있어서, 상기 수식 독음 매핑 템플릿에서 상기 한글 독음 변환 규칙은 상기 MathML의 Contents MathML에 대하여 규정되어 코딩되며, 상기 Contents MathML의 노드가 (1) 수식의 시작을 나타내는 루트 요소와 수식의 부가 정보를 표현하는 부가 정보 요소를 포함하는 메타 요소와, (2) 연산자에 대한 피연산자 요소와 (3) 수식의 연산자를 포함하는 연산자 요소로 분류되어, 각각에 대하여 상기 한글 독음 변환 규칙이 규정되어 상기 수식 독음 매핑 템플릿에 코딩되어 있는 것을 특징으로 하는 수식 콘텐츠의 한글 독음 변환 시스템.
  3. 청구항 2에 있어서, 상기 수식 독음 매핑 템플릿에서 상기 (1) 메타 요소는 한글 독음으로 변환하지 않도록 상기 한글 독음 변환 규칙이 규정되어 코딩되어 있고, 상기 Contents MathML에서 상기 (2) 피연산자 요소 중 <apply> 요소가 중첩되어 나타나는 경우, "괄호 열고"와 "괄호 닫고"를 수식 독음 전후에 매핑하여 상기 한글 독음 변환 규칙이 규정되어 코딩되어 있으며, 상기 (3) 연산자 요소는 수식 연산자를 기본 요소, 산술 논리 대수, 관계, 집합, 기본 고전 함수로 분류하여 각각에 대하여 한글 독음 변환 규칙이 규정되어 코딩되어 있는 것을 특징으로 하는 수식 콘텐츠의 한글 독음 변환 시스템.
  4. 삭제
  5. 청구항 3에 있어서, 상기 피연산자 요소의 값에서 마지막 자의 종성 유무에 따라 조사를 판단하여, 종성이 있을 경우에는 은/는 중 '은', 이/가 중 '이', 을/를 중 '을'을 선택하고 종성이 없을 경우에는 나머지를 선택하도록 상기 한글 독음 변환 규칙이 규정되어 코딩되어 있는 것을 특징으로 하는 수식 콘텐츠의 한글 독음 변환 시스템.
  6. 청구항 1 내지 청구항 3 및 청구항 5 중 어느 하나의 항에 있어서, 상기 시스템은 전체적으로 상기 수식 매핑/추출부와 마찬가지로 XSLT로 구현되는 것을 특징으로 하는 수식 콘텐츠의 한글 독음 변환 시스템.
  7. 청구항 1 내지 청구항 3 및 청구항 5 중 어느 하나의 항에 있어서, 상기 음성 합성부는 TTS(Text-To-Speech) 엔진인 것을 특징으로 하는 수식 콘텐츠의 한글 독음 변환 시스템.
  8. HTML 또는 XML 등의 포맷을 갖는 웹문서에 포함되어 있는 MathML 기반의 수식 콘텐츠를 한글 독음으로 변환하여 출력하기 위한 수식 콘텐츠의 한글 독음 변환 방법으로서,
    상기 웹문서가 저장되어 있는 소정의 경로가 입력 또는 지정되면, 그 경로를 통해 상기 웹문서의 데이터를 수신하는 단계와;
    상기 수신된 웹문서 데이터 내에 MathML로 표현된 수식 콘텐츠가 있는지 여부를 검색하는 단계와;
    상기 검색 결과 상기 수식 콘텐츠가 확인되면, 그 MathML로 표현된 수식 콘텐츠에서 연산자를 검색하는 단계와;
    미리 코딩되어 있는 수식 독음 매핑 템플릿(templates)을 참조하여, 상기 검색된 연산자에 매치되는 수식 독음 매핑 템플릿을 호출하고, 그 호출된 수식 독음 매핑 템플릿을 상기 검색된 연산자에 매핑하여, 한글 수식 독음 텍스트를 추출하는 수식 매핑/추출 단계로서, 상기 수식 독음 매핑 템플릿은 복수의 수식 각각에 대하여 미리 정해진 한글 독음 변환 규칙이 XSLT(extendible stylesheet language transformation)에 의해 코딩되어 구성된 것인, 상기 수식 매핑/추출 단계와;
    상기 추출된 수식 독음 텍스트에 음성 스타일 변환 템플릿을 적용하여 SSML(speech synthesis markup language) 파일을 출력하는 단계와;
    상기 출력되는 SSML 파일을 한글 음성으로 변환하여 출력하는 음성 합성 단계
    를 포함하고,
    상기 수식 독음 매핑 템플릿에서, 상기 한글 독음 변환 규칙은, 등호 또는 부등호의 관계 요소의 수식에서 3개 이상의 피연산자가 나타나는 경우, 처음과 마지막 피연산자를 제외한 피연산자들은 두 번씩 독음하도록 규정되어 코딩되어 있는 것을 특징으로 하는 수식 콘텐츠의 한글 독음 변환 방법.
  9. 청구항 8에 있어서, 상기 수식 독음 매핑 템플릿에서 상기 한글 독음 변환 규칙은 상기 MathML의 Contents MathML에 대하여 규정되어 코딩되며, 상기 Contents MathML의 노드가 (1) 수식의 시작을 나타내는 루트 요소와 수식의 부가 정보를 표현하는 부가 정보 요소를 포함하는 메타 요소와, (2) 연산자에 대한 피연산자 요소와 (3) 수식의 연산자를 포함하는 연산자 요소로 분류되어, 각각에 대하여 상기 한글 독음 변환 규칙이 규정되어 상기 수식 독음 매핑 템플릿에 코딩되어 있는 것을 특징으로 하는 수식 콘텐츠의 한글 독음 변환 방법.
  10. 청구항 9에 있어서, 상기 수식 독음 매핑 템플릿에서 상기 (1) 메타 요소는 한글 독음으로 변환하지 않도록 상기 한글 독음 변환 규칙이 규정되어 코딩되어 있고, 상기 Contents MathML에서 상기 (2) 피연산자 요소 중 <apply> 요소가 중첩되어 나타나는 경우, "괄호 열고"와 "괄호 닫고"를 수식 독음 전후에 매핑하여 상기 한글 독음 변환 규칙이 규정되어 코딩되어 있으며, 상기 (3) 연산자 요소는 수식 연산자를 기본 요소, 산술 논리 대수, 관계, 집합, 기본 고전 함수로 분류하여 각각에 대하여 한글 독음 변환 규칙이 규정되어 코딩되어 있는 것을 특징으로 하는 수식 콘텐츠의 한글 독음 변환 방법.
  11. 삭제
  12. 청구항 8 내지 청구항 10 중 어느 하나의 항에 있어서, 상기 음성 합성 단계는 TTS(Text-To-Speech) 엔진을 이용하여 수행하는 것을 특징으로 하는 수식 콘텐츠의 한글 독음 변환 방법.
  13. HTML 또는 XML 등의 포맷을 갖는 웹문서에 포함되어 있는 MathML 기반의 수식 콘텐츠를 한글 독음으로 변환하여 출력하기 위한 수식 콘텐츠의 한글 독음 변환 시스템에 사용하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서, 상기 프로그램은
    상기 웹문서가 저장되어 있는 소정의 경로가 입력 또는 지정되면, 그 경로를 통해 상기 웹문서의 데이터를 수신하도록 프로그램된 명령어와;
    상기 수신된 웹문서 데이터 내에 MathML로 표현된 수식 콘텐츠가 있는지 여부를 검색하도록 프로그램된 명령어와;
    상기 검색 결과 상기 수식 콘텐츠가 확인되면, 그 MathML로 표현된 수식 콘텐츠에서 연산자를 검색하도록 프로그램된 명령어와;
    미리 코딩되어 있는 수식 독음 매핑 템플릿(templates)을 참조하여, 상기 검색된 연산자에 매치되는 수식 독음 매핑 템플릿을 호출하고, 그 호출된 수식 독음 매핑 템플릿을 상기 검색된 연산자에 매핑하여, 한글 수식 독음 텍스트를 추출하도록 프로그램된 명령어로서, 상기 수식 독음 매핑 템플릿은 복수의 수식 각각에 대하여 미리 정해진 한글 독음 변환 규칙이 XSLT(extendible stylesheet language transformation)에 의해 코딩되어 구성된 것인, 상기 명령어와;
    상기 추출된 수식 독음 텍스트에 음성 스타일 변환 템플릿을 적용하여 SSML(speech synthesis markup language) 파일을 출력하도록 프로그램된 명령어와;
    상기 출력되는 SSML 파일을 한글 음성으로 변환하여 출력하도록 프로그램된 명령어
    를 포함하고,
    상기 수식 독음 매핑 템플릿에서, 상기 한글 독음 변환 규칙은, 등호 또는 부등호의 관계 요소의 수식에서 3개 이상의 피연산자가 나타나는 경우, 처음과 마지막 피연산자를 제외한 피연산자들은 두 번씩 독음하도록 규정되어 코딩되어 있는 것을 특징으로 하는 컴퓨터 판독 가능한 기록 매체.
  14. 청구항 13에 있어서, 상기 수식 독음 매핑 템플릿에서 상기 한글 독음 변환 규칙은 상기 MathML의 Contents MathML에 대하여 규정되어 코딩되며, 상기 Contents MathML의 노드가 (1) 수식의 시작을 나타내는 루트 요소와 수식의 부가 정보를 표현하는 부가 정보 요소를 포함하는 메타 요소와, (2) 연산자에 대한 피연산자 요소와 (3) 수식의 연산자를 포함하는 연산자 요소로 분류되어, 각각에 대하여 상기 한글 독음 변환 규칙이 규정되어 상기 수식 독음 매핑 템플릿에 코딩되어 있는 것을 특징으로 하는 컴퓨터 판독 가능한 기록 매체.
  15. 청구항 14에 있어서, 상기 수식 독음 매핑 템플릿에서 상기 (1) 메타 요소는 한글 독음으로 변환하지 않도록 상기 한글 독음 변환 규칙이 규정되어 코딩되어 있고, 상기 Contents MathML에서 상기 (2) 피연산자 요소 중 <apply> 요소가 중첩되어 나타나는 경우, "괄호 열고"와 "괄호 닫고"를 수식 독음 전후에 매핑하여 상기 한글 독음 변환 규칙이 규정되어 코딩되어 있으며, 상기 (3) 연산자 요소는 수식 연산자를 기본 요소, 산술 논리 대수, 관계, 집합, 기본 고전 함수로 분류하여 각각에 대하여 한글 독음 변환 규칙이 규정되어 코딩되어 있는 것을 특징으로 하는 컴퓨터 판독 가능한 기록 매체.
  16. 삭제
  17. 청구항 13 내지 청구항 15 중 어느 하나의 항에 있어서, 상기 명령어들은 XSLT로 코딩되어 있는 것을 특징으로 하는 컴퓨터 판독 가능한 기록 매체.
  18. 청구항 13 내지 청구항 15 중 어느 하나의 항에 있어서, 상기 SSML 파일의 한글 음성으로의 변환은 TTS(Text-To-Speech) 엔진을 이용하여 이루어지는 것을 특징으로 하는 컴퓨터 판독 가능한 기록 매체.
KR1020130051206A 2013-05-07 2013-05-07 수식 콘텐츠의 한글 독음 변환 시스템 및 방법 KR101469715B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130051206A KR101469715B1 (ko) 2013-05-07 2013-05-07 수식 콘텐츠의 한글 독음 변환 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130051206A KR101469715B1 (ko) 2013-05-07 2013-05-07 수식 콘텐츠의 한글 독음 변환 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20140132114A KR20140132114A (ko) 2014-11-17
KR101469715B1 true KR101469715B1 (ko) 2014-12-05

Family

ID=52453229

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130051206A KR101469715B1 (ko) 2013-05-07 2013-05-07 수식 콘텐츠의 한글 독음 변환 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101469715B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101842873B1 (ko) * 2016-09-29 2018-03-28 조봉한 수학번역기, 수학번역 디바이스 및 플랫폼

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102052865B1 (ko) * 2016-10-19 2019-12-11 한국전자통신연구원 시각장애인용 정보 제공 장치 및 방법
CN108319724B (zh) * 2018-02-28 2019-04-09 北京仁和汇智信息技术有限公司 一种带公式文件的网页发布方法及装置
CN109344415A (zh) * 2018-12-13 2019-02-15 深圳市友杰智新科技有限公司 电子书智能语音朗读实现方法
CN113535969B (zh) * 2020-04-20 2023-11-03 南京大学 语料扩充方法、装置、计算机设备及存储介质
KR102581823B1 (ko) * 2021-10-05 2023-09-21 에스케이 주식회사 한글로 표현된 숫자 표현 추출 방법 및 시스템

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
이재화외2. 국내 음성도서 서비스를 위한 수식의 음성변환 기법. 정보과학회논문지 : 컴퓨팅의 실제 및 레터. 2011년 12월, 제17권, 제12호, 662-666쪽 *
이재화외2. 국내 음성도서 서비스를 위한 수식의 음성변환 기법. 정보과학회논문지 : 컴퓨팅의 실제 및 레터. 2011년 12월, 제17권, 제12호, 662-666쪽*

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101842873B1 (ko) * 2016-09-29 2018-03-28 조봉한 수학번역기, 수학번역 디바이스 및 플랫폼
US10552545B2 (en) 2016-09-29 2020-02-04 Bong Han CHO Mathematical translator, a mathematical translation device and a mathematical translation platform

Also Published As

Publication number Publication date
KR20140132114A (ko) 2014-11-17

Similar Documents

Publication Publication Date Title
KR101469715B1 (ko) 수식 콘텐츠의 한글 독음 변환 시스템 및 방법
KR101678787B1 (ko) 자동질의응답 방법 및 그 장치
US7143026B2 (en) Generating rules to convert HTML tables to prose
US9588941B2 (en) Context-based visualization generation
WO1998044484A1 (en) Text normalization using a context-free grammar
US20160071511A1 (en) Method and apparatus of smart text reader for converting web page through text-to-speech
Wang The measurement of functional load
JP2000163418A (ja) 自然言語処理装置及びその方法、及びそのプログラムを格納した記憶媒体
Karshmer et al. Mathematics and accessibility: A survey
JP6626917B2 (ja) 英語の音節計算法に基づいた可読性評価方法及びシステム
Nugues Language Processing with Perl and Prolog
Sahala Contributions to computational assyriology
JPS6318458A (ja) 感情情報抽出装置
Alfaries et al. A rule-based annotation system to extract Tajweed rules from Quran
Soiffer Browser-independent accessible math
Nghiem et al. Using MathML parallel markup corpora for semantic enrichment of mathematical expressions
KR102534131B1 (ko) 대화 형식 기반의 도서 추천 서비스 제공 방법 및 그를 위한 장치
CN106021241B (zh) 盲文点位汉字编码及其与盲文之间的机器翻译方法
KR100631086B1 (ko) Xml을 이용한 텍스트 정규화 방법 및 장치
KR101543024B1 (ko) 발음 기반의 번역 방법 및 그 장치
JP4041875B2 (ja) 文章語文体変換システムおよび文章語文体変換処理プログラム
CN106547753B (zh) 一种信息分析方法及电子设备
Ferreira et al. Audio rendering of mathematical formulae using MathML and AudioMath
Phaiboon et al. Isarn Dharma Alphabets lexicon for natural language processing
Park et al. Korean language math-to-speech rules for digital books for people with reading disabilities and their usability evaluation

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171120

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180917

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190919

Year of fee payment: 6