Add TTS for node-addon-api (#871)

This commit is contained in:
Fangjun Kuang
2024-05-13 19:24:09 +08:00
committed by GitHub
parent 740d7ae9d6
commit 031134b4d4
21 changed files with 691 additions and 10 deletions

View File

@@ -25,8 +25,8 @@ for (const p of possible_paths) {
}
if (!found) {
let msg =
`Could not find sherpa-onnx. Tried\n\n ${possible_paths.join('\n ')}\n`
let msg = `Could not find sherpa-onnx-node. Tried\n\n ${
possible_paths.join('\n ')}\n`
if (os.platform() == 'darwin' && process.env.DYLD_LIBRARY_PATH &&
!process.env.DYLD_LIBRARY_PATH.includes(
`node_modules/sherpa-onnx-${platform_arch}`)) {

View File

@@ -0,0 +1,25 @@
const addon = require('./addon.js');
class OfflineTts {
constructor(config) {
this.handle = addon.createOfflineTts(config);
this.config = config;
this.numSpeakers = addon.getOfflineTtsNumSpeakers(this.handle);
this.sampleRate = addon.getOfflineTtsSampleRate(this.handle);
}
/*
input obj: {text: "xxxx", sid: 0, speed: 1.0}
where text is a string, sid is a int32, speed is a float
return an object {samples: Float32Array, sampleRate: <a number>}
*/
generate(obj) {
return addon.offlineTtsGenerate(this.handle, obj);
}
}
module.exports = {
OfflineTts,
}

View File

@@ -1,11 +1,13 @@
const addon = require('./addon.js')
const streaming_asr = require('./streaming-asr.js');
const non_streaming_asr = require('./non-streaming-asr.js');
const non_streaming_tts = require('./non-streaming-tts.js');
const vad = require('./vad.js');
module.exports = {
OnlineRecognizer: streaming_asr.OnlineRecognizer,
OfflineRecognizer: non_streaming_asr.OfflineRecognizer,
OfflineTts: non_streaming_tts.OfflineTts,
readWave: addon.readWave,
writeWave: addon.writeWave,
Display: streaming_asr.Display,