음성 조작

음성 인식 및 텍스트 음성 변환 (TTS 또는 음성 합성이 라고도 함)을 앱의 사용자 환경에 직접 통합할 수 있습니다.

음성 인식 음성 인식은 사용자가 말한 단어를 양식 입력을 위한 텍스트로 변환 하 고, 텍스트 받아쓰기를 수행 하 여 동작 또는 명령을 지정 하 고, 작업을 수행 합니다. 자유 텍스트 받아쓰기 및 웹 검색에 대해 미리 정의 된 문법 및 SRGS (음성 인식 문법 사양) 버전 1.0을 사용 하 여 작성 된 사용자 지정 문법이 모두 지원 됩니다.

TTS TTS는 음성 합성 엔진 (음성)을 사용 하 여 텍스트 문자열을 음성 단어로 변환 합니다. 입력 문자열은 기본, 되지 않은 텍스트 또는 보다 복잡 한 SSML (음성 합성 마크업 언어) 일 수 있습니다. SSML은 음성 출력의 특징 (예: 발음, 볼륨, 피치, 속도 또는 속도, 강조)을 제어 하는 표준 방법을 제공 합니다.

기타 음성 관련 구성 요소: Windows 응용 프로그램의 Cortana 사용자 지정 음성 명령 (음성 또는 입력)을 사용 하 여 응용 프로그램을 포그라운드로 시작 하거나 (앱은 시작 메뉴에서 시작 된 것 처럼), 백그라운드 서비스로 활성화 합니다 (Cortana 포커스를 유지 하지만 앱의 결과를 제공 하는 것 처럼). Cortana UI에서 앱 기능을 노출 하는 경우 Cortana 음성 명령 (VCD) 지침 을 참조 하세요.

음성 조작 디자인

신중 설계 및 구현 된 음성은 사용자가 앱, 보완 또는 대체, 키보드, 마우스, 터치 및 제스처를 사용 하 여 상호 작용할 수 있는 강력 하 고 즐겁게 가능 합니다.

이러한 지침 및 권장 사항은 음성 인식과 TTS를 앱의 상호 작용 환경에 가장 잘 통합 하는 방법에 대해 설명 합니다.

앱에서 음성 상호 작용 지원을 고려 하는 경우:

  • 음성을 통해 수행할 수 있는 작업은 무엇 인가요? 사용자가 페이지 간에 이동 하거나, 명령을 호출 하거나, 텍스트 필드, 간단한 메모 또는 긴 메시지로 데이터를 입력할 수 있나요?
  • 음성 입력은 작업을 완료 하는 데 적합 한 옵션 인가요?
  • 음성 입력을 사용할 수 있는 경우 사용자는 어떻게 알 수 있나요?
  • 앱이 항상 수신 대기 하 고 있거나 사용자가 앱에서 수신 대기 모드로 전환 하는 작업을 수행 해야 하나요?
  • 작업 또는 동작을 시작 하는 문구 화면에서 구와 작업을 열거 해야 하나요?
  • 프롬프트, 확인, 명확성 화면 또는 TTS가 필요 한가요?
  • 앱과 사용자 간의 상호 작용 대화 상자는 무엇 인가요?
  • 앱의 컨텍스트에 대 한 사용자 지정 또는 제한 된 어휘 (예: 의약품, 과학 또는 로캘)가 필요 한가요?
  • 네트워크 연결이 필요 한가요?

텍스트 입력

텍스트 입력에 대 한 음성의 범위는 약식 (단일 단어 또는 구)에서 긴 형식 (연속 받아쓰기)까지 지정할 수 있습니다. 약식 입력은 길이가 10 초 미만 이어야 하는 반면 긴 양식 입력 세션은 길이가 최대 2 분이 될 수 있습니다. (연속 받아쓰기를 제공 하기 위해 사용자 개입 없이 긴 양식 입력을 다시 시작할 수 있습니다.)

음성 인식이 지원 되 고 사용자가 사용 가능 하 고 사용자가 사용 하도록 설정 해야 하는지 여부를 나타내려면 시각적 신호를 제공 해야 합니다. 예를 들어, 마이크 문자 모양 ( 명령 모음참조)이 포함 된 명령 모음 단추를 사용 하 여 가용성과 상태를 모두 표시할 수 있습니다.

