voice xml: lang = "en-US" xml: пол = "мужской" name = "Microsoft Server Речь Текст всегда женский голос - PullRequest
0 голосов
/ 14 мая 2018

Я просто пытаюсь разработать функцию, которая преобразует текст в речь. Проблема здесь в том, что обращение всегда происходит в женском голосе, хотя я указал 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 Ответ

0 голосов
/ 21 мая 2018

Согласно вашему описанию, я проверил атрибуты 3.2.1 голосового элемента о gender и name следующим образом:

  • пол: необязательный атрибут , указывающий предпочтительный пол голоса, чтобы произносить содержащийся текст . Перечислимые значения: "мужской", "женский", "нейтральный" или пустая строка "".

  • name: необязательный атрибут , указывающий специфичное для процессора имя голоса для произнесения содержащегося в нем текста . Значение может быть разделенным пробелами списком имен, упорядоченных по верхнему предпочтению вниз или пустой строкой "". В результате имя не должно содержать пробелов.

На основании вашего кода я проверил Поддерживаемые локали и голосовые шрифты :

enter image description here

Для мужского голоса вам также может потребоваться установить атрибут name элемента voice на Microsoft Server Speech Text to Speech Voice (en-US, BenjaminRUS).

...