You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud TTS生成MP3时动态文本开头音节丢失的解决办法咨询

Google Cloud TTS生成MP3时动态文本开头音节丢失的解决办法咨询

我最近做了一个调用Google Cloud Text-to-Speech的PHP服务,功能是把返回的base64解码后的audioContent直接写入MP3文件。现在遇到个头疼的问题:如果在动态文本前加一段硬编码的短语(比如“Ein Moment der Ruhe…”,和后面动态文本里可能出现的短语一致),这段硬编码内容播放完全正常,没有任何单词丢失;但只要动态文本一开头,前1-2个词总是会淡入或者直接被切掉。

我试过在SSML里加开头或中间的停顿标签,但不管怎么调整,生成的MP3播放时动态文本的开头部分还是有问题。因为我用的是虚拟主机,不想自己搞转码流程,就想直接用Google返回的MP3文件。有没有什么办法能保证动态文本的第一个音节不会丢失啊?

下面是我的服务代码:

namespace App\Services;

class GoogleTtsService extends TtsService
{
    private const API_URL = 'https://texttospeech.googleapis.com/v1/text:synthesize';

    public function synthesize(string $text, array $options, string $outputPath, string $apiKey): bool
    {
        $breakMs = defined('TTS_INITIAL_BREAK_MS') ? TTS_INITIAL_BREAK_MS : 100;

        // 这段硬编码的短语播放完全正常
        $ssml = '<speak>' 
            . 'Ein Moment der Ruhe...' 
            . '<break time="'. $breakMs .'ms"/>' 
            . htmlspecialchars($text, ENT_QUOTES|ENT_XML1, 'UTF-8') // 这段永远播放不正常
            . '</speak>';

        $payload = [
            'input' => ['ssml' => $ssml],
            'voice' => [
                'languageCode' => $options['language'] ?? 'de-DE',
                'name' => $options['voice'] ?? 'de-DE-Standard-A'
            ],
            'audioConfig' => [
                'audioEncoding' => 'MP3',
                'speakingRate' => $options['speed'] ?? 1.0
            ]
        ];

        $response = $this->postJson(self::API_URL . '?key=' . urlencode($apiKey), $payload);

        if (empty($response['audioContent'])) {
            return false;
        }

        $audioData = base64_decode($response['audioContent']);
        return file_put_contents($outputPath, $audioData) !== false;
    }
}

相关调试日志:

[28-Jun-2025 00:15:21] TTS chunk for job 311: text length=4159
[28-Jun-2025 00:15:21] SSML sent (first 100 chars): Ein Moment der Ruhe...Ein Moment der Ruhe am Morgen. Ein bewu…

有没有大佬能给点可行的解决建议呀?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 10:38:08