Google Cloud TTS引擎忽略了大量文本上的Break SSML标签



我正在尝试从一个大段落中生成音频,但是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']));

该请求成功完成,但是丢失了断路标签。这不仅可以通过代码重现,还可以在其服务网站上的公共游乐场上进行。

我打了相同。我了解到,如果SSML标签具有任何错误,则它们都被忽略,而没有任何错误处理。Google确实不提供反馈或文档的说明,这是对您的发生的,但这是Google适合您的。我的解决方案:

  • 逃脱不允许字符的输入文本(&amp;,&quot,',&lt;,gt;(。快速的正则替换应进行三分线。
  • 确保"SSML标签中的标记是使用 cartare
  • 逃脱的

例如。这行不通:

<speak>The man said "hi". <break time="2s" /> I smiled.</speak>

这应该:

<speak>The man said &quot;hi&quot;. <break time="2s" /> I smiled.</speak>

请打开问题跟踪器,如果您认为这是一个错误,因此文本到语音系统工程师可以使用您正在体验的SSML标签来解决问题。

相关内容

  • 没有找到相关文章

最新更新