2017-01-12 1 views
2

저는 시각 장애가있는 사람들을위한 홈 자동화 프로젝트를 위해 브라우저에서 음성 합성을 구현하려고합니다. 내 테스트 페이지에서 나는 speak() 메서드를 호출하고 실제로 그것을 듣는 데 약 1 초의 지연이 있음을 발견했습니다.웹 스피치 API 지연. 내 코드가 좋지 않습니까, 아니면 예상되는 코드입니까?

이것이 정상적인 동작인지 아니면 내가 잘못하고 있는지 궁금한 것이 있습니다. 누군가가 (심지어 0.5 초 또는으로)을 속도를하는 방법에 대한 조언을 제공 할 수 있다면 나는 정말 :) 감사하겠습니다

[편집 1]
좋아, MS에서 테스트 페이지를 해봤 때문에 Edge (Chrome 만 사용 중이 었음) 지연이 사라졌습니다. 또한 Chrome에서 Web Speech Synthesis Demo을 시도했으며 '음성'을 '기본'으로 설정했으며 지연도 없었습니다. 두 테스트 모두 영국 영어 음성으로 텍스트를 렌더링했습니다.
크롬에서 테스트 페이지는 오스트레일리아 - 영어 음성으로 텍스트를 렌더링하고 (나는 AU에 있음) 재생하기 전에 지연이 있습니다.
내 내장은 Chrome 브라우저가 로컬 시스템 음성 대신 일부 원격 위치에서 음성을로드하고 있으며이 특정 페이지 (예 : codepen.io의 데모가 동일한 브라우저에서 정상적으로 작동 함)에서만 음성을로드한다고 알려줍니다. 그러나 내가 모르는 것은 입니다. 이유는입니다.

전화가 걸려 올 때마다 음성을 한 번만로드하면 문제가 발생하지 않을 것입니다. (나는 단지 그 일이 일어 났을 것이라고 추측합니다).
는 [/ EDIT 1]

여기 내 코드입니다 :

<body> 
    <div class='col col-xs-6'> 
     <div style='width:100%;'> 
     <button type='button' class='btn' onmouseover='speak("mouse over");' onmouseout="cancel();"> 
      Test button. 
     </button> 
     </div> 
    </div> 


    <p id="msg"></p> 
    <script type="text/javascript"> 
     var globalVolume = 0.8; 
     var globalRate = 1; 
     var globalPitch = 0.9; 
     var enterMsg = "Mouse over"; 


     function speak(text) { 
      var msg = new SpeechSynthesisUtterance(); 
      msg.text = text; 
      msg.volume = globalVolume; 
      msg.rate = globalRate; 
      msg.pitch = globalPitch; 
      //msg.voice = "native"; 
      window.speechSynthesis.speak(msg); 
     } 

     function cancel() { 
     window.speechSynthesis.cancel(); 
     } 

     //speak("Hello, world!"); 
    </script> 
</body> 

답변

1

당신이 구글 "로 시작하는 사람의 비 네이티브 목소리의 (하나를 선택하면 당신이 당신의 업데이트에 이론화 된 것처럼 ") 소리는 Google 서버에서 생성 된 다음 브라우저로 보내 지므로 지연이 발생합니다. 실제로 브라우저에 음성을로드하는 것이 아니므로 TTS를 사용하려고 할 때마다 소리를 생성하기 위해 서버로 보냅니다. 따라서 불행하게도 컴퓨터에서 사용할 수있는 기본 음성 이외의 것을 사용하면 네트워크 지연이 항상 존재하게됩니다. 지연을 제외하고 Google에 전송되는 모든 연설의 개인 정보 보호 문제가 있습니다 (또한 NSA 또는 서버를 감시하고있는 다른 사람). Edge와 Firefox는 기본적으로 기본 음성을 사용하며 Google의 독점적 인 음성 서비스를 선택하게하지 않으므로 지연 시간이 항상 부족합니다.

관련 문제