Microsoft 음성 API

Microsoft Speech API

음성 어플리케이션프로그래밍 인터페이스(SAPI)는 Windows 어플리케이션 에서 음성 인식과 음성 합성을 사용할 수 있도록 Microsoft가 개발API입니다.지금까지 Speech SDK의 일부 또는 Windows OS 자체의 일부로 출하된 API의 많은 버전이 출시되었습니다.SAPI를 사용하는 응용 프로그램에는 마이크로소프트 Office, 마이크로소프트 에이전트 및 마이크로소프트 Speech 서버가 포함됩니다.

일반적으로 API의 모든 버전은 소프트웨어 개발자가 다양한 프로그래밍 언어에서 접근할 수 있는 표준 인터페이스 세트를 사용하여 음성 인식 및 합성을 수행하는 애플리케이션을 작성할 수 있도록 설계되어 있습니다.또한 타사에서는 자체 음성 인식 및 텍스트-투-스피치 엔진을 생산하거나 기존 엔진을 SAPI와 연동하도록 조정할 수 있습니다.원칙적으로 이들 엔진은 정의된 인터페이스에 준거하고 있는 한 Microsoft가 제공하는 엔진 대신 사용할 수 있습니다.

일반적으로 Speech API는 자유롭게 재배포 가능한 컴포넌트이며, 음성 테크놀로지를 사용하고자 하는 모든 Windows 응용 프로그램과 함께 출하할 수 있습니다.음성 인식 및 합성 엔진의 많은 버전(전부는 아니지만)도 자유롭게 재배포할 수 있습니다.

Microsoft Speech API에는 두 가지 주요 '패밀리'가 있습니다.SAPI 버전 1 ~ 4는 모두 유사하며 새로운 버전마다 추가 기능이 있습니다.그러나 SAPI 5는 완전히 새로운 인터페이스로 2000년에 출시되었습니다.그 이후로 이 API의 여러 하위 버전이 출시되었습니다.

기본 아키텍처

Speech API는 애플리케이션과 음성 엔진(인식 및 합성) 사이에 있는 인터페이스 또는 미들웨어로 볼 수 있습니다.SAPI 버전 1~4에서는 애플리케이션이 엔진과 직접 통신할 수 있었습니다.API에는 애플리케이션 및 엔진이 준수하는 추상적인 인터페이스 정의가 포함되어 있습니다.응용 프로그램은 엔진에서 직접 메서드를 호출하는 대신 단순화된 상위 수준의 개체를 사용할 수도 있습니다.

그러나 SAPI 5에서는 애플리케이션과 엔진이 서로 직접 통신하지 않습니다.대신, 각각은 런타임 컴포넌트(sapi.dll)와 통신합니다.응용 프로그램에서 사용하는 이 구성 요소에 의해 구현된 API와 엔진에 대한 다른 인터페이스 세트가 있습니다.

일반적으로 SAPI 5 응용 프로그램에서는 API를 통해 호출을 발행합니다(예: 인식 문법을 로드하거나, 인식을 시작하거나, 합성할 텍스트를 제공하기 위해).sapi.dll 런타임컴포넌트는 이러한 명령어를 해석하여 필요에 따라 엔진인터페이스를 통해 엔진에 호출합니다(예를 들어 파일에서 문법을 로드한 후 문법 데이터가 인식 엔진에 전달되어 실제로 인식에 사용됩니다).인식 및 합성 엔진은 또한 처리 중에 이벤트를 생성합니다(예를 들어, 발화가 인식되었음을 나타내거나 합성 음성에서 단어 경계를 나타내기 위해).이것들은 엔진에서 런타임 DLL을 통해 어플리케이션의 이벤트 싱크로 역방향으로 전달됩니다.

실제 API 정의 및 런타임 DLL 외에 완전한 음성 소프트웨어 개발 키트를 만들기 위해 모든 버전의 SAPI와 함께 다른 구성 요소가 제공됩니다.Speech SDK의 대부분의 버전에 포함되어 있는 컴포넌트는 다음과 같습니다.

  • API 정의 파일 - MIDL 및 C 또는 C++ 헤더 파일로 지정합니다.
  • 런타임 컴포넌트 - sapi.dll 등
  • 제어판 애플릿 - 기본 음성 인식기 및 신시사이저를 선택하고 구성합니다.
  • 다국어 텍스트 투 스피치엔진
  • 다국어 음성 인식 엔진
  • 재배포 가능한 컴포넌트.개발자는 엔진과 런타임에 애플리케이션 코드를 패키징하여 설치 가능한 단일 애플리케이션을 생성할 수 있습니다.
  • 샘플 어플리케이션코드
  • 샘플 엔진 - 필요한 엔진 인터페이스를 구현하지만 엔진을 SAPI로 이식하기 위한 샘플로 사용할 수 있는 진정한 음성 처리 기능은 없습니다.
  • 문서.

