chrome.ttsEngine

설명

chrome.ttsEngine API를 사용하여 확장 프로그램으로 텍스트 음성 변환(TTS) 엔진을 구현하세요. 확장 프로그램이 이 API를 사용하여 등록하면 확장 프로그램 또는 Chrome 앱에서 tts API를 사용하여 음성을 생성할 때 음성으로 안내할 발화가 포함된 이벤트 및 기타 매개변수를 수신합니다. 그러면 확장 프로그램에서 사용 가능한 모든 웹 기술을 사용하여 음성을 합성 및 출력하고 이벤트를 호출 함수로 다시 전송하여 상태를 보고할 수 있습니다.

권한

ttsEngine

개요

확장 프로그램은 자체적으로 음성 엔진으로 등록될 수 있습니다. 이렇게 하면 호출의 일부 또는 전부를 tts.speaktts.stop와 같은 함수에 추가하고 대체 구현을 제공합니다. 확장 프로그램은 오디오 스트리밍 등 사용 가능한 모든 웹 기술을 무료로 사용하여 음성을 제공합니다. 서버에서 HTML5 오디오를 가져옵니다. 확장 프로그램은 예를 들어 팝업 창에 자막을 표시하거나 로그 메시지로 보낼 수 있습니다. 원격 서버입니다.

매니페스트

TTS 엔진을 구현하려면 확장 프로그램에서 'ttsEngine'을 선언해야 합니다. 모든 권한을 선언한 다음 다음과 같이 확장 프로그램 매니페스트에서 제공하는 음성을 사용할 수 있습니다.

{
  "name": "My TTS Engine",
  "version": "1.0",
  "permissions": ["ttsEngine"],
  "tts_engine": {
    "voices": [
      {
        "voice_name": "Alice",
        "lang": "en-US",
        "event_types": ["start", "marker", "end"]
      },
      {
        "voice_name": "Pat",
        "lang": "en-US",
        "event_types": ["end"]
      }
    ]
  },
  "background": {
    "page": "background.html",
    "persistent": false
  }
}

확장 프로그램에서 음성을 여러 개 지정할 수 있습니다.

voice_name 매개변수는 필수 항목입니다. 이름은 해당 광고 단위를 식별할 수 있도록 사용되는 엔진이 있습니다. 드물지만 두 개의 확장 프로그램이 음성을 등록하는 경우 클라이언트가 합성을 수행해야 하는 확장 프로그램의 ID를 지정할 수 있습니다.

lang 매개변수는 선택사항이지만 적극 권장됩니다. 대부분의 경우 음성은 음성을 합성할 수 있습니다. 한 가지 언어로만 표현할 수 있습니다. 엔진이 둘 이상의 언어를 지원하는 경우 쉽게 언어마다 별도의 음성을 등록할 수 없습니다. 드물지만 단일 음성을 사용해 두 개 이상의 언어를 처리할 수 있는 경우 두 개의 개별 음성을 나열하고 동일한 로직을 내부적으로 사용합니다 그러나 모든 음성의 발화를 처리하는 음성을 생성하려는 경우 확장 프로그램의 매니페스트에서 lang 매개변수를 제외하세요.

마지막으로, 엔진이 이벤트를 전송하여 클라이언트를 업데이트할 수 있는 경우 event_types 매개변수가 필요합니다. 몇 가지 간단한 예가 있습니다. 최소한 'end' 이벤트 유형을 지원하여 을 사용하지 않는 것이 좋습니다. 그렇지 않으면 Chrome에서 대기열에 추가된 발화를 예약할 수 없습니다.

