国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
pyaudio:基于pyaudio利用Python編程從電腦端錄制音頻保存到指定文件夾+將錄音上傳服務(wù)器+錄音進(jìn)行識別并轉(zhuǎn)為文本保存

pyaudio:基于pyaudio利用Python編程從電腦端錄制音頻保存到指定文件夾+將錄音上傳服務(wù)器+錄音進(jìn)行識別并轉(zhuǎn)為文本保存


輸出結(jié)果

代碼實現(xiàn)

# -*- coding: utf-8 -*-

#pyaudio:利用pyaudio從電腦端錄制音頻保存到指定文件夾+將錄音上傳服務(wù)器+錄音進(jìn)行識別并轉(zhuǎn)為文本保存
import wave
from pyaudio import PyAudio,paInt16

import urllib  #urllib2
import pycurl
import urllib.request as urllib2
import json 

framerate=8000   #采樣率
NUM_SAMPLES=2000 #采樣點
channels=1  #一個聲道
sampwidth=2 #兩個字節(jié)十六位
TIME=2      #條件變量,可以設(shè)置定義錄音的時間

def save_wave_file(filename, data):   #save the date to the wav file
    wf = wave.open(filename, 'wb')  #二進(jìn)制寫入模式
    wf.setnchannels(channels)  
    wf.setsampwidth(sampwidth)  #兩個字節(jié)16位
    wf.setframerate(framerate)  #幀速率
    wf.writeframes(b"".join(data))  #把數(shù)據(jù)加進(jìn)去,就會存到硬盤上去wf.writeframes(b"".join(data)) 
    wf.close()

def my_record():
    pa=PyAudio()
    stream=pa.open(format=paInt16,channels=1,rate=framerate,input=True,frames_per_buffer=NUM_SAMPLES)
    my_buf=[]
    count=0  #
    while count < TIME*8: #循環(huán)2*20次
        string_audio_data=stream.read(NUM_SAMPLES) #每讀完2000個采樣加1
        my_buf.append(string_audio_data)
        count+=1
        print('當(dāng)前正在錄音(同時錄制系統(tǒng)內(nèi)部和麥克風(fēng)的聲音)……')
    save_wave_file('03.wav',my_buf) #文件保存
    stream.close()
    
def dump_res(buf):  #dump_res即dump_result,buf是curl從網(wǎng)上返回來的緩存
    print(buf)
    
    my_temp=json.loads(buf)
    my_list=my_temp['result']
    print(type(my_list))
    print(my_list[0])  #輸出第一個
    print('dump_res函數(shù)調(diào)用成功!')
    
def get_token():  #獲取token
    apikey='2KeNr6nK6ZmMKAbdlM5PUaSC'
    secretkey='QuDTqg1cMehfwvvyKmZyifAnCoGFiZ3g'
    auth_url='https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id='+apikey+'&client_secret='+secretkey;   #
    
    res=urllib2.urlopen(auth_url) #獲取服務(wù)器響應(yīng),res=urllib2.urlopen(auth_url) 
    json_data=res.read()         #讀取到j(luò)son_data中
    print(json_data,type(json_data))
    return json.loads(json_data)['access_token']

def use_cloud(token):  #token類似一種訪問權(quán)限等
    fp=wave.open(u'16k.wav','rb')             #打開wav文件
    nf=fp.getnframes()                     #獲得文件的采樣點數(shù)量
    print('sampwidth',fp.getsampwidth())
    print('framerate',fp.getframerate())
    print('channels',fp.getnchannels())
    f_len=nf*2                    #獲取文件長度,文件長度計算,每個采樣點2個字節(jié)
    audio_data=fp.readframes(nf)  #
    
    cuid="XXXXXXXXXX"   #硬件地址,my phone xiaomi MAC
    print(token)
    srv_url='http://vop.baidu.com/server_api'+'?cuid='+cuid+'&token='+token
    http_header=[
        'Content-Type:audio/pcm;rate=8000',  #音頻,原先是pcm,可以改為wav
        'Content-length:%d:' % f_len
    ]
    
    c=pycurl.Curl()  #實例化curl
    c.setopt(pycurl.URL,str(srv_url))     #(網(wǎng)址)  
    
    c.setopt(c.HTTPHEADER, http_header)   #網(wǎng)址頭部  
    c.setopt(c.POST, 1)                   #1表示調(diào)用post方法而不是get  
    c.setopt(c.CONNECTTIMEOUT,80)      #超時中斷  
    c.setopt(c.TIMEOUT,80)             #下載超時  
    c.setopt(c.WRITEFUNCTION,dump_res) #返回數(shù)據(jù),dump_res,進(jìn)行回調(diào)  
    c.setopt(c.POSTFIELDS,audio_data)    #數(shù)據(jù)  
    c.setopt(c.POSTFIELDSIZE,f_len)      #文件大小
    c.perform()                           #提交, pycurl.perform()
    print('use_cloud函數(shù)over!')

if __name__ == "__main__": 
#     my_record()
    print('錄音結(jié)束!')
    token = get_token() 
    use_cloud(token)
    print('over!')

相關(guān)文章
ASR:基于pyaudio利用python進(jìn)行語音生成、語音識別總結(jié)及其案例詳細(xì)攻略

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
樹莓派語音聊天機器人201802版
簡單的skydrive sdk for python
利用Python程序?qū)崿F(xiàn)某OA系統(tǒng)的自動定位
python語音通話
Python調(diào)用百度語音識別REST API
python寫一個錄音小程序
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服