2021-04-07 01:36:35 +02:00
|
|
|
const BaseEngine = require('../BaseEngine')
|
|
|
|
const { spawn } = require('child_process')
|
2021-04-06 02:16:09 +02:00
|
|
|
|
2021-04-07 01:36:35 +02:00
|
|
|
module.exports = class extends BaseEngine {
|
2021-04-06 02:16:09 +02:00
|
|
|
constructor() {
|
2021-04-09 03:00:55 +02:00
|
|
|
super('espeak','ESpeak', 'wav')
|
2021-04-06 02:16:09 +02:00
|
|
|
}
|
2021-04-07 01:33:47 +02:00
|
|
|
getDefaultVoice() {
|
|
|
|
return 'en';
|
|
|
|
}
|
2021-04-07 01:36:35 +02:00
|
|
|
async getSpeechFile(text, filepath, voice = this.getDefaultVoice(), params = {}) {
|
|
|
|
let proc = await spawn('espeak', ['-v', voice, '-w', filepath, '--stdin']);
|
2021-04-06 12:46:11 +02:00
|
|
|
proc.stdin.end(text);
|
2021-04-06 02:16:09 +02:00
|
|
|
}
|
|
|
|
}
|