Windows의.NET용 C#에서 Speech Recognition API 시작Get started with the Speech Recognition API in C# for .NET on Windows

이 페이지에서는 Speech Recognition API를 사용하여 음성 오디오를 텍스트로 변환하는 기본 Windows 응용 프로그램을 개발하는 방법을 보여 줍니다.This page shows how to develop a basic Windows application that uses the Speech Recognition API to convert spoken audio to text. 클라이언트 라이브러리를 사용하면 실시간 스트리밍이 가능합니다. 즉, 클라이언트 응용 프로그램에서 오디오를 서비스로 보낼 때 부분 인식 결과를 동시에 비동기적으로 다시 받습니다.Using the client library allows for real-time streaming, which means that when your client application sends audio to the service, it simultaneously and asynchronously receives partial recognition results back.

모든 장치에서 실행되는 응용 프로그램에서 Speech Service를 사용하려는 개발자는 C# 데스크톱 라이브러리를 사용할 수 있습니다.Developers who want to use Speech Service from apps that run on any device can use the C# desktop library. 라이브러리를 사용하려면 32비트 플랫폼의 경우 Microsoft.ProjectOxford.SpeechRecognition-x86 NuGet 패키지를 설치하고, 64비트 플랫폼의 경우 Microsoft.ProjectOxford.SpeechRecognition-x64 NuGet 패키지를 설치합니다.To use the library, install the NuGet package Microsoft.ProjectOxford.SpeechRecognition-x86 for a 32-bit platform and the NuGet package Microsoft.ProjectOxford.SpeechRecognition-x64 for a 64-bit platform. 클라이언트 라이브러리 API 참조는 Microsoft Speech C# 데스크톱 라이브러리를 참조하세요.For the client library API reference, see Microsoft Speech C# desktop library.

다음 섹션에서는 C# 데스크톱 라이브러리를 사용하여 C# 샘플 응용 프로그램을 설치, 빌드 및 실행하는 방법에 대해 설명합니다.The following sections describe how to install, build, and run the C# sample application by using the C# desktop library.

필수 조건Prerequisites

플랫폼 요구 사항Platform requirements

다음 샘플은 Visual Studio 2015, Community Edition을 사용하여 Windows 8 이상 및 .NET Framework 4.5 이상용으로 개발되었습니다.The following sample was developed for Windows 8+ and .NET Framework 4.5+ by using Visual Studio 2015, Community Edition.

샘플 응용 프로그램 가져오기Get the sample application

Speech C# 데스크톱 라이브러리 샘플 리포지토리에서 샘플을 복제합니다.Clone the sample from the Speech C# desktop library sample repository.

Speech Recognition API 구독 및 평가판 구독 키 가져오기Subscribe to the Speech Recognition API, and get a free trial subscription key

Speech API는 Cognitive Services(이전의 Project Oxford)의 일부입니다.The Speech API is part of Cognitive Services (previously Project Oxford). Cognitive Services 구독 페이지에서 평가판 구독 키를 가져올 수 있습니다.You can get free trial subscription keys from the Cognitive Services subscription page. Speech API를 선택한 후에 API 키 가져오기를 선택하여 키를 가져옵니다.After you select the Speech API, select Get API Key to get the key. 기본 및 보조 키를 반환합니다.It returns a primary and secondary key. 두 키는 모두 동일한 할당량에 연결되므로 두 키 중 하나를 사용할 수 있습니다.Both keys are tied to the same quota, so you can use either key.

중요

  • 구독 키를 가져오세요.Get a subscription key. Speech 클라이언트 라이브러리를 사용하려면 먼저 구독 키가 있어야 합니다.Before you use the Speech client libraries, you must have a subscription key.

  • 구독 키를 사용하세요.Use your subscription key. 제공된 C# 데스크톱 샘플 응용 프로그램을 사용하여 샘플을 실행할 때 구독 키를 텍스트 상자에 붙여넣습니다.With the provided C# desktop sample application, paste your subscription key into the text box when you run the sample. 자세한 내용은 샘플 응용 프로그램 실행을 참조하세요.For more information, see Run the sample application.

