当前位置: 首页 > news >正文

前端如何播放二进制音频数据

音频数据

播放数据 

const tryListen = async (row) => {
    awakenPlay(row.sid).then((res) => {   // 请求接口,拿到二进制音频数据
      const binaryData = atob(res.data);
      // 将二进制数据转换为 Uint8Array
      const byteArray = new Uint8Array(binaryData.length);
      for (let i = 0; i < binaryData.length; i++) {
        byteArray[i] = binaryData.charCodeAt(i);
      }
      const offset = 42; // 跳过可能的头部数据(假设前 42 字节是 WAV 头部),否则播放开始处有杂音
      // 将 Uint8Array 转换为 Int16Array
      const pcmData = new Int16Array(byteArray.buffer, offset);
      // 创建 AudioContext
      const audioContext = new window.AudioContext();
      // 创建 AudioBuffer
      const audioBuffer = audioContext.createBuffer(1, pcmData.length, 16000); // 单声道,16000 Hz
      const channelData = audioBuffer.getChannelData(0);
      // 将 PCM 数据归一化到 [-1, 1] 范围
      for (let i = 0; i < pcmData.length; i++) {
        channelData[i] = pcmData[i] / 32768.0;
      }

      // 播放音频
      const source = audioContext.createBufferSource();
      source.buffer = audioBuffer;
      source.connect(audioContext.destination);
      source.start();
    });
  };

相关文章:

  • 使用AWS Amplify AI Kit和Neon Postgres构建基于RAG的应用程序
  • string类详解(上)
  • 【AscendC】复现AI原生创新算子挑战赛S1(二)
  • 以 Serverless 低成本的⽅式 快速在亚马逊云科技上部署 DeepSeek
  • linux中(base) [root@ZS ~]# 是什么情况,怎么退出
  • DeepSeek 对成语理解能力的研究与分析
  • npm install --legacy-peer-deps和npm install --force的区别
  • Cookie介绍及使用场景
  • 图片属性——位深度
  • 学习threejs,使用PointLight点光源
  • EasyExcel的简单使用
  • es-head 正则查询和标准正则查询的差异
  • 基于Dify、Ollama与DeepSeek的私有化AI知识库构建:工具作用、场景与优势分析
  • SpringCloud面试题----什么是Zuul微服务网关
  • KT142C语音芯片支持的语音文件格式什么?Mp3还是wav呢?
  • 排序算法复习——包括插入排序、希尔排序、冒泡排序、快排(包括霍尔法、挖坑法、快慢指针法)、堆排、选择排序、归并排序等 (代码采用c/c++混编)
  • VSCode运行Go程序报错:Unable to process `evaluate`: debuggee is running
  • S7-200 Smart 和 S7-200 系列 PLC 的指令系统
  • 医疗深度学习高性能加速器:架构、技术与应用
  • 解决macos安装docker后不能远程连接的问题
  • 国家税务总局:“二套转首套”可以享受贷款利息个税专项扣除
  • 格力电器去年净利增长一成:消费电器营收下滑4%,一季度净利增长26%
  • 清华成立人工智能医院,将构建“AI+医疗+教育+科研”闭环
  • 识味顺德︱顺德菜的醉系列与火滋味
  • 中国人民银行行长潘功胜会见世界银行行长彭安杰
  • 网贷放款后自动扣除高额会员费,多家网贷平台被指变相收取“砍头息”