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

如何在NodeJS或JavaScript中将MP3音频文件转换为XML文件

将MP3转换为XML的Node.js实现方案

首先得明确你的需求:是提取MP3的元数据(如歌手、专辑、时长等)转换为XML,还是把音频内容转成文本再封装为XML?以下分两种场景给出实现:

场景1:提取MP3元数据生成XML

这类需求通常是读取MP3的ID3标签,再将标签数据格式化为XML。可以用node-id3库处理ID3标签,手动拼接XML字符串。

步骤:

  1. 安装依赖
npm install node-id3 fs
  1. 实现代码
const NodeID3 = require('node-id3');
const fs = require('fs');

// 读取MP3文件的元数据
const tags = NodeID3.read('./input.mp3');

// 拼接XML字符串
const xmlContent = `<?xml version="1.0" encoding="UTF-8"?>
<mp3-metadata>
  ${Object.keys(tags).map(key => `  <${key}>${tags[key]}</${key}>`).join('\n')}
</mp3-metadata>`;

// 写入XML文件
fs.writeFileSync('./output_metadata.xml', xmlContent);
console.log('元数据XML文件已生成');

场景2:将音频内容转文本后生成XML

如果需要把MP3里的语音内容转成文本,再封装为XML,可借助OpenAI Whisper的Node.js封装(本地运行或调用API)。这里用whisper-node库(本地运行需要提前安装Whisper)。

步骤:

  1. 安装依赖
npm install whisper-node fs

注意:需要先安装Python和Whisper,完成本地环境配置。

  1. 实现代码
const { Whisper } = require('whisper-node');
const fs = require('fs');

const whisper = new Whisper({ modelName: 'base' }); // 可选模型:tiny/base/small/medium/large

async function convertAudioToXml() {
  // 识别音频内容
  const transcription = await whisper.transcribe('./input.mp3');
  
  // 封装为XML
  const xmlContent = `<?xml version="1.0" encoding="UTF-8"?>
<audio-transcription>
  <text>${transcription.text}</text>
  <language>${transcription.language}</language>
</audio-transcription>`;

  // 写入XML文件
  fs.writeFileSync('./output_transcription.xml', xmlContent);
  console.log('音频转写XML文件已生成');
}

convertAudioToXml().catch(err => console.error('转换失败:', err));

注意事项

  • 若使用云语音识别API(如百度语音、谷歌语音),可替换上述语音转写部分的代码,调用对应API获取文本后再生成XML。
  • 处理大文件时建议用异步文件操作,避免阻塞事件循环。

内容的提问来源于stack exchange,提问作者shubham shukla

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:55:32