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

Node.js中直接合并google-tts-api返回的多个Base64音频字符串

直接合并Google TTS Base64音频的Node.js方案

可以直接通过Buffer拼接实现,无需转存MP3文件或调用ffmpeg,核心逻辑是利用MP3的帧结构特性——同参数的MP3片段可直接拼接。具体步骤如下:

实现步骤

  • 提取每个Base64字符串的纯编码部分:去掉data:audio/mpeg;base64,前缀
  • 将纯Base64转换为Node.js Buffer
  • 拼接所有Buffer为一个大Buffer
  • 再将合并后的Buffer转回Base64(可选添加data URI前缀)

代码示例

const { getAllAudioBase64 } = require('google-tts-api');

async function mergeTTSAudio() {
  // 获取6个Base64音频字符串数组
  const audioBase64List = await getAllAudioBase64({
    text: '需要转换的长文本内容',
    lang: 'zh-CN',
    // 其他配置参数
  });

  // 处理每个Base64,转为Buffer
  const audioBuffers = audioBase64List.map(base64Str => {
    // 移除data URI前缀,确保只保留纯Base64编码
    const pureBase64 = base64Str.replace(/^data:audio\/mpeg;base64,/, '');
    return Buffer.from(pureBase64, 'base64');
  });

  // 拼接所有Buffer
  const mergedBuffer = Buffer.concat(audioBuffers);

  // 转换为合并后的Base64,可选择添加回data URI前缀
  const mergedAudioBase64 = `data:audio/mpeg;base64,${mergedBuffer.toString('base64')}`;

  // 使用合并后的Base64,比如写入文件或前端播放
  console.log('合并完成的Base64音频:', mergedAudioBase64);
}

mergeTTSAudio();

失效原因说明

如果之前的方案没生效,大概率是没有正确移除data URI前缀,导致Base64转Buffer时出错。Google TTS返回的音频默认参数一致,无需额外处理格式兼容性问题。

内容的提问来源于stack exchange,提问作者Arya Anish

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:20:30