Amazon AWS Polly ignores VoiceId - Javascript SDK



我已经集成了我的Javascript AWS SDK,并向API发送了一个没有服务器的请求。一切正常,但问题是,端点"忽略"VoiceId。

问题:端点始终返回带有 VoiceID "Ivy"的 mp3。

例如,我voice发送Justin

.JS

getVoice(text, voice) {
let awsCredentials = new AWS.Credentials("XXXXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXX");
let settings = {
awsCredentials: awsCredentials,
awsRegion: "us-west-2",
pollyVoiceId: voice,
cacheSpeech: false
}
AWS.config.credentials = settings.awsCredentials;
AWS.config.region = settings.awsRegion;
let speechfile = new Promise(function (successCallback, errorCallback) {
var polly = new AWS.Polly();
var params = {
OutputFormat: 'mp3',
TextType: "ssml",
Text: text,
VoiceId: settings.pollyVoiceId
}
polly.synthesizeSpeech(params, function (error, data) {
if (error) {
errorCallback(error)
} else {
let audiostream = data.AudioStream;
successCallback(audiostream);
}
});
});
return speechfile;
}

发现问题。我不允许在我的服务中使用var"声音"。

getVoice(text, currentVoice) {
let voi = currentVoice;

let awsCredentials = new AWS.Credentials("xxxxxxxxxx", "xxxxxxxx");
let settings = {
awsCredentials: awsCredentials,
awsRegion: "us-west-1",
cacheSpeech: false
}
AWS.config.credentials = settings.awsCredentials;
AWS.config.region = settings.awsRegion;
let speechfile = new Promise(function (successCallback, errorCallback) {
var polly = new AWS.Polly();
var params = {
LanguageCode: "en-US",
OutputFormat: 'mp3',
TextType: "ssml",
Text: text,
VoiceId: voi
}
polly.synthesizeSpeech(params, function (error, data) {
if (error) {
errorCallback(error)
} else {
//alert(text + data.AudioStream);
let audiostream = data.AudioStream;
successCallback(audiostream);
}
});
});
return speechfile;
// end getVoice
}