Open xiaoxiaoqian1217 opened 6 months ago
自行检查音频内容是否是16位pcm,把base64保存起来,解码成二进制文件
拖进页面播放测试,8位 16位参数都试试 https://xiangyuecn.gitee.io/recorder/assets/工具-裸PCM转WAV播放测试.html
自行检查音频内容是否是16位pcm,把base64保存起来,解码成二进制文件
拖进页面播放测试,8位 16位参数都试试 https://xiangyuecn.gitee.io/recorder/assets/工具-裸PCM转WAV播放测试.html
感谢感谢,按照你说的解码成了二进制文件,拖进页面播放可以朗读出文字,之前是完全朗读不出来, 下面是我保存成文件测试的代码
function saveBase64AsFile(base64Str, fileName) {
const byteChars = atob(base64Str);
const byteNums = new Array(byteChars.length);
for (let i = 0; i < byteChars.length; i++) {
byteNums[i] = byteChars.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNums);
const file = new File([byteArray], fileName, { type: 'audio/octet-stream' });
// 保存文件
saveFile(file);
}
看起来测试是成功的, 不知道是我代码哪里写的有问题
不支持双声道,简单点把 每4个字节 去掉后两个字节 转成单声道
不支持双声道,简单点把 每4个字节 去掉后两个字节 转成单声道
怎么转呀,这个是要算法同事转成单身道还是我们自己转,可以简单给下思路吗
1 1 2 2 1 1 2 2 1 1 2 2 每4个字节,只取前两个字节1 1,后两个字节2 2丢掉
1 1 2 2 1 1 2 2 1 1 2 2 每4个字节,只取前两个字节1 1,后两个字节2 2丢掉
方便提供下相关JS代码实现dem吗
我把采样率改成了44100 ,16bitRate单声道,没有杂音,但是语速特别块,比之前 16000, 16bitRate 双声道 清晰很多,且没有杂音, 不知道能不能调整朗读的语速
来反馈了,最后找到问题所在了, 算法同事给我返回的base64数据编码的pcm是浮点型的数据, 但是库中使用的是Int16Array操作的pcm,导致播放的音频有电流声, 不知道博主能不能考虑下支持浮点型。
1.后端返回以base64编码pcm,需要加上wav头 base64编码如下: cGfDuaDjtrnQBoa5cGSWuVCLl7lwTpi5cI+juRDhrbngd6S5sG+3uTCk0rkwM9S5APf....
先转成blob文件对象
3.使用pcm2wav方法
4.生成了音频文件播放是噪音![image](https://github.com/xiangyuecn/Recorder/assets/22864018/3152f8f3-9431-4d7f-bbfc-7372eaef9376)
请教一下大佬,不知道是哪里使用出了问题,一直没解决,大佬帮忙看下