전문
Web Speech API는 음성인식(Voice recognition, Speech To Text)와 음성합성(Speech synthesis, Text To Speech) 기능을 자바스크립트에 추가하였습니다. 이 포스트는 Chrome 33 버전(모바일 및 데스크탑)에 최근 추가된 API에 대한 마지막 버전을 대략적으로 포함하고 있습니다. 만약 음성 인식에 흥미가 있으시다면 Glen Shires가 얼마전
음성 인식 기능에 대해 쓴 "말로 동작하는 웹앱: Web Speech API의 소개(Voice Driven Web Apps: Introduction to the Web Speech API)"을 참조하시기 바랍니다.
기초 사항
var msg = new SpeechSynthesisUtterance('Hello World');
window.speechSynthesis.speak(msg);
직접 시도해보세요! var msg = new SpeechSynthesisUtterance();
var voices = window.speechSynthesis.getVoices();
msg.voice = voices[10]; // Note: some voices don't support altering params
msg.voiceURI = 'native';
msg.volume = 1; // 0 to 1
msg.rate = 1; // 0.1 to 10
msg.pitch = 2; //0 to 2
msg.text = 'Hello World';
msg.lang = 'en-US';
msg.onend = function(e) {
console.log('Finished in ' + event.elapsedTime + ' seconds.');
};
speechSynthesis.speak(msg);
목소리(Voice) 설정
speechSynthesis.getVoices().forEach(function(voice) {
console.log(voice.name, voice.default ? '(default)' :'');
});
그리고나서 다음과 같이 utterance 객체의 .voice의 설정을 통해 다른 목소리를 설정할 수 있습니다.
var msg = new SpeechSynthesisUtterance('I see dead people!');
msg.voice = speechSynthesis.getVoices().filter(function(voice) { return voice.name == 'Whisper'; })[0];
speechSynthesis.speak(msg);
데모
불행하게도 이는 음성 합성(Speech synthesis)를 수행하기 위해 문서화되지 않은 기능(그리고 비공식적인 API)을 사용하였습니다. 자 이제 우리는 다시 번역을 말할 수 있는 완전한 Web Speech API를 가지게 되었습니다! 데모는 Synthesis API를 사용하도록 업데이트해두었습니다.
브라우저 지원
현재 Chrome 33 버전은 Web Speech API를 완전하게 지원하며 iOS7의 사파리는 일부의 기능을 지원하고 있습니다.
기능의 지원여부 검사
if ('speechSynthesis' in window) {
// Synthesis support. Make your web apps talk!
}
if ('SpeechRecognition' in window) {
// Speech recognition support. Talk to your apps!
}
댓글 없음:
댓글 쓰기