久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    通過python實現網頁錄音的效果

     xvdo 2021-11-12

    服務器:tornado

    語言:python,JS,html

    效果:(將錄好的音放在指定位置)

    實現邏輯:

    部分實現代碼:

    web:

    1. <button type='submit' class='btn btn-primary mb-2 record_start'>開始錄音</button>
    2. <button type='submit' class='btn btn-primary mb-2 record_stop'>結束錄音</button>

    注意,class中最后一項 record_start或record_stop,后面JS文件中的方法調用和這個對應

    JS:(其中用到Ajax,需要用到jquery-3.4.1.min.js)

    1. $('.record_start').on('click',function(e){
    2. //css中有CHAT的,點擊時開始相應,其中' . '代表是在css中,' # '代表是在id中
    3. e.preventDefault();
    4. //防止跳轉
    5. args = {'query':'start'}
    6. $.ajax({
    7. async: false,
    8. url:'/record',
    9. type:'POST',
    10. data:$.param(args),
    11. success: function(res){
    12. var data =JSON.parse(res)
    13. if(data.code == 0){
    14. console.log('發送成功');
    15. }
    16. else{
    17. console.error('發送失敗');
    18. }
    19. },
    20. error:function(){
    21. console.error('發送失敗');
    22. }
    23. })
    24. //$代表jquery,可發起ajax請求,相當于requests,
    25. })
    26. $('.record_stop').on('click',function(e){
    27. //css中有CHAT的,點擊時開始相應,其中' . '代表是在css中,' # '代表是在id中
    28. e.preventDefault();
    29. //防止跳轉
    30. args = {'query':'stop'}
    31. $.ajax({
    32. async: false,
    33. url:'/record',
    34. type:'POST',
    35. data:$.param(args),
    36. success: function(res){
    37. var data =JSON.parse(res)
    38. if(data.code == 0){
    39. console.log('發送成功');
    40. }
    41. else{
    42. console.error('發送失敗');
    43. }
    44. },
    45. error:function(){
    46. console.error('發送失敗');
    47. }
    48. })
    49. //$代表jquery,可發起ajax請求,相當于requests,
    50. })

    Python server:

    1. static = Record_wav.Final_record()
    2. class RecordHandler(BaseHandler):
    3. global static
    4. def post(self):
    5. query = self.get_argument('query','')
    6. static.record_wav(query)
    7. res = {'code':0,'message':'sucess'}
    8. self.write(json.dumps(res))
    9. self.finish()
    10. def make_app():
    11. return tornado.web.Application([
    12. #其他沒用的我刪了
    13. (r'/record',RecordHandler)
    14. ],**settings)
    15. '''
    16. **settings:將字典中的元素解析出來,寫配置的
    17. '''

    這里值得注意的是:定義一個全局變量,因為第二次選擇關閉錄音的時候也得調用這個類,倘若不加全局,對于static,計算機會重新開辟新空間而不是用之前的,這就導致你的錄音沒法停止,因為它會停止一個空的錄音。

    Python Record_wav.py

    1. rec =Recorder()
    2. class Final_record():
    3. def record_wav(self,static):
    4. global rec
    5. if static == 'start':
    6. rec.start()
    7. return 'success!'
    8. elif static=='stop':
    9. rec.stop()
    10. rec.save(fname)
    11. asr=ASR.XunFeiASR()
    12. query=''
    13. query=asr.transcribe(fname)
    14. return query

    同上,這兒的對象也得是全局變量。(這倆全局變量想了很久才想出來的,當然,貿然設全局變量很不好,但我只能想到這么多了)

    其他的代碼,例如錄音方面的網上很好找,暫且不再次贅述了。

    錄音代碼可以參考這位博主的:https://blog.csdn.net/qq_29934825/article/details/82982737

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 亚洲综合色婷婷六月丁香宅男大增| 免费无码国产欧美久久18| 国产精品久久国产精品99| 日本道精品一区二区三区| 亚洲欧美激情在线一区| 国产精品亚洲一区二区无码| 男女动态无遮挡动态图| 精品国产一区二区三区2021| 中文字幕国产精品专区| 亚洲国产五月综合网| 高潮潮喷奶水飞溅视频无码| 日韩在线视频观看免费网站| 丝袜人妻一区二区三区网站| 中文字字幕在线乱码视频| 国产丰满美女A级毛片| 老王亚洲AV综合在线观看| 97视频精品全国免费观看| 最新亚洲人成无码WWW| 又粗又黑又大的吊AV| 欧美亚洲日本国产综合在线美利坚| 欧美高清精品一区二区 | 亚洲精品动漫免费二区| 久久精品无码一区二区小草| 不卡一区二区国产在线| 久久久久波多野结衣高潮| 天堂亚洲免费视频| 成人免费乱码大片a毛片| 麻豆最新国产AV原创精品| 国精偷拍一区二区三区| 亚洲AV无码成人精品区| 国产亚洲欧美另类一区二区 | 国产强奷在线播放| 国产成人亚洲综合 | 国产精品久久福利新婚之夜| 国产精品天天看天天狠| 无码H黄肉3D动漫在线观看| 国产成人AV性色在线影院| 国产亚洲精品VA片在线播放| 国产 亚洲 制服 无码 中文| 亚洲中文字幕精品久久久久久动漫| 国产成人高清亚洲综合|