인식을 수행 하는 동안 명백한 응답 부족을 최소화 하기 위해 지속적인 인식 피드백을 제공 합니다.

사용자가 키보드 입력, 명확성 프롬프트, 제안 또는 추가 음성 인식을 사용 하 여 인식 텍스트를 수정할 수 있습니다.

음성 인식 이외의 장치 (예: 터치 또는 키보드)에서 입력이 검색 된 경우 인식을 중지 합니다. 이는 사용자가 인식 텍스트를 수정 하거나 다른 양식 필드와 상호 작용 하는 등의 다른 작업으로 이동 했음을 나타낼 수 있습니다.

음성 입력이 인식 되지 않음을 나타내는 시간 길이를 지정 합니다. 이 기간이 지나면 인식을 자동으로 다시 시작 하지 마십시오. 일반적으로 사용자가 앱 사용을 중지 했음을 나타냅니다.

네트워크 연결을 사용할 수 없는 경우 모든 연속 인식 UI를 사용 하지 않도록 설정 하 고 인식 세션을 종료 합니다. 연속 인식에는 네트워크 연결이 필요 합니다.

명령

음성 입력은 작업을 시작 하 고, 명령을 호출 하 고, 작업을 수행할 수 있습니다.

공간이 허용 되는 경우 현재 앱 컨텍스트에 대해 지원 되는 응답을 표시 하 고 올바른 입력 예제를 표시 합니다. 그러면 앱에서 처리 해야 하는 잠재적 응답이 줄어들고 사용자에 대 한 혼란이 제거 됩니다.

가능한 한 특정 응답으로 식별 되도록 질문을 합니다. 예: "지금 무엇을 하 시겠습니까?" 매우 열려 있으므로 응답의 수에 따라 매우 큰 문법 정의가 필요 합니다. 또는 "게임을 재생 하거나 음악을 수신 하 시겠습니까?" 매우 작은 문법 정의를 사용 하 여 유효한 두 응답 중 하나로 응답을 제한 합니다. 작은 문법을 훨씬 더 쉽게 작성할 수 있으며 더 정확한 인식 결과를 생성 합니다.

음성 인식 신뢰도가 낮은 경우 사용자의 확인을 요청 합니다. 사용자 의도가 명확 하지 않은 경우 의도 하지 않은 작업을 시작 하는 것 보다 확인 하는 것이 좋습니다.

음성 인식이 지원 되 고 사용자가 사용 가능 하 고 사용자가 사용 하도록 설정 해야 하는지 여부를 나타내려면 시각적 신호를 제공 해야 합니다. 예를 들어, 마이크 문자 모양 ( 명령 모음에 대 한 지침참조)이 포함 된 명령 모음 단추를 사용 하 여 가용성과 상태를 모두 표시할 수 있습니다.

음성 인식 스위치가 일반적으로 표시 되지 않는 경우 앱의 콘텐츠 영역에 상태 표시기를 표시 하는 것이 좋습니다.

사용자가 인식을 시작한 경우 일관성을 위해 기본 제공 인식 환경을 사용 하는 것이 좋습니다. 기본 제공 환경에는 프롬프트, 예제, disambiguations, 확인 및 오류와 함께 사용자 지정 가능한 화면이 포함 됩니다.

화면은 지정 된 제약 조건에 따라 달라 집니다.

  • 미리 정의 된 문법 (받아쓰기 또는 웹 검색)

    • 수신 대기 화면입니다.
    • 생각 화면입니다.
    • 말하는 화면 또는 오류 화면입니다.
  • 단어, 구 또는 SRGS 문법 파일 목록

    • 수신 대기 화면입니다.
    • 확인 내용 화면 - 사용자가 말한 내용을 둘 이상의 가능한 결과로 해석할 수 있는 경우
    • 말하는 화면 또는 오류 화면입니다.

수신 대기 화면에서 다음을 수행할 수 있습니다.

  • 제목 텍스트를 사용자 지정 합니다.
  • 사용자에 게 표시 되는 내용에 대 한 예제 텍스트를 제공 합니다.
  • 화면의 음성이 표시 되는지 여부를 지정 합니다.
  • 표시 되는 화면에서 사용자에 게 인식할 수 있는 문자열을 다시 읽습니다.

