Есть ли способ ввести микрофон на Azure Notebooks / Google Collab? - PullRequest
0 голосов
/ 05 мая 2020

Я пытался создать приложение преобразования речи в текст, используя Python Notebooks в Google Collab и Azure Notebook. Проблема, с которой я столкнулся, заключается в том, что облачная виртуальная машина не имеет аудиопорта для использования моего микрофона. Из-за этого я даже не могу установить пакет PyAudio. Есть предложения?

1 Ответ

0 голосов
/ 05 мая 2020

Вот код для записи и сохранения файла в 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'
...