버전

Sueong Huang은 마이크로소프트의 초기 SAPI 노력을 이끈 핵심 인물입니다.

SAPI 1-4 API 패밀리

SAPI 1

SAPI의 첫 번째 버전은 1995년에 출시되었으며 Windows 95 및 Windows NT 3.51에서 지원되었습니다.이 버전은 애플리케이션이 엔진을 직접 제어하기 위해 사용할 수 있는 낮은 수준의 직접 음성 인식 및 직접 텍스트 투 음성 API와 단순화된 '높은 수준의' 음성 명령 및 음성 통화 API를 포함했습니다.

SAPI 3

SAPI 3.0은 1997년에 출시되었습니다.받아쓰기 음성 인식(연속음성이 아닌 이산음성)과 샘플 애플리케이션 및 오디오 소스에 대한 제한된 지원을 추가했다.

SAPI 4

SAPI 4.0은 1998년에 출시되었습니다.이 버전의 SAPI에는 코어 COM API와 C++로부터의 프로그래밍을 용이하게 하기 위한 C++ 래퍼 클래스 및 드래그 앤 드롭 Visual Basic 개발을 가능하게 하는 ActiveX 컨트롤이 포함되어 있습니다.이것은 인식 및 합성 엔진이 포함된 SDK의 일부로 출고되었습니다.또, Windows 2000 에서는 (합성 엔진만 탑재) 출하되고 있습니다.

SAPI 4 API의 주요 컴포넌트(모두 C++, COM 및 ActiveX 플레이버로 사용 가능)는 다음과 같습니다.

  • 음성 명령 - 명령 및 제어 음성 인식용 개략 객체
  • 음성 받아쓰기 - 연속 받아쓰기 음성 인식을 위한 고급 객체
  • Voice Talk - 음성 합성용 고급 객체
  • 음성 텔레포니 - 전화 음성 응용 프로그램을 쓰기 위한 객체
  • 직접 음성 인식 - 인식 엔진을 직접 제어하기 위한 물체
  • Direct Text To Speech - 합성 엔진을 직접 제어하기 위한 객체
  • 오디오 객체 - 오디오 장치 또는 파일 읽기/쓰기용

SAPI 5 API 패밀리

SAPI 5.0 런타임을 통합한 Speech SDK 버전 5.0은 2000년에 출시되었습니다.이는 이전 버전에서 완전히 재설계된 것으로, 이전 버전의 SAPI를 사용하는 엔진이나 애플리케이션 모두 상당한 수정 없이 새 버전을 사용할 수 없었습니다.

새로운 API 설계에는 모든 콜이 런타임 sapi.dll을 통해 라우팅되도록 애플리케이션과 엔진을 엄격하게 분리하는 개념이 포함되어 있습니다.이 변경은 API를 보다 '엔진 독립적'으로 만들어 애플리케이션이 특정 엔진의 기능에 의존하지 않도록 하기 위한 것입니다.또한 이 변경은 일부 관리 및 초기화 코드를 런타임으로 이동함으로써 음성 기술을 응용 프로그램에 훨씬 쉽게 통합하기 위한 것이었습니다.

새로운 API는 처음에는 순수한 COM API였고 C/C++에서만 쉽게 사용할 수 있었습니다.VB 및 스크립트 언어 지원이 나중에 추가되었습니다.Windows 98 및 NT 4.0 이후의 operating system이 서포트되고 있습니다.