다음은 SRGS 정의 제약 조건을 사용 하는 음성 인식기에 대 한 기본 제공 인식 흐름의 예입니다. 이 예제에서는 음성 인식이 성공 했습니다.

sgrs 문법 파일을 기반으로 하는 제약 조건에 대 한 초기 인식 화면

sgrs 문법 파일을 기반으로 하는 제약 조건에 대 한 중간 인식 화면

sgrs 문법 파일을 기반으로 하는 제약 조건에 대 한 최종 인식 화면

항상 수신 대기

앱은 사용자 개입 없이 앱이 시작 되는 즉시 음성 입력을 수신 하 고 인식할 수 있습니다.

앱 컨텍스트에 따라 문법 제약 조건을 사용자 지정해야 합니다. 이렇게 하면 현재 작업과 관련 된 음성 인식 경험을 매우 대상으로 지정 하 고 오류를 최소화 합니다.

"이렇게 말 하세요~"

음성 입력을 사용 하는 경우 사용자가 정확히 이해할 수 있는 작업과 수행할 수 있는 작업을 검색 하는 것이 중요 합니다.

음성 인식이 사용자를 사용 하도록 설정 된 경우 명령 모음 또는 메뉴 명령을 사용 하 여 현재 컨텍스트에서 지원 되는 모든 단어와 구를 표시 하는 것이 좋습니다.

음성 인식이 항상 설정 되어 있는 경우 "무엇을 할 수 있나요?" 라는 문구를 추가 하는 것이 좋습니다. 모든 페이지. 사용자가이 문구를 표시 하는 경우 현재 컨텍스트에서 지원 되는 모든 단어와 구를 표시 합니다. 이 문구를 사용 하면 사용자가 시스템에서 음성 기능을 검색할 수 있는 일관 된 방법을 제공 합니다.

인식 오류

음성 인식이 실패 합니다. 오디오 품질이 불량 하거나, 구의 일부만 인식 하거나, 입력이 전혀 검색 되지 않는 경우 오류가 발생 합니다.

오류를 정상적으로 처리 하 고 사용자가 인식을 실패 한 이유를 이해 하 고 복구 합니다.

앱은 사용자에 게 인식 되지 않으며 다시 시도해 야 한다는 사실을 사용자에 게 알려야 합니다.

하나 이상의 지원 되는 구의 예를 제공 하는 것이 좋습니다. 사용자는 제안 된 구를 반복 하 여 인식 성공을 높일 수 있습니다.

사용자가 선택할 수 있는 잠재적 일치 항목의 목록을 표시 해야 합니다. 이는 인식 프로세스를 다시 진행 하는 것 보다 훨씬 더 효율적일 수 있습니다.

특히 반복적인 인식 오류를 처리 하는 데 유용 하 게 사용할 수 있는 대체 입력 형식을 지원 해야 합니다. 예를 들어 사용자가 키보드를 사용 하거나 터치 또는 마우스를 사용 하 여 잠재적 일치 항목 목록에서 선택 하도록 제안할 수 있습니다.

기본적으로 제공 되는 음성 인식 환경을 사용 하 여 사용자에 게 인식이 성공 하지 않았음을 알리고 사용자가 다른 인식을 시도할 수 있음을 사용자에 게 알리는 화면을 포함 합니다.

오디오 입력을 수신 대기하고 문제를 해결해 보세요. 음성 인식기 음성 인식 정확도에 부정적인 영향을 줄 수 있는 오디오 품질 관련 문제를 검색할 수 있습니다. 음성 인식기에서 제공하는 정보를 사용하여 사용자에게 문제를 알리고 가능한 경우 수정 작업을 수행하도록 할 수 있습니다. 예를 들어 마이크의 볼륨 설정이 너무 낮으면 사용자에게 더 크게 말하거나 볼륨을 높이라는 메시지를 표시할 수 있습니다.

제약 조건

제약 조건 또는 문법은 음성 인식기에서 일치시킬 수 있는 음성 단어와 구를 정의합니다. 미리 정의된 웹 서비스 문법 중 하나를 지정하거나 앱과 함께 설치되는 사용자 지정 문법을 만들 수 있습니다.

