概述
@nodert-win8.1/windows.media.speechsynthesis
是一个 Node.js 的 npm 包,它提供了 SpeechSynthesizer 对象,可以在 Windows 平台上进行文字转语音的操作。本文将介绍如何在前端项目中使用这个包。
安装
在命令行中使用以下命令进行安装:
npm install @nodert-win8.1/windows.media.speechsynthesis
使用
引入 @nodert-win8.1/windows.media.speechsynthesis
,创建 SpeechSynthesizer 对象后,就可以使用该对象的方法和属性进行文字转语音的操作。
下面是一个简单的例子:
-- -------------------- ---- ------- ----- - ------------------ ------- ---------------- - - -------------------------------------------------------- ----- ----------- - --- -------------------- ----- ----- - ---------------------------------- ---------- -- - ----------------- - ----- ---------------------------------- --------- --------------------------------- -------- ------- - ------------------------- --------------------------------- ----- ---- --- ---
这个例子中,我们首先引入了包并创建了一个 SpeechSynthesizer 对象。然后使用 getDefaultAsync()
方法获取当前系统上的默认语音信息,将其作为语音输出的声音来源。接着使用 speakTextAsync()
方法以文字形式输出“Hello, world!”。
最后,我们监听了 SpeechSynthesizer 对象上的 'canceled' 事件。在文本输出被取消的时候,程序将在控制台上打印出一份详细的事件报告。
API 参考
SpeechSynthesizer 对象提供了各种方法和属性,这里列出了一些常用的。更详细的 API 参考请参考官方文档。
new SpeechSynthesizer()
创建一个 SpeechSynthesizer 对象。
SpeechSynthesizer.options
该属性返回一个对象,包括各种关于发音的语音,如发音速度,音高等等的参数。它们可以以键值对的形式读取和更改。
const synthesizer = new SpeechSynthesizer(); console.log(synthesizer.options); // { volume: 1, rate: 1, pitch: 1 }
SpeechSynthesizer.voice
该属性返回一个 VoiceInformation 对象,表示当前语音合成器的语音信息。可以通过传入一个 VoiceInformation 对象来改变语音合成器的语音来源。
const synthesizer = new SpeechSynthesizer(); const voice = VoiceInformation.getDefaultAsync() .then(info => { synthesizer.voice = info; });
SpeechSynthesizer.speakTextAsync(text)
该方法以文字形式输出语音。
const synthesizer = new SpeechSynthesizer(); synthesizer.speakTextAsync('Hello, world!');
SpeechSynthesizer.speakSsmlAsync(ssml)
该方法以 SSML 格式输出语音。
-- -------------------- ---- ------- ----- ----------- - --- -------------------- ----- ---- - - ----- --------------- ------ ------------- ------------------------------------------- ----------------- ------ ----------------------------- ----------------------- ------------- -------- -- ---------------------------------
SpeechSynthesizer.pause()
该方法暂停语音输出。
const synthesizer = new SpeechSynthesizer(); synthesizer.speakTextAsync('Hello, world!'); setTimeout(() => { synthesizer.pause(); }, 5000);
SpeechSynthesizer.resume()
该方法恢复语音输出。
-- -------------------- ---- ------- ----- ----------- - --- -------------------- ---------------------------------- --------- ------------- -- - -------------------- -- ------ ------------- -- - --------------------- -- -------
SpeechSynthesizer.stop()
该方法停止语音输出。
const synthesizer = new SpeechSynthesizer(); synthesizer.speakTextAsync('Hello, world!'); setTimeout(() => { synthesizer.stop(); }, 5000);
SpeechSynthesizer.events.on(event, callback)
该方法监听 SpeechSynthesizer 对象上的事件。其中 event
为事件名称,callback
为回调函数。
SpeechSynthesizer 对象有以下三个事件:
- 'beginning': 当输出语音开始时触发。
- 'completed': 当输出语音完成时触发。
- 'canceled': 当输出语音被取消时触发。
-- -------------------- ---- ------- ----- ----------- - --- -------------------- ---------------------------------- --------- ---------------------------------- -------- -- - ---------------------- --- ---------------------------------- -------- -- - ---------------------- --- --------------------------------- -------- ------- - ------------------------ --------------------------------- ----- ---- ---
结语
本文介绍了如何在前端项目中使用 @nodert-win8.1/windows.media.speechsynthesis
这个 npm 包。我们了解了该包的安装方法和使用方法,列举了一些常用的 API。希望这篇文章对你有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066bce967216659e244c8b