API의 주요 기능은 다음과 같습니다.

  • 공유 인식자데스크톱 음성 인식 애플리케이션의 경우 별도의 프로세스(sapisvr.exe)로 실행되는 인식기 개체를 사용할 수 있습니다.공유 인식자를 사용하는 모든 애플리케이션은 이 단일 인스턴스와 통신합니다.이것에 의해, 자원의 공유가 가능하게 되어, 마이크의 경합이 배제되어 모든 음성 애플리케이션을 제어하기 위한 글로벌 UI가 가능하게 됩니다.
  • 인프로세서 인식자인식 프로세스의 명시적 제어를 필요로 하는 어플리케이션의 경우 공유 인식기 오브젝트 대신 인프로세스 인식기 오브젝트를 사용할 수 있습니다.
  • 문법 오브젝트음성 문법은 인식자가 듣고 있는 단어를 지정하기 위해 사용됩니다.SAPI 5는 문법을 지정하기 위한 XML 마크업과 그것들을 코드로 동적으로 작성하기 위한 메커니즘을 정의합니다.내장 받아쓰기 언어 모델을 로드하도록 인식자에게 지시하는 메서드도 있습니다.
  • 음성 객체이것은 음성 합성을 수행하여 텍스트에서 오디오 스트림을 생성합니다.마크업 언어(XML과 유사하지만 엄밀하게는 XML이 아님)를 사용하여 합성 프로세스를 제어할 수 있습니다.
  • 오디오 인터페이스런타임에는 마이크 또는 스피커(또는 사운드 디바이스)에 대한 음성 입력 및 Wave 파일 간의 음성 출력을 수행하기 위한 개체가 포함됩니다.또한 비표준 위치에서 또는 비표준 위치에서 오디오를 스트리밍하는 사용자 지정 오디오 개체를 작성할 수도 있습니다.
  • 사용자 어휘 개체입니다.이를 통해 사용자 또는 응용 프로그램에서 사용자 지정 단어와 발음을 추가할 수 있습니다.이들은 인식 또는 합성 엔진의 내장 어휘에 추가됩니다.
  • 오브젝트 토큰이는 인식 및 TTS 엔진, 오디오 객체, 렉시콘 및 기타 객체의 카테고리를 일반적인 방법으로 등록, 열거 및 인스턴스화할 수 있는 개념입니다.

SAPI 5.0

이 버전은 버전 5.0 인식 및 합성 엔진과 함께 Speech SDK 버전 5.0의 일부로 2000년 후반에 출고되었습니다.인식 엔진은 연속적인 받아쓰기, 명령어 및 제어를 지원하며 미국 영어, 일본어 및 중국어 간체 버전으로 출시되었습니다.미국 영어 시스템에서는 어린이들의 연설과 전화 통화에 특별한 음향 모델을 사용할 수 있었다.합성 엔진은 영어와 중국어로 제공되었습니다.이 버전의 API 및 인식 엔진은 2001년에 Microsoft Office XP에도 탑재되었습니다.

SAPI 5.1

이 버전은 Speech SDK 버전 5.1의 일부로 2001년 말에 출고되었습니다.Visual Basic, 스크립트 언어(예: JScript 및 관리 코드)에서 사용할 수 있도록 자동화 호환 인터페이스가 API에 추가되었습니다.이 버전의 API 및 TTS 엔진은 Windows XP에서 출고되었습니다.Windows XP Tablet PC Edition 및 Office 2003에도 이 버전이 포함되어 있지만 버전 6 인식 엔진과 중국어 번체 기능이 대폭 향상되었습니다.

SAPI 5.2

이것은 2004년에 출하된 Microsoft Speech Server에서만 사용하기 위한 API의 특별한 버전입니다.SRGSSSML 마크업 언어 지원 및 서버 기능 및 성능 향상 기능이 추가되었습니다.Speech Server에는 버전6 데스크톱 인식 엔진과 버전7 서버 인식 엔진도 탑재되어 있습니다.

SAPI 5.3

이것은 Windows Vista에 새로운 인식 및 합성 엔진과 함께 제공되는 API 버전입니다.Windows 음성 인식이 운영 체제에 통합됨에 따라 Speech SDK와 API는 Windows SDK의 일부입니다.SAPI 5.3에는 다음과 같은 새로운 기능이 포함되어 있습니다.

  • 인식 및 합성용 W3C XML 음성 문법 지원Speech Synthesis Markup Language(SSML) 버전 1.0에서는 음성 특성, 속도, 볼륨, 피치, 강조 및 발음을 마크업할 수 있습니다.
  • Speech Recognition Grammar Specification(SRGS; 음성인식 문법 사양)에서는 컨텍스트프리 문법의 정의가 지원되고 있습니다만, 다음의 2개의 제한이 있습니다.
  • 문법 내 의미 해석 스크립트 지원.SAPI 5.3은 인식된 텍스트를 보완하기 위해 의미 해석을 위해 SRGS 문법에 JavaScript 주석을 붙일 수 있도록 합니다.
  • 사전에서 사용자 지정 바로 가기 - 어휘에 문자열을 추가하고 바로 가기 단어와 연결하는 기능입니다.받아쓰기를 할 때 사용자는 바로 가기 단어를 말할 수 있으며 인식자는 확장된 문자열을 반환합니다.
  • 새로운 타입으로 제공되는 추가 기능과 프로그래밍 용이성.
  • 성능 향상, 신뢰성 및 보안 향상.
  • 음성 인식 엔진 버전8 ('Microsoft 음성 인식기')