로드된 확장 프로그램은 chrome.ttsEngine.updateVoices ( updateVoices는 카멜 표기법을 사용합니다(예: voiceName: 매니페스트 파일을 사용하는 매니페스트 파일과 달리 voice_name).

전송할 수 있는 이벤트 유형은 speak() 메서드가 전송하는 이벤트 유형과 일치합니다. 수신:

  • 'start': 엔진이 발화를 말하기 시작했습니다.
  • 'word': 단어 경계에 도달했습니다. event.charIndex를 사용하여 현재 음성을 확인합니다. 있습니다.
  • 'sentence': 문장 경계에 도달했습니다. event.charIndex를 사용하여 현재 위치를 지정할 수 있습니다.
  • 'marker': SSML 마커에 도달했습니다. event.charIndex를 사용하여 현재 음성을 확인합니다. 있습니다.
  • 'end': 엔진에서 발화가 완료되었습니다.
  • 'error': 엔진 관련 오류가 발생하여 이 발화를 할 수 없습니다. 더 전달하기 event.errorMessage에 있습니다.

'interrupted''cancelled' 이벤트는 음성 엔진에서 전송되지 않습니다. Kubernetes는 Chrome에서 자동으로 실행됩니다.

텍스트 음성 변환 클라이언트는 다음을 호출하여 확장 프로그램의 매니페스트에서 음성 정보를 가져올 수 있습니다. tts.getVoices(아래 설명과 같이 음성 이벤트 리스너를 등록했다고 가정)

음성 이벤트 처리

클라이언트 요청에 음성을 생성하려면 확장 프로그램이 두 클라이언트 모두에 대한 리스너를 등록해야 합니다. onSpeakonStop

const speakListener = (utterance, options, sendTtsEvent) => {
  sendTtsEvent({type: 'start', charIndex: 0})

  // (start speaking)

  sendTtsEvent({type: 'end', charIndex: utterance.length})
};

const stopListener = () => {
  // (stop all speech)
};

chrome.ttsEngine.onSpeak.addListener(speakListener);
chrome.ttsEngine.onStop.addListener(stopListener);

지정된 음성 요청을 확장 프로그램에 전송할지 여부는 전적으로 확장 프로그램이 매니페스트에 지정된 음성 매개변수를 지원하고 등록했는지 여부 onSpeakonStop 리스너 즉, 기한 연장이 되면 광고 게재가 시작될 수 있으므로 이를 처리할지 동적으로 결정합니다.

유형

AudioBuffer

Chrome 92 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

오디오 버퍼 및 관련 데이터를 포함하는 매개변수입니다.

속성

  • audioBuffer

    배열 버퍼

    텍스트 음성 변환 엔진의 오디오 버퍼입니다. 오디오 스트림 옵션은 정확히 audioStreamOptions.bufferSize가 길고, audioStreamOptions.sampleRate에서 모노로 인코딩되고, 선형 pcm, 32비트 부호 있는 부동 소수점 수(자바스크립트의 Float32Array 유형)로 인코딩되어야 합니다.

  • charIndex

    숫자 선택사항

    이 오디오 버퍼와 연결된 문자 색인입니다.

  • isLastBuffer

    불리언 선택사항

    이 오디오 버퍼가 말하는 텍스트의 마지막인 경우 true입니다.

AudioStreamOptions

Chrome 92 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

엔진에서 생성될 것으로 예상되는 오디오 스트림 형식을 포함합니다.

속성

  • bufferSize

    숫자

    오디오 버퍼 내의 샘플 수입니다.

  • sampleRate

    숫자

    오디오 버퍼에서 예상되는 샘플링 레이트입니다.

SpeakOptions

Chrome 92 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

tts.speak() 메서드에 지정된 옵션입니다.

속성

  • gender

    VoiceGender (선택사항)

    <ph type="x-smartling-placeholder"></ph> Chrome 92 이후 지원 중단됨

    성별은 지원 중단되었으며 무시됩니다.

    합성된 음성의 음성 성별입니다.

  • lang

    문자열(선택사항)

    합성에 사용되는 언어로, language-region 형식입니다. 예: 'en', 'en-US', 'en-GB', 'zh-CN'.

  • 투구

    숫자 선택사항

    말하기 음조는 0과 2 사이로, 0이 가장 낮고 2가 가장 높습니다. 1.0은 이 음성의 기본 높낮이에 해당합니다.

  • 요금

    숫자 선택사항

    이 음성의 기본 속도를 기준으로 한 말하기 속도입니다. 1.0이 기본 속도이며 일반적으로 분당 180~220단어입니다. 2.0은 기본 속도의 2배이며 0.5는 절반입니다. 이 값은 0.1 이상, 10.0 이하여야 합니다. 음성이 이 전체 속도를 지원하지 않는 경우 오류를 반환해서는 안 됩니다. 대신 음성이 지원하는 범위로 속도를 자르세요.

  • voiceName

    문자열(선택사항)

    합성에 사용할 음성 이름입니다.

  • 볼륨

    숫자 선택사항

    말하기 볼륨은 0 이상 1 이하입니다. 0이 가장 낮고 1이 가장 높으며 1이 가장 높으며 기본값은 1.0입니다.

VoiceGender

Chrome 54 이상 에서 확인하세요. Chrome 70 이후 지원 중단됨

성별은 지원 중단되었으며 무시됩니다.

열거형

"남성"

"여성"

메서드

updateVoices()

Chrome 66 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.ttsEngine.updateVoices(
  voices: TtsVoice[],
)

음성 목록을 업데이트하기 위해 엔진에서 호출합니다. 이 목록은 이 확장 프로그램의 매니페스트에 선언된 모든 음성보다 우선 적용됩니다.

매개변수

  • 목소리

    음성 합성에 사용할 수 있는 음성을 나타내는 tts.TtsVoice 객체의 배열입니다.

이벤트

onPause

chrome.ttsEngine.onPause.addListener(
  callback: function,
)

선택사항: 엔진이 일시중지 이벤트를 지원하는 경우 이벤트 다시 시작 또는 중지 이벤트를 수신할 때까지 현재 음성으로 안내되는 발화를 일시중지해야 합니다(있는 경우). 또한 정지 이벤트는 일시중지 상태를 지워야 합니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    () => void

onResume

chrome.ttsEngine.onResume.addListener(
  callback: function,
)

선택사항: 엔진이 일시중지 이벤트를 지원하는 경우 이벤트 재개도 지원해야 현재 발화를 계속 말할 수 있습니다(있는 경우). 또한 정지 이벤트는 일시중지 상태를 지워야 합니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    () => void

onSpeak

chrome.ttsEngine.onSpeak.addListener(
  callback: function,
)

사용자가 tts.speak()를 호출하고 이 확장 프로그램의 매니페스트 음성 중 하나가 옵션 객체와 가장 먼저 일치할 때 호출됩니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (utterance: string, options: SpeakOptions, sendTtsEvent: function) => void

    • 발화

      문자열

    • 옵션
    • sendTtsEvent

      함수

      sendTtsEvent 매개변수는 다음과 같습니다.

      (event: tts.TtsEvent) => void

      • event

        이 발화의 상태를 나타내는 텍스트 음성 변환 엔진의 이벤트입니다.

onSpeakWithAudioStream

Chrome 92 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.ttsEngine.onSpeakWithAudioStream.addListener(
  callback: function,
)

사용자가 tts.speak()를 호출하고 이 확장 프로그램의 매니페스트 음성 중 하나가 옵션 객체와 가장 먼저 일치할 때 호출됩니다. ttsEngine.onSpeak와는 다른 점은 Chrome이 오디오 재생 서비스를 제공하고 tts 이벤트 전달을 처리한다는 점입니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (utterance: string, options: SpeakOptions, audioStreamOptions: AudioStreamOptions, sendTtsAudio: function, sendError: function) => void

    • 발화

      문자열

    • 옵션
    • audioStreamOptions
    • sendTtsAudio

      함수

      sendTtsAudio 매개변수는 다음과 같습니다.

      (audioBufferParams: AudioBuffer) => void

      • audioBufferParams

        오디오 버퍼 및 관련 데이터를 포함하는 매개변수입니다.

    • sendError

      함수

      Chrome 94 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

      sendError 매개변수는 다음과 같습니다.

      (errorMessage?: string) => void

      • errorMessage

        문자열(선택사항)

        오류를 설명하는 문자열입니다.

onStop

chrome.ttsEngine.onStop.addListener(
  callback: function,
)

tts.stop으로 전화를 걸었을 때 이 확장 프로그램이 말하고 있을 때 실행됩니다. 확장 프로그램이 onStop 호출을 수신하고 음성이 이미 중지되었다면 오류가 발생하지 않아야 합니다. 음성이 일시중지 상태인 경우 일시중지 상태가 취소됩니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    () => void