@@ -481,39 +481,39 @@ 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_colab (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+ RECORD = (
492+ b"const sleep = time => new Promise(resolve => setTimeout(resolve, time))\n "
493+ b"const b2text = blob => new Promise(resolve => {\n "
494+ b" const reader = new FileReader()\n "
495+ b" reader.onloadend = e => resolve(e.srcElement.result)\n "
496+ b" reader.readAsDataURL(blob)\n "
497+ b"})\n "
498+ b"var record = time => new Promise(async resolve => {\n "
499+ b" stream = await navigator.mediaDevices.getUserMedia({ audio: true })\n "
500+ b" recorder = new MediaRecorder(stream)\n "
501+ b" chunks = []\n "
502+ b" recorder.ondataavailable = e => chunks.push(e.data)\n "
503+ b" recorder.start()\n "
504+ b" await sleep(time)\n "
505+ b" recorder.onstop = async ()=>{\n "
506+ b" blob = new Blob(chunks)\n "
507+ b" text = await b2text(blob)\n "
508+ b" resolve(text)\n "
509+ b" }\n "
510+ b" recorder.stop()\n "
511+ b"})"
512+ )
513+ RECORD = RECORD .decode ("ascii" )
514+
516515 print (f"Recording started for { seconds } seconds." )
516+ display (ipd .Javascript (RECORD ))
517517 s = colab_output .eval_js ("record(%d)" % (seconds * 1000 ))
518518 print ("Recording ended." )
519519 b = b64decode (s .split ("," )[1 ])
0 commit comments