1단계: 샘플 응용 프로그램 설치Step 1: Install the sample application

  1. Visual Studio 2015를 시작하고, 파일 > 열기 > 프로젝트/솔루션을 차례로 선택합니다.Start Visual Studio 2015, and select File > Open > Project/Solution.

  2. 다운로드한 Speech Recognition API 파일을 저장한 폴더를 찾습니다.Browse to the folder where you saved the downloaded Speech Recognition API files. 음성 > Windows를 차례로 선택한 다음, Sample-WP 폴더를 선택합니다.Select Speech > Windows, and then select the Sample-WP folder.

  3. SpeechToText-WPF-Samples.sln이라는 Visual Studio 2015 솔루션(.sln) 파일을 두 번 클릭하여 엽니다.Double-click to open the Visual Studio 2015 Solution (.sln) file named SpeechToText-WPF-Samples.sln. 솔루션이 Visual Studio에서 열립니다.The solution opens in Visual Studio.

2단계: 샘플 응용 프로그램 빌드Step 2: Build the sample application

  1. 의도가 있는 인식을 사용하려면 먼저 LUIS(Language Understanding Intelligent Service)에 등록해야 합니다.If you want to use recognition with intent, you first need to sign up for the Language Understanding Intelligent Service (LUIS). 그런 다음, LUIS 앱의 엔드포인트 URL을 사용하여 samples/SpeechRecognitionServiceExample 폴더의 app.config 파일에서 LuisEndpointUrl 키의 값을 설정합니다.Then use the endpoint URL of your LUIS app to set the value of the key LuisEndpointUrl in the app.config file in the samples/SpeechRecognitionServiceExample folder. LUIS 앱의 엔드포인트 URL에 대한 자세한 내용은 앱 게시를 참조하세요.For more information on the endpoint URL of the LUIS app, see Publish your app.

    XML 파서에서 URL을 올바르게 해석하도록 LUIS 엔드포인트 URL의 & 문자를 &로 바꿉니다.Replace the & character in the LUIS endpoint URL with & to ensure that the URL is correctly interpreted by the XML parser.

  2. Ctrl+Shift+B를 누르거나 리본 메뉴에서 빌드를 선택합니다.Press Ctrl+Shift+B, or select Build on the ribbon menu. 그런 다음, 솔루션 빌드를 선택합니다.Then select Build Solution.

3단계: 샘플 응용 프로그램 실행Step 3: Run the sample application

  1. 빌드가 완료되면 F5 키를 누르거나 리본 메뉴에서 시작을 선택하여 샘플을 실행합니다.After the build is finished, press F5 or select Start on the ribbon menu to run the sample.

  2. Project Oxford 음성 - 텍스트 변환 샘플 창으로 이동합니다.Go to the Project Oxford Speech to Text Sample window. 표시된 대로 구독 키를 시작하려면 여기에 구독 키 붙여넣기 텍스트 상자에 붙여넣습니다.Paste your subscription key into the Paste your subscription key here to start text box as shown. PC 또는 랩톱에서 구독 키를 유지하려면 키 저장을 선택합니다.To persist your subscription key on your PC or laptop, select Save Key. 시스템에서 구독 키를 삭제하려면 키 삭제를 선택하여 PC 또는 랩톱에서 제거합니다.To delete the subscription key from the system, select Delete Key to remove it from your PC or laptop.

    음성 인식 키 붙여넣기

  3. 음성 인식 소스 아래에서 6개의 음성 소스 중 하나를 선택합니다. 이 소스는 다음 두 가지 기본 입력 범주에 속합니다.Under Speech Recognition Source, choose one of the six speech sources, which fall into two main input categories:

    • 컴퓨터의 마이크 또는 연결된 마이크를 사용하여 음성을 캡처합니다.Use your computer's microphone or an attached microphone to capture speech.
    • 오디오 파일을 재생합니다.Play an audio file.

    각 범주에는 다음 세 가지 인식 모드가 있습니다.Each category has three recognition modes:

    • ShortPhrase 모드: 최대 15초가 걸리는 발화입니다.ShortPhrase mode: An utterance up to 15 seconds long. 데이터가 서버로 보내지면 클라이언트에서 여러 개의 부분 결과 및 여러 개의 N 상위 선택 항목이 있는 하나의 최종 결과를 받습니다.As data is sent to the server, the client receives multiple partial results and one final result with multiple n-best choices.
    • LongDictation 모드: 최대 2분이 걸리는 발화입니다.LongDictation mode: An utterance up to two minutes long. 데이터가 서버로 보내지면 서버에서 문장 일시 중지를 나타내는 위치에 따라 클라이언트에서 여러 개의 부분 결과 및 여러 개의 최종 결과를 받습니다.As data is sent to the server, the client receives multiple partial results and multiple final results, based on where the server indicates sentence pauses.
    • 의도 감지: 서버에서 음성 입력에 대해 추가 구조화된 정보를 반환합니다.Intent detection: The server returns additional structured information about the speech input. 의도 감지를 사용하려면 먼저 LUIS를 사용하여 모델이 학습되어야 합니다.To use intent detection, you need to first train a model by using LUIS.

