Electron 使用 Windows 自带 TTS 进行中文语音合成播放
要使用 Windows 自带的 TTS 进行中文语音合成播放,需要先安装中文语音包。
- 在 Windows 设置中找到'语音'选项,然后点击'语音、笔画和手写'选项卡。
- 点击'语音'选项卡,然后点击'添加声音'按钮。
- 在'添加声音'对话框中,选择中文语音包并安装。
- 安装完成后,可以使用 Windows 自带的 TTS API 进行中文语音合成播放。
下面是一个使用 Electron 和 Windows 自带 TTS 进行中文语音合成播放的示例代码:
const electron = require('electron');
const { app } = electron;
const { BrowserWindow } = electron;
const { ipcMain } = electron;
const { shell } = electron;
const { dialog } = electron;
const { nativeImage } = electron;
const { spawn } = require('child_process');
const path = require('path');
const url = require('url');
const fs = require('fs');
let mainWindow;
function createWindow() {
mainWindow = new BrowserWindow({ width: 800, height: 600 });
mainWindow.loadURL(url.format({
pathname: path.join(__dirname, 'index.html'),
protocol: 'file:',
slashes: true,
}));
mainWindow.on('closed', () => {
mainWindow = null;
});
}
app.on('ready', () => {
createWindow();
});
ipcMain.on('tts', (event, message) => {
const child = spawn('powershell.exe', [
'-command',
`Add-Type -AssemblyName System.speech; $synth = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer; $synth.Speak('${message}');`,
]);
child.on('error', (err) => {
console.error(err);
});
child.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
});
在上面的代码中,我们使用了 Electron 的 ipcMain 来监听来自渲染进程的'tts'事件。当事件发生时,我们使用 Windows 自带的 TTS API 来合成指定的中文文本,并将其播放出来。
在渲染进程中,我们可以像这样触发'tts'事件:
const { ipcRenderer } = require('electron');
ipcRenderer.send('tts', '你好,世界!');
这将会触发主进程中的'tts'事件,并播放中文语音合成。
原文地址: https://www.cveoy.top/t/topic/nfCi 著作权归作者所有。请勿转载和采集!