@@ -481,39 +481,39 @@ def predict(tensor):
481
481
#
482
482
483
483
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
-
508
484
def record (seconds = 1 ):
509
485
510
486
from google .colab import output as colab_output
511
487
from base64 import b64decode
512
488
from io import BytesIO
513
489
from pydub import AudioSegment
514
490
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
+
516
515
print (f"Recording started for { seconds } seconds." )
516
+ display (ipd .Javascript (RECORD ))
517
517
s = colab_output .eval_js ("record(%d)" % (seconds * 1000 ))
518
518
print ("Recording ended." )
519
519
b = b64decode (s .split ("," )[1 ])
0 commit comments