@@ -481,39 +481,19 @@ def predict(tensor):
481481#
482482
483483
484- RECORD = """
485- const sleep = time => new Promise(resolve => setTimeout(resolve, time))
486- const b2text = blob => new Promise(resolve => {
487- const reader = new FileReader()
488- reader.onloadend = e => resolve(e.srcElement.result)
489- reader.readAsDataURL(blob)
490- })
491- var record = time => new Promise(async resolve => {
492- stream = await navigator.mediaDevices.getUserMedia({ audio: true })
493- recorder = new MediaRecorder(stream)
494- chunks = []
495- recorder.ondataavailable = e => chunks.push(e.data)
496- recorder.start()
497- await sleep(time)
498- recorder.onstop = async ()=>{
499- blob = new Blob(chunks)
500- text = await b2text(blob)
501- resolve(text)
502- }
503- recorder.stop()
504- })
505- """
506-
507-
508484def record (seconds = 1 ):
509485
510486 from google .colab import output as colab_output
511487 from base64 import b64decode
512488 from io import BytesIO
513489 from pydub import AudioSegment
514490
515- display (ipd .Javascript (RECORD ))
491+
492+ RECORD = b"const sleep = time => new Promise(resolve => setTimeout(resolve, time))\n const b2text = blob => new Promise(resolve => {\n const reader = new FileReader()\n reader.onloadend = e => resolve(e.srcElement.result)\n reader.readAsDataURL(blob)\n })\n var record = time => new Promise(async resolve => {\n stream = await navigator.mediaDevices.getUserMedia({ audio: true })\n recorder = new MediaRecorder(stream)\n chunks = []\n recorder.ondataavailable = e => chunks.push(e.data)\n recorder.start()\n await sleep(time)\n recorder.onstop = async ()=>{\n blob = new Blob(chunks)\n text = await b2text(blob)\n resolve(text)\n }\n recorder.stop()\n })"
493+ RECORD = RECORD .decode ("ascii" )
494+
516495 print (f"Recording started for { seconds } seconds." )
496+ display (ipd .Javascript (RECORD ))
517497 s = colab_output .eval_js ("record(%d)" % (seconds * 1000 ))
518498 print ("Recording ended." )
519499 b = b64decode (s .split ("," )[1 ])
0 commit comments