이 샘플 응용 프로그램에서 샘플 오디오 파일을 사용합니다.Use sample audio files with this sample application. samples/SpeechRecognitionServiceExample 폴더 아래에서 이 샘플과 함께 다운로드한 리포지토리의 파일을 찾습니다.Find the files in the repository you downloaded with this sample under the samples/SpeechRecognitionServiceExample folder. Shortphrase 모드에 wav 파일 사용 또는 Longdictation 모드에 wav 파일 사용을 음성 입력으로 선택할 때 다른 파일이 선택되지 않으면 이러한 샘플 오디오 파일이 자동으로 실행됩니다.These sample audio files run automatically if no other files are chosen when you select Use wav file for Shortphrase mode or Use wav file for Longdictation mode as your speech input. 현재 WAV 오디오 형식만 지원됩니다.Currently, only WAV audio format is supported.

Speech to Text 인터페이스

샘플 설명Samples explained

인식 이벤트Recognition events

  • 부분 결과 이벤트: 이 이벤트는 말하기를 끝내거나(MicrophoneRecognitionClient를 사용하는 경우) 데이터 보내기를 끝내기(DataRecognitionClient를 사용하는 경우) 전에도 Speech Service에서 사용자가 말할 수 있는 내용을 예측할 때마다 호출됩니다.Partial Results events: This event gets called every time Speech Service predicts what you might be saying, even before you finish speaking (if you use MicrophoneRecognitionClient) or finish sending data (if you use DataRecognitionClient).
  • 오류 이벤트: 서비스에서 오류를 감지하면 호출됩니다.Error events: Called when the service detects an error.
  • 의도 이벤트: 최종 인식 결과가 구조화된 JSON 의도로 구문 분석된 후 "WithIntent" 클라이언트(ShortPhrase 모드의 경우만)에서 호출됩니다.Intent events: Called on "WithIntent" clients (only in ShortPhrase mode) after the final recognition result is parsed into a structured JSON intent.
  • 결과 이벤트:Result events:
    • ShortPhrase 모드에서는 이 이벤트가 호출되고, 말하기를 끝낸 후 N 상위 결과를 반환합니다.In ShortPhrase mode, this event is called and returns the n-best results after you finish speaking.
    • LongDictation 모드에서는 서비스에서 문장 일시 중지를 식별하는 위치에 따라 이벤트 처리기가 여러 번 호출됩니다.In LongDictation mode, the event handler is called multiple times, based on where the service identifies sentence pauses.
    • N 상위 선택 항목 각각에 대해 신뢰도 값 및 인식된 텍스트의 몇 가지 다른 형식이 반환됩니다.For each of the n-best choices, a confidence value and a few different forms of the recognized text are returned. 자세한 내용은 출력 형식을 참조하세요.For more information, see Output format.

이벤트 처리기는 이미 코드에서 코드 주석 형식으로 지정되었습니다.Event handlers are already pointed out in the code in the form of code comments.