Как использовать нейронные голоса в боте Azure Direct Line Speech - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь обновить экспериментальный DirectLineSpeech Echo Bot пример Speak() метода для использования нейронных голосов, но, похоже, он не работает.

Вот код Iя пытаюсь заставить его работать -

public IActivity Speak(string message)
{
    var activity = MessageFactory.Text(message);
    string body = @"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='en-US'>
        <voice name='Microsoft Server Speech Text to Speech Voice (en-US, JessaNeural)'>
        <mstts:express-as type='chat'>" + $"{message}" + "</mstts:express-as></voice></speak>";
    activity.Speak = body;
    return activity;
}

Это основано на рекомендации, приведенной в Руководстве по SSML

Вот стандартный T2S для справки:

public IActivity Speak(string message)
{
    var activity = MessageFactory.Text(message);
    string body = @"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='en-US'>
        <voice name='Microsoft Server Speech Text to Speech Voice (en-US, JessaRUS)'>" +
        $"{message}" + "</voice></speak>";
    activity.Speak = body;
    return activity;
}

Может ли кто-нибудь помочь мне понять, как это работает или что я делаю не так?

Если это поможет найти какие-либо ограничения, я развернул бота в качестве службы приложений на уровне бесплатного доступа F1 в регионе westus2.

Редактировать: обновлен код для использования полного имени, т.е. Microsoft Server Speech Text to Speech Voice (en-US, JessaNeural) вместо короткого имени en-US-JessaNeural, как предложил Николай. Но, похоже, это тоже не поможет.

1 Ответ

1 голос
/ 23 октября 2019

Точное имя Нейронного голоса Microsoft Server Speech Text to Speech Voice (en-US, JessaNeural). Но главное, что вы хотели использовать стиль речи, используя mstts:express-as.

Дело в том, что вы забыли добавить блок, объявляющий пространство имен mstts в xml (xmlns:mstts='https://www.w3.org/2001/mstts'):

"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='en-US'>
    <voice name='en-US-JessaNeural'>
        <mstts:express-as type='chat'>" + $"{message}" + "</mstts:express-as>
    </voice>
</speak>";

Должно быть:

"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xmlns:mstts='https://www.w3.org/2001/mstts' xml:lang='en-US'>
    <voice name='en-US-JessaNeural'>
        <mstts:express-as type='chat'>" + $"{message}" + "</mstts:express-as>
    </voice>
</speak>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...