Как изменить выходной голос amazon lex? - PullRequest
1 голос
/ 23 сентября 2019

Я пытаюсь создать голосового бота с aws lex.

В этом ответ на один из намерений "Ваш инцидент INC11111111 закрыт" (текст).

Ответ вышеисходя из лямбда-функции.Пожалуйста, проверьте код ниже.

let response = (event, data) => {
    let lambda_response = {     
   "sessionAttributes": {
      "incidentNo":  event.currentIntent.slots.INCIDENT_NO,
    },   
    "dialogAction": {     
        "type": "Close",
        "fulfillmentState": "Fulfilled",
        "message": {       
           "contentType": "PlainText",
           "content": "Hi " + data["User ID"].split('.')[0]+", Your Incident Number " +  "INC"+event.currentIntent.slots.INCIDENT_NO+ " is ," + data["Status"]
        },    
     } 
    };

    return lambda_response;
};

Ex Инцидент №: INC11111111

Но голосовой вывод «ваш инцидент, 1 крор, 11 лакхов, 11 тысяч, 1 сотня закрыта».

То, что я ожидаю, это «Ваш инцидент INC ONE ONE ONE ONE ONE ONE ONE закрыт. Спасибо заранее.

1 Ответ

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

Вам необходимо использовать SSML (Язык разметки синтеза речи)

Используя теги SSML, вы можете настраивать и контролировать аспекты речи, такие как произношение, громкость и скорость речи.

Существует множество директив, которые вы можете использовать в SSML для произнесения вещей по-разному.В вашем случае директива say-as может быть полезна.

Что касается редактирования вопроса, попробуйте эти изменения

    "message": {       
       "contentType": "SSML",
       "content": "<speak> Hi " + data["User ID"].split('.')[0]+", Your Incident Number <say-as interpret-as="characters">" +  "INC"+event.currentIntent.slots.INCIDENT_NO+ "</say-as> is ," + data["Status"] +"</speak>"
    },    

Связанное чтение: Возможность объявления ответов в Amazon Lex и поддержке SSMLв текстовом ответе

...