미리 정의된 문법

미리 정의된 받아쓰기 및 웹 검색 문법은 문법을 작성할 필요 없이 앱에 음성 인식을 제공합니다. 이러한 문법을 사용 하는 경우 음성 인식 원격 웹 서비스에 의해 수행 되 고 결과 디바이스에 반환

  • 기본 자유 텍스트 받아쓰기 문법은 사용자가 특정 언어로 말할 수 있는 대부분의 단어와 구를 인식할 수 있으며 짧은 구를 인식하도록 최적화됩니다. 자유 텍스트 받아쓰기는 사용자가 말할 수 있는 종류의 내용을 제한하지 않으려는 경우에 유용합니다. 일반적인 용도로는 메모 만들기 또는 메시지 콘텐츠 받아쓰기가 포함되었습니다.
  • 받아쓰기 문법과 같은 웹 검색 문법에는 사용자가 말할 수 있는 많은 단어와 구가 포함됩니다. 그러나 웹을 검색할 때 일반적으로 사용하는 용어를 인식하도록 최적화되어 있습니다.

참고

미리 정의된 받아쓰기 및 웹 검색 문법이 클 수 있고 온라인(디바이스가 아닌)이므로 성능이 디바이스에 설치된 사용자 지정 문법만큼 빠르지 않을 수 있습니다.

이러한 미리 정의된 문법을 사용하여 최대 10초의 음성 입력을 인식하고 작성 작업이 필요하지 않습니다. 그러나 네트워크에 연결해야 합니다.

사용자 지정 문법

사용자 지정 문법은 사용자가 설계하고 작성하며 앱과 함께 설치됩니다. 사용자 지정 제약 조건을 사용하는 음성 인식은 디바이스에서 수행됩니다.

  • 프로그래밍 방식 목록 제약 조건은 단어 또는 구 목록을 사용하여 간단한 문법을 만드는 간단한 방법을 제공합니다. 목록 제약 조건은 짧고 고유한 구를 인식하는 데 적합합니다. 문법에서 모든 단어를 명시적으로 지정하면 음성 인식 엔진이 음성만 처리하여 일치를 확인해야 하며 인식 정확도도 향상됩니다. 목록을 프로그래밍 방식으로 업데이트할 수도 있습니다.

  • SRGS 문법은 프로그래밍 방식 목록 제약 조건과 달리 SRGS 버전 1.0에서정의된 XML 형식을 사용하는 정적 문서입니다. SRGS 문법은 단일 인식에서 여러 의미 체계 의미를 캡처할 수 있도록 하여 음성 인식 환경을 가장 많이 제어합니다.

    다음은 SRGS 문법 작성을 위한 몇 가지 팁입니다.

    • 각 문법을 작게 유지합니다. 적은 구를 포함 하는 문법 많은 구를 포함 하는 큰 문법 보다 더 정확한 인식을 제공 하는 경향이 있습니다. 전체 앱에 단일 문법을 두는 것보다 특정 시나리오에 대해 몇 가지 작은 문법을 갖는 것이 좋습니다.
    • 사용자에게 각 앱 컨텍스트에 대해 무엇을 말해야 하는지 알리고 필요에 따라 문법을 사용하거나 사용하지 않도록 설정합니다.
    • 사용자가 다양한 방법으로 명령을 말할 수 있도록 각 문법을 디자인합니다. 예를 들어 가비지 규칙을 사용하여 문법이 정의하지 않은 음성 입력을 일치시킬 수 있습니다. 이렇게 하면 사용자가 앱에 의미가 없는 추가 단어를 말할 수 있습니다. 예를 들어 "give me", "and", "uh", "maybe" 등이 있습니다.
    • sapi:subset 요소를 사용하여 음성 입력을 일치시킬 수 있습니다. 부분 구를 일치시키는 데 도움이 되는 SRGS 사양에 대한 Microsoft 확장입니다.
    • 하나의 음절만 포함하는 문법에서 구를 정의하지 않도록 합니다. 인식은 둘 이상의 음절을 포함하는 구에 대해 더 정확한 경향이 있습니다.
    • 비슷한 문구를 사용하지 마십시오. 예를 들어 "hello", "bellow" 및 "phrase"와 같은 구는 인식 엔진을 혼동하여 인식 정확도를 저하할 수 있습니다.

