python-3.x - 有没有办法在 Azure Notebooks/Google Collab 上输入麦克风?
问题描述
我一直在尝试使用 Google Collab 和 Azure Notebook 上的 Python Notebooks 构建语音到文本的应用程序。我面临的问题是基于云的 VM 没有用于使用我的麦克风的音频端口。因此,我什至无法安装 PyAudio 包。有什么建议么?
解决方案
这是在 Colab 中记录和保存文件的代码。
from IPython.display import Javascript
from google.colab import output
from base64 import b64decode
RECORD = """
const sleep = time => new Promise(resolve => setTimeout(resolve, time))
const b2text = blob => new Promise(resolve => {
const reader = new FileReader()
reader.onloadend = e => resolve(e.srcElement.result)
reader.readAsDataURL(blob)
})
var record = time => new Promise(async resolve => {
stream = await navigator.mediaDevices.getUserMedia({ audio: true })
recorder = new MediaRecorder(stream)
chunks = []
recorder.ondataavailable = e => chunks.push(e.data)
recorder.start()
await sleep(time)
recorder.onstop = async ()=>{
blob = new Blob(chunks)
text = await b2text(blob)
resolve(text)
}
recorder.stop()
})
"""
def record(sec=3):
display(Javascript(RECORD))
s = output.eval_js('record(%d)' % (sec*1000))
b = b64decode(s.split(',')[1])
with open('audio.wav','wb') as f:
f.write(b)
return 'audio.wav'
推荐阅读
- markdown - Markdown 的绝对路径链接?
- google-chrome - FCM 不适用于 Chrome,但适用于 Edge 和 Firefox
- c++ - 初始化和push_back中的向量错误对
- css - Vue JS 媒体查询不起作用,即使它在正确的层次结构中,它也不会覆盖基本 css
- javascript - 如何关闭 Heroku 服务器进行维护?
- reactjs - 尝试导入错误:“unstable_useId”未从“@material-ui/core/utils”导出(导入为“useId”)
- presto - case when 语句不支持如何解决给定的相关子查询
- python - 为什么python不断抛出'源代码字符串不能包含空字节'
- python-3.x - 如何在 Python scipy 的伽马概率密度函数中获得特定 x 值的概率?
- django - 如何自定义 django-rosetta admn 页面