SAPI 5.4

이것은 Windows 7에 탑재된 API의 업데이트 버전입니다.

SAPI 5 Voices

Microsoft Sam(Speech Artication Module)은 일반적으로 출하되는SAPI 5 음성입니다또, Microsoft Office XP 와 Office 2003 에는, L&H Michael 와 Michelle 의 보이스가 인스톨 되고 있습니다.SAPI 5.1 SDK는 MikeMary라는 두 개의 음성을 추가로 설치합니다.Windows Vista 에는, Microsoft Sam 를 대체하는 Microsoft Anna 가 포함되어 있어, 보다 자연스럽고 알기 쉬운 소리가 납니다., Microsoft Streets & Trips 2006 이후의 버전에서는, Windows XP 에 인스톨 되고 있습니다.중국판 Vista 이후의 Windows 클라이언트 버전에는, Microsoft Lili 라고 하는 이름의 여성 음성도 포함되어 있습니다.

관리 코드 음성 API

관리 코드 API는 의 일부로 출고됩니다.NET Framework 3.0.[1]SAPI 5와 기능이 비슷하지만 관리 코드 애플리케이션에서 사용하기에 더 적합합니다.새로운 API는 Windows XP, Windows Server 2003, Windows Vista 및 Windows Server 2008에서 사용할 수 있습니다.

기존 SAPI 5 API는 COM Interop 코드(COM 인터페이스 및 클래스에 액세스할 수 있도록 설계된 도움말 코드)를 생성하여 관리 코드에서 제한적으로 사용할 수도 있습니다.이는 일부 시나리오에서 잘 작동하지만 새로운 API는 다른 관리 코드 라이브러리를 사용하는 것과 동등한 보다 심리스한 환경을 제공해야 합니다.

다만, COM Interop 로부터의 이행에 있어서의 큰 장애는, 관리 실장에서는 메모리 조각화의 원인이 되어, 중요하지 않은 애플리케이션에서의 라이브러리 사용을 배제하는 미묘한 메모리 누설이 발생하고 있는 것입니다.회피책으로 Microsoft는 음성 [2]수가 적은 다른 API를 사용할 것을 제안했습니다.

Windows Vista의 음성 기능

Windows Vista 에는, 다음과 같은 음성 관련의 신기능이 다수 포함되어 있습니다.

  • Windows GUI 및 응용 프로그램 전체의 음성 제어
  • 음성 인식을 제어하는 새로운 튜토리얼, 마이크 마법사 및 UI
  • Speech API 런타임의 새로운 버전: SAPI 5.3
  • 내장된 갱신 음성 인식 엔진(버전 8)
  • 새로운 음성 합성 엔진과 SAPI 음성 Microsoft Anna
  • 관리 코드 음성 API(코드네임 SpeechFX)
  • 미국 영어, 영국 영어, 중국어 번체, 중국어 간체, 일본어, 스페인어, 프랑스어, 독일어 등 8개 언어에 대한 음성 인식 지원(나중에 출시 예정)

특히 Microsoft Agent 및 기타 모든 Microsoft 음성 응용 프로그램은 SAPI 5를 사용합니다.

호환성.

음성 API는 다음 운영 체제와 [3]호환됩니다.

SAPI 5

SAPI 4

SAPI를 사용하는 주요 애플리케이션

「 」를 참조해 주세요.

외부 링크

레퍼런스

  1. ^ Michael Dunn. "Speech synthesis and recognition in .NET - Give applications a voice". Redmond Developer News. Retrieved 2011-11-09.2010년 1월 14일 Wayback Machine에서 아카이브 완료
  2. ^ 시스템. 음성으로 Microsoft Connect 메모리 누수가 있습니다.Connect.microsoft.com 를 참조해 주세요.2013-09-27에 회수.
  3. ^ Microsoft Corporation. "SAPI System Requirements". MSDN. Retrieved 2006-04-12.