Как использовать AWS polly в boto3 для паузы

Мой код следующий:

import boto3
polly_client = boto3.Session().client('polly')    

response = polly_client.synthesize_speech(
    VoiceId='Joanna',
    OutputFormat='mp3', 
    Text = sentence
)
audio = response['AudioStream']

Я пробовал использовать следующее предложение:

sentence = '''<speak><s>Mary had a little lamb</s> <s>Whose fleece was white as snow</s>And everywhere that Mary went, the lamb was sure to go.</speak>'''

но сгенерированный звук не имеет паузы, он просто читает текст.


person Paolo    schedule 22.10.2020    source источник
comment
Первая ссылка при поиске AWS Polly Pause: docs.aws.amazon. com/polly/latest/dg/supportedtags.html, который показывает, что вам нужно использовать <break> вместо <pause>.   -  person Mark B    schedule 22.10.2020
comment
@MarkB Спасибо за отрицательный голос. Я пробовал <break time="3s"/>, но это не работает   -  person Paolo    schedule 22.10.2020


Ответы (1)


Это генерирует аудиофайл для фразы Hello world с 2-секундной паузой между словами:

import boto3
polly_client = boto3.Session().client('polly')

sentence = '''<speak>Hello <break time='2000ms'/> World</speak>'''

response = polly_client.synthesize_speech(
    VoiceId='Joanna',
    OutputFormat='mp3',
    TextType='ssml',
    Text=sentence
)

file = open('speech.mp3', 'wb')
file.write(response['AudioStream'].read())
file.close()

Дополнительные сведения см. в подразделах документации aws в разделе Использование SSML.

person mcernak    schedule 24.10.2020