欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python錄音并調(diào)用百度語(yǔ)音識(shí)別接口的示例

 更新時(shí)間:2020年12月01日 15:22:30   作者:希希大隊(duì)長(zhǎng)  
這篇文章主要介紹了python錄音并調(diào)用百度語(yǔ)音識(shí)別接口的示例,幫助大家更好的理解和利用python處理音頻,感興趣的朋友可以了解下
#!/usr/bin/env python
import requests
import json
import base64
import pyaudio
import wave
import os
import psutil


#首先配置必要的信息
def bat(voice_path):
  baidu_server = 'https://aip.baidubce.com/oauth/2.0/token?'
  grant_type = 'client_credentials'
  client_id = 'uj70rS1LiwZ9sQDvMSUqKsie' #API KEY
  client_secret = 'Q88eav41PzeNLczZ3hlRjhR8e4WShXwD' #Secret KEY  這里可以自己去百度注冊(cè),這里是我的API KEY 和 Secret KEY

  #合成請(qǐng)求token的url
  url = baidu_server+'grant_type='+grant_type+'&client_id='+client_id+'&client_secret='+client_secret

  #獲取token
  res = requests.get(url).text
  data = json.loads(res)
  token = data['access_token']

  #設(shè)置音頻的屬性,采樣率,格式等
  VOICE_RATE = 8000
  FILE_NAME = voice_path
  # USER_ID = '16241950' #這里的id隨便填填就好啦,我填的自己昵稱(chēng)
  FILE_TYPE = 'wav'
  CUID="wate_play"
  #讀取文件二進(jìn)制內(nèi)容
  f_obj = open(FILE_NAME, 'rb')
  content = base64.b64encode(f_obj.read())  # 百度語(yǔ)音識(shí)別需要base64編碼格式
  speech = content.decode("utf-8")
  size = os.path.getsize(FILE_NAME)

  #json封裝
  datas = json.dumps({
    'format': FILE_TYPE,
    'rate': VOICE_RATE,
    'channel': 1,
    'cuid': CUID,
    'token': token,
    'speech': speech,
    'len': size,
    "dev_pid":"1536"
  })
  return datas

#設(shè)置headers和請(qǐng)求地址url
def post(datas):
  headers = {'Content-Type':'application/json'}
  url = 'https://vop.baidu.com/server_api'
  # url = "http://vop.baidu.com/server_api"

  #用post方法傳數(shù)據(jù)
  request = requests.post(url, datas, headers)
  result = json.loads(request.text)
  text = result.get("result")
  if result['err_no'] == 0:
    return text
  else:
    return "Error"


def get_audio(filepath):
  input("回車(chē)開(kāi)始錄音 >>>")   #輸出提示文本,input接收一個(gè)值,轉(zhuǎn)為str,賦值給aa
  CHUNK = 256         #定義數(shù)據(jù)流塊
  FORMAT = pyaudio.paInt16  #量化位數(shù)(音量級(jí)劃分)
  CHANNELS = 1        # 聲道數(shù);聲道數(shù):可以是單聲道或者是雙聲道
  RATE = 8000        # 采樣率;采樣率:一秒內(nèi)對(duì)聲音信號(hào)的采集次數(shù),常用的有8kHz, 16kHz, 32kHz, 48kHz, 11.025kHz, 22.05kHz, 44.1kHz
  RECORD_SECONDS = 5     #錄音秒數(shù)
  WAVE_OUTPUT_FILENAME = filepath   #wav文件路徑
  p = pyaudio.PyAudio()        #實(shí)例化

  stream = p.open(format=FORMAT,
          channels=CHANNELS,
          rate=RATE,
          input=True,
          frames_per_buffer=CHUNK)
  print("*"*10, "開(kāi)始錄音:請(qǐng)?jiān)?秒內(nèi)輸入語(yǔ)音")
  frames = []                         #定義一個(gè)列表
  for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):   #循環(huán),采樣率11025 / 256 * 5
    data = stream.read(CHUNK)                #讀取chunk個(gè)字節(jié) 保存到data中
    frames.append(data)                   #向列表frames中添加數(shù)據(jù)data
  # print(frames)
  print("*" * 10, "錄音結(jié)束\n")

  stream.stop_stream()
  stream.close()     #關(guān)閉
  p.terminate()      #終結(jié)

  wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')         #打開(kāi)wav文件創(chuàng)建一個(gè)音頻對(duì)象wf,開(kāi)始寫(xiě)WAV文件
  wf.setnchannels(CHANNELS)                  #配置聲道數(shù)
  wf.setsampwidth(p.get_sample_size(FORMAT))         #配置量化位數(shù)
  wf.setframerate(RATE)                    #配置采樣率
  wf.writeframes(b''.join(frames))              #轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)寫(xiě)入文件
  wf.close()       #關(guān)閉
  return


def check_disk():
  list_drive = psutil.disk_partitions() # 找出本地磁盤(pán)列表,保存的是結(jié)構(gòu)體對(duì)象
  list_disk = []
  for drive in list_drive:
    list_disk.append(drive.device)
  return list_disk


