Голос xml:lang="en-US" xml: пол = "мужчина" имя = "текст речи Microsoft Server всегда женским голосом
Я просто пытаюсь разработать функцию, которая преобразует текст в речь. Проблема здесь в том, что обращение всегда происходит в женском голосе, хотя я и указал xml:gender
мужчине. Вот моя функция, могу ли я в любом случае преобразовать свои тексты в аудио мужским голосом?
textToSpeech("This is a test to check the conversion of text to speech");
function textToSpeech(text: string) {
const requestOptions: request.CoreOptions = {
headers: {
"Ocp-Apim-Subscription-Key": config.speech.bingSpeech.key1,
}
};
request.post(
`${config.speech.bingSpeech.authEndPoint}/issueToken`,
requestOptions,
(err, response, body) => {
const accessToken = response.body;
const payLoad = `
<speak version="1.0" xml:lang="en-US">
<voice xml:lang="en-US" xml:gender="Male" name="Microsoft Server Speech Text to Speech Voice (en-US, ZiraRus)">
${text}
</voice>
</speak>
`;
const requestOptions: request.CoreOptions = {
headers: {
"X-Microsoft-OutputFormat": "audio-16khz-128kbitrate-mono-mp3",
"Content-Type": "application/ssml+xml",
"Host": "speech.platform.bing.com",
"Content-Length": payLoad.length,
"Authorization": "Bearer " + accessToken,
"User-Agent": "NodeJS"
},
body: payLoad
};
request.post(
config.speech.bingSpeech.synthesizeUrl,
requestOptions
).pipe(fs.createWriteStream(__dirname + "/output.mp3"));
}
)
}
1 ответ
Согласно вашему описанию, я проверил 3.2.1 Элемент голоса о gender
а также name
атрибуты следующим образом:
пол: необязательный атрибут, указывающий предпочтительный пол голоса, чтобы говорить содержащийся текст. Перечислимые значения: "мужской", "женский", "нейтральный" или пустая строка "".
name: необязательный атрибут, указывающий специфичное для процессора имя голоса, чтобы произносить содержащийся текст. Значение может быть разделенным пробелами списком имен, упорядоченных по верхнему предпочтению вниз или пустой строкой "". В результате имя не должно содержать пробелов.
На основании вашего кода я проверил поддерживаемые локали и голосовые шрифты:
Для мужского голоса, вам также может понадобиться установить name
атрибут voice
элемент к Microsoft Server Speech Text to Speech Voice (en-US, BenjaminRUS)
,