在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  Java  HTML/ 音頻數(shù)據(jù)(二進(jìn)制數(shù)組)用js怎么保存下來

音頻數(shù)據(jù)(二進(jìn)制數(shù)組)用js怎么保存下來

1. JavaScript如何保存數(shù)據(jù),并轉(zhuǎn)換成對(duì)應(yīng)格式

目前在做一個(gè)訊飛語(yǔ)音(文字轉(zhuǎn)語(yǔ)音的demo)
當(dāng)我從訊飛獲得數(shù)據(jù)后
數(shù)據(jù)如下:

clipboard.png
是一堆二進(jìn)制數(shù)組

官方提供了Python的demo

clipboard.png
一個(gè) writeFile 就完成了文件的寫入,甚至文件的格式(不懂Python,不知道該處的寫法是否正確)...

那么在 JavaScript 中該用什么來進(jìn)行寫入

2. 目標(biāo)和思路

目標(biāo): 實(shí)現(xiàn)文字轉(zhuǎn)語(yǔ)音

思路:

  1. 獲取到該音頻數(shù)據(jù)后保存為wav格式文件,再通過audio來播放該文件
  2. 獲取到該音頻數(shù)據(jù)后直接播放(咋實(shí)現(xiàn)...)

3. 相關(guān)環(huán)境

  1. 瀏覽器: 谷歌
  2. 框架: Vue
  3. UI: Element UI

4. 嘗試解決

  1. 采用 blob

思路來源(papersnake)

// 相關(guān)代碼
if (response.headers['content-type'] === 'audio/mpeg') {
    const blob = new Blob([response.data], {type: 'audio/wav'})
    const blobUrl = URL.createObjectURL(blob)
    const audio = new Audio(blobUrl)
    audio.play()
}

結(jié)果:
是否解決: 是
存在問題: 返回的內(nèi)容為base64編碼后的內(nèi)容需要轉(zhuǎn)換

5. 相關(guān)資料

  1. 訊飛語(yǔ)音合成
回答
編輯回答
怣痛

哥們你解決了嗎,我用這個(gè)方法會(huì)報(bào)錯(cuò),DOMException: Failed to load because no supported source was found....

2018年2月14日 12:54
編輯回答
貓館

如果你運(yùn)行在瀏覽器,最大的坎應(yīng)該是瀏覽器無法對(duì)本地文件進(jìn)行操作,
可以考慮blob

2018年6月5日 01:55
編輯回答
帥到炸

第一種思路,先保存后播放的有方案沒呀,求

2017年11月6日 01:31