참고

사용 중인 제약 조건 형식의 유형은 만들려는 인식 환경의 복잡성에 따라 달라집니다. 모든 것이 특정 인식 작업에 가장 적합한 선택일 수 있으며 앱의 모든 제약 조건 유형에 대한 사용을 찾을 수 있습니다.

사용자 지정 발음

앱에 비정상적인 단어나 가상의 단어가 포함된 특수 어휘 또는 일반적이지 않은 발음이 있는 단어가 포함된 경우 사용자 지정 발음을 정의하여 해당 단어의 인식 성능을 향상시킬 수 있습니다.

단어와 구의 작은 목록 또는 드물게 사용하는 단어와 구 목록의 경우 SRGS 문법에서 사용자 지정 발음을 만들 수 있습니다. 자세한 내용은 token 요소를 참조하세요.

단어와 구의 더 큰 목록 또는 자주 사용되는 단어와 구의 경우 별도의 발음 어휘집 문서를 만들 수 있습니다. 자세한 내용은 어휘 및 음성 알파벳 정보를 참조하세요.

테스트

앱의 대상을 통해 음성 인식 정확도 및 지원 UI를 테스트합니다. 앱에서 음성 상호 작용 환경의 효과를 확인하는 가장 좋은 방법입니다. 예를 들어 앱이 일반적인 구를 수신 대기하지 않아서 사용자에게 잘못된 인식 결과가 발생합니까?

이 구를 지원하도록 문법을 수정하거나 사용자에게 지원되는 구 목록을 제공합니다. 지원되는 구 목록을 이미 제공하는 경우 쉽게 검색할 수 있는지 확인합니다.

TTS(텍스트 음성 대 음성)

TTS는 일반 텍스트 또는 SSML에서 음성 출력을 생성합니다.

신속하고 권장되는 프롬프트를 디자인해 보세요.

긴 텍스트 문자열을 읽어야 하는지 여부를 고려합니다. 문자 메시지를 수신 대기하는 것도 중요하지만 기억하기 어려운 긴 검색 결과 목록을 수신 대기하는 것도 중요합니다.

사용자가 TTS를 일시 중지하거나 중지할 수 있도록 미디어 컨트롤을 제공해야 합니다.

모든 TTS 문자열을 수신 대기하여 이해할 수 있고 자연스러운 소리를 내야 합니다.

  • 비정상적인 단어 시퀀스나 말하는 부분 번호 또는 문장 부호를 함께 묶으면 구를 이해할 수 없게 될 수 있습니다.
  • 음성은 발성 또는 빈도가 네이티브 화자가 문구를 말하는 방식과 다를 때 자연스럽지 않게 들 수 있습니다.

일반 텍스트 대신 SSML을 음성 신시사이저에 대한 입력으로 사용하여 두 가지 문제를 모두 해결할 수 있습니다. SSML에 대한 자세한 내용은 SSML을 사용하여 합성된 음성 및 음성 합성 태그 언어 참조 제어를 참조하세요.

항목 Description
음성 인식 음성 인식을 사용하여 입력을 제공하고, 작업 또는 명령을 지정하고, 작업을 수행합니다.
음성 인식기 언어 지정 음성 인식에 사용할 설치된 언어를 선택하는 방법을 알아봅니다.
사용자 지정 인식 제약 조건 정의 음성 인식에 대한 사용자 지정 제약 조건을 정의하고 사용하는 방법을 알아봅니다.
연속 받아쓰기 사용 긴 형식의 연속 받아쓰기 음성 입력을 캡처하고 인식하는 방법을 알아봅니다.
오디오 입력 관련 문제 관리 오디오 입력 품질로 인한 음성 인식 정확도 문제를 관리하는 방법을 알아봅니다.
음성 인식 시간 제한 설정 음성 인식기에서 묵음 또는 인식할 수 없는 소리(잘림)를 무시하고 음성 입력을 계속 수신 대기하는 길이를 설정합니다.

샘플