Движок Google Cloud TTS игнорирует разрыв тегов SSML на больших кусках текста - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь создать звук из большого абзаца, но Google игнорирует теги SSML.

Теги соблюдаются, если я обрезаю текст до трех строк, но более того, он делает их невидимыми.

$body = [
  'input' => [
    'ssml' => '<speak><p>Client Acquisition Engine Funnel For Creative Professionals</p><break time="3000ms"/><p>Most creative professionals I know are great at what they do, they have happy customers and deliver a high standard of work. Most however aren\'t very adept at acquiring new clients and have fallen into the habit of relying too much on referrals.</p><break time="3000ms"/><p>I\'ll be honest here, I used to do that as well.</p><break time="3000ms"/><p>For a long time, I just thought: "Well, if keep turning out good work I\'ll keep getting referrals"?</p><break time="3000ms"/><p>Turns out, that\'s not the case at all. Relying on referrals is a highly risky \'strategy\' and is not recommended (I wrote about it here).</p><break time="3000ms"/><p>Deep down somewhere in your conscious you already know this and so every now and then you throw some money into Facebook & Google Ads and after burning through a fair amount cash and bearing little fruit, decide its not for you and carry on.</p><break time="3000ms"/><p>Also, relying on the 20% of your clients who bring in 80% of your revenue (those 1 or 2 hero long term clients who\'ve helped sustain your freelance business for years) is also a highly risky situation to be in. You wake in the middle of the night, every now and then, in a cold sweat.. they\'ve left you!</p><break time="3000ms"/><p>Phew! It was only a dream...</p><break time="3000ms"/><p>I was exactly like that, but then I started to develop and systemise my sales & marketing processes. So that would be able to build a predictable lead flow, attracting more ideal prospects, delivering value, pre-qualifying leads, inviting those with highest engagement to book time on my calendar, all the while automating 80% of that process.</p><break time="3000ms"/><p>The key is to understand your own sales process, breaking each of the stages down into steps and look to automating as much of the repetitive tasks as you can. Doing so will result in being able to attract and manage more leads, filter out the ideal customers, which in turn gives you me more time, money and freedom.</p><break time="3000ms"/><p>Sounds complicated, and if you don\'t have a clear pathway, it can quickly end up turning into a rabbit hole.</p><break time="3000ms"/><p>But you can stop faffing about and get on the right track by downloading the Client Acquisition Engine Funnel Map & Toolkit today.</p><break time="3000ms"/></speak>',
  ],
  'voice' => ['language_code' => 'en-US', 'name' => 'en-US-Wavenet-D'],
  'audioConfig' => ['audio_encoding' => 'MP3'],
];

$result = json_decode($client->post('https://texttospeech.googleapis.com/v1beta1/text:synthesize?key=[REDACTED]', $body)->getBody());

file_put_contents('test.mp3', base64_decode($result['audioContent']));

Запрос успешно выполнен, но теги разрыва отсутствуют. Это можно воспроизвести не только с помощью кода, но и на общедоступной игровой площадке на веб-сайте службы.

1 Ответ

0 голосов
/ 16 мая 2019

Пожалуйста, откройте Issue Tracker , если вы считаете, что это ошибка, чтобы инженеры Text-to-Speech Systems могли решить проблему с тегами SSML, которые вы испытываете.

...