if __name__ == '__main__':
  list_disk = check_disk() # 檢索本地磁盤(pán)
  dirname_path = os.path.join(list_disk[0], "voice") # 設(shè)置語(yǔ)音文件存放路徑, 
                                  (mac os下需要自己定存儲(chǔ)路徑)
  if not os.path.exists(dirname_path):
    os.makedirs(dirname_path)

  filename = "voice.wav" # 定義語(yǔ)音文件名
  in_path = os.path.join(dirname_path, filename)

  get_audio(in_path) # 錄音

  datas = bat(in_path) # 封裝百度語(yǔ)音識(shí)別需要的配置信息,返回請(qǐng)求頭
  res = post(datas) # 連接百度語(yǔ)音識(shí)別接口,得到識(shí)別結(jié)果
  print("識(shí)別結(jié)果:",res[0])

實(shí)現(xiàn)效果:

在上述代碼中,需要裝到requests、psutil、pyaudio等庫(kù),其中pyaudio這個(gè)庫(kù)在python3環(huán)境下裝比較特殊,

windows環(huán)境下具體步驟如下:

第一步:下載whl文件支持

url:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio

注意:

下載自己python解釋器對(duì)應(yīng)版本的

不要下載錯(cuò)了,資源很多 

第二步:打開(kāi)cmd,cd 進(jìn)入下載的whl所在目錄

   執(zhí)行命令:pip install Twisted-18.7.0-cp36-cp36m-win_amd64.whl     #  下載的什么版本,后面就跟什么版本 

第三步:執(zhí)行命令:pip install pyaudio     安裝

如果本地同時(shí)裝有python2和python3,想裝到python3里可以在cmd命令里把 pip 改成 pip3 即可

mac os 下安裝pyaudio步驟如下:

到這里就結(jié)束啦!

以上就是python錄音并調(diào)用百度語(yǔ)音識(shí)別接口的示例的詳細(xì)內(nèi)容,更多關(guān)于python 錄音并調(diào)用語(yǔ)音識(shí)別接口的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python如何使用raise拋出自定義異常

    python如何使用raise拋出自定義異常

    這篇文章主要介紹了python如何使用raise拋出自定義異常問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Tensorflow實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的詳細(xì)代碼

    Tensorflow實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的詳細(xì)代碼

    這篇文章主要為大家詳細(xì)介紹了Tensorflow實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的詳細(xì)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 一篇文章讀懂Python賦值與拷貝

    一篇文章讀懂Python賦值與拷貝

    本文給大家分享一篇文章帶領(lǐng)大家讀懂python賦值與拷貝的知識(shí),感興趣的朋友一起看看吧
    2018-04-04
  • PyQt5的相對(duì)布局管理的實(shí)現(xiàn)

    PyQt5的相對(duì)布局管理的實(shí)現(xiàn)

    這篇文章主要介紹了PyQt5的相對(duì)布局管理的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • python使用imap-tools模塊下載郵件附件的示例

    python使用imap-tools模塊下載郵件附件的示例

    imap-tools模塊是python的第三方擴(kuò)展,?它使用標(biāo)準(zhǔn)庫(kù)imaplib,并將常見(jiàn)的郵件處理事件封裝,郵件處理起來(lái)代碼短,下面給大家介紹下python使用imap-tools模塊下載郵件中的附件示例代碼,感興趣的朋友一起看看吧
    2021-12-12
  • Pytorch測(cè)試神經(jīng)網(wǎng)絡(luò)時(shí)出現(xiàn) RuntimeError:的解決方案

    Pytorch測(cè)試神經(jīng)網(wǎng)絡(luò)時(shí)出現(xiàn) RuntimeError:的解決方案

    這篇文章主要介紹了Pytorch測(cè)試神經(jīng)網(wǎng)絡(luò)時(shí)出現(xiàn) RuntimeError:的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python PyTorch預(yù)訓(xùn)練示例

    python PyTorch預(yù)訓(xùn)練示例

    這篇文章主要介紹了python PyTorch預(yù)訓(xùn)練示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • 使用Python輕松實(shí)現(xiàn)繪制詞云圖項(xiàng)目(附詳細(xì)源碼)

    使用Python輕松實(shí)現(xiàn)繪制詞云圖項(xiàng)目(附詳細(xì)源碼)

    相信熟悉"詞云圖"的朋友都知道,"詞云圖"是用來(lái)做詞頻分析的可視化圖形,下面這篇文章主要給大家介紹了關(guān)于如何使用Python輕松實(shí)現(xiàn)繪制詞云圖項(xiàng)目的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • pytorch--之halfTensor的使用詳解

    pytorch--之halfTensor的使用詳解

    這篇文章主要介紹了pytorch--之halfTensor的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 詳解Python中元組的三個(gè)不常用特性

    詳解Python中元組的三個(gè)不常用特性

    元組是Python中一種重要的內(nèi)置數(shù)據(jù)類(lèi)型。與列表一樣,我們經(jīng)常使用元組將多個(gè)對(duì)象保存為相應(yīng)的數(shù)據(jù)容器。本文為大家總結(jié)了元組的三個(gè)不常用特性,感興趣的小伙伴可以了解一下
    2022-07-07

最新評(píng)論