저는 시각 장애가있는 사람들을위한 홈 자동화 프로젝트를 위해 브라우저에서 음성 합성을 구현하려고합니다. 내 테스트 페이지에서 나는 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>