mirror of
https://github.com/jambonz/speech-utils.git
synced 2025-12-19 03:37:49 +00:00
@@ -81,7 +81,7 @@ async function synthAudio(client, logger, stats, { account_sid,
|
||||
else if ('nvidia' === vendor) {
|
||||
assert.ok(voice, 'synthAudio requires voice when nvidia is used');
|
||||
assert.ok(language, 'synthAudio requires language when nvidia is used');
|
||||
assert.ok(credentials.riva_uri, 'synthAudio requires riva_uri in credentials when nuance is used');
|
||||
assert.ok(credentials.riva_server_uri, 'synthAudio requires riva_server_uri in credentials when nvidia is used');
|
||||
}
|
||||
else if ('ibm' === vendor) {
|
||||
assert.ok(voice, 'synthAudio requires voice when ibm is used');
|
||||
@@ -425,20 +425,25 @@ const synthNuance = async(client, logger, {credentials, stats, voice, model, tex
|
||||
};
|
||||
|
||||
const synthNvidia = async(client, logger, {credentials, stats, language, voice, model, text}) => {
|
||||
const {riva_uri} = credentials;
|
||||
const rivaClient = await createRivaClient(riva_uri);
|
||||
|
||||
const request = new SynthesizeSpeechRequest();
|
||||
request.setVoiceName(voice);
|
||||
request.setLanguageCode(language);
|
||||
request.setSampleRateHz(8000);
|
||||
request.setEncoding(AudioEncoding.LINEAR_PCM);
|
||||
request.setText(text);
|
||||
const {riva_server_uri} = credentials;
|
||||
let rivaClient, request;
|
||||
try {
|
||||
rivaClient = await createRivaClient(riva_server_uri);
|
||||
request = new SynthesizeSpeechRequest();
|
||||
request.setVoiceName(voice);
|
||||
request.setLanguageCode(language);
|
||||
request.setSampleRateHz(8000);
|
||||
request.setEncoding(AudioEncoding.LINEAR_PCM);
|
||||
request.setText(text);
|
||||
} catch (err) {
|
||||
logger.info({err}, 'error creating riva client');
|
||||
return Promise.reject(err);
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
rivaClient.synthesize(request, (err, response) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
logger.info({err, voice, language}, 'error synthesizing speech using Nvidia');
|
||||
return reject(err);
|
||||
}
|
||||
resolve(Buffer.from(response.getAudio()));
|
||||
|
||||
@@ -300,7 +300,7 @@ test('Nvidia speech synth tests', async(t) => {
|
||||
let opts = await synthAudio(stats, {
|
||||
vendor: 'nvidia',
|
||||
credentials: {
|
||||
riva_uri: process.env.RIVA_URI,
|
||||
riva_server_uri: process.env.RIVA_URI,
|
||||
},
|
||||
language: 'en-US',
|
||||
voice: 'English-US.Female-1',
|
||||
@@ -311,7 +311,7 @@ test('Nvidia speech synth tests', async(t) => {
|
||||
opts = await synthAudio(stats, {
|
||||
vendor: 'nvidia',
|
||||
credentials: {
|
||||
riva_uri: process.env.RIVA_URI,
|
||||
riva_server_uri: process.env.RIVA_URI,
|
||||
},
|
||||
language: 'en-US',
|
||||
voice: 'English-US.Female-1',
|
||||
|
||||
Reference in New Issue
Block a user