一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Python開(kāi)發(fā)之路(2)— 使用百度API實(shí)現(xiàn)語(yǔ)音識(shí)別

 新用戶79878317 2022-12-10 發(fā)布于河南

一、在百度智能云創(chuàng)建語(yǔ)音識(shí)別應(yīng)用

打開(kāi)百度智能云:https://cloud.baidu.com/
登錄控制臺(tái),選擇語(yǔ)音技術(shù):
在這里插入圖片描述
然后點(diǎn)擊創(chuàng)建應(yīng)用
在這里插入圖片描述
然后輸入應(yīng)用名稱名稱、選擇應(yīng)用類型,接口選擇默認(rèn)即可,輸入描述,然后點(diǎn)擊立即創(chuàng)建即可
在這里插入圖片描述
然后我們就可以看到創(chuàng)建好的應(yīng)用
在這里插入圖片描述

二、獲取Access Token

首先導(dǎo)入requests包:

import requests

然后使用過(guò)程創(chuàng)建的項(xiàng)目的API Key和Secret_Key獲取Access Token
在這里插入圖片描述

    API_Key = 'DF2wS4DQ53TlS8ATxasy0ZXv'            # 官網(wǎng)獲取的API_Key
    Secret_Key = 'GvADiMXnwATEhaiKuOXg3t37KnKClGWr' # 為官網(wǎng)獲取的Secret_Key
    #拼接得到Url
    Url = 'https://aip./oauth/2.0/token?grant_type=client_credentials&client_id='+API_Key+'&client_secret='+Secret_Key
    resp = request.urlopen(Url)
    if resp:
        result = json.loads(resp.read().decode('utf-8'))
        print(result)
        # 打印access_token
        print(result['access_token'])
        # 打印有效期
        print(result['expires_in']/(60*60*24),'days')

運(yùn)行,可以得到
在這里插入圖片描述
我們將其封裝成一個(gè)函數(shù):

def get_token():
    API_Key = 'DF2wS4DQ53TlS8ATxasy0ZXv'            # 官網(wǎng)獲取的API_Key
    Secret_Key = 'GvADiMXnwATEhaiKuOXg3t37KnKClGWr' # 為官網(wǎng)獲取的Secret_Key
    #拼接得到Url
    Url = 'https://aip./oauth/2.0/token?grant_type=client_credentials&client_id='+API_Key+'&client_secret='+Secret_Key
    try:
        resp = request.urlopen(Url)
        result = json.loads(resp.read().decode('utf-8'))
        # 打印access_token
        print('access_token:',result['access_token'])
        return result['access_token']
    except request.URLError as err:
        print('token http response http code : ' + str(err.code))

三、通過(guò)Post將上傳音頻文件,獲得語(yǔ)言識(shí)別結(jié)果

通過(guò)查閱百度語(yǔ)音識(shí)別的技術(shù)文檔,我們有兩種方法將文件上傳:
在這里插入圖片描述
因?yàn)榈诙N更簡(jiǎn)單,我們使用第2種方法,首先打開(kāi)我們需要識(shí)別的音頻文件,獲取里面的數(shù)據(jù)

    # 打開(kāi)需要識(shí)別的語(yǔ)音文件
    speech_data = []
    with open('01.wav', 'rb') as speech_file:
        speech_data = speech_file.read()
    length = len(speech_data)
    if length == 0:
        print('file 01.wav length read 0 bytes')

我們將Url里的參數(shù)設(shè)置好:

    # 3、設(shè)置Url里的參數(shù)
    params = {'cuid': '12345678python', # 用戶唯一標(biāo)識(shí),用來(lái)區(qū)分用戶,長(zhǎng)度為60字符以內(nèi)。
              'token': token,           # 我們獲取到的 Access Token
              'dev_pid': 1537 }         # 1537 表示識(shí)別普通話
    # 將參數(shù)編碼
    params_query = parse.urlencode(params)
    # 拼接成一個(gè)我們需要的完整的完整的url
    Url = 'http://vop.baidu.com/server_api' + '?' + params_query

然后我們?cè)O(shè)置header,即請(qǐng)求頭,我們使用的文件格式為wav,百度語(yǔ)音識(shí)別只支持16000采樣率

    # 4、設(shè)置請(qǐng)求頭
    headers = {
        'Content-Type': 'audio/wav; rate=16000',    # 采樣率和文件格式
        'Content-Length': length
    }

這樣就可以發(fā)送post請(qǐng)求了,將音頻數(shù)據(jù)直接放在body中就好

    # 5、發(fā)送請(qǐng)求,音頻數(shù)據(jù)直接放在body中
    # 構(gòu)建Request對(duì)象
    req = request.Request(Url, speech_data, headers)
    # 發(fā)送請(qǐng)求
    res_f = request.urlopen(req)
    # 打印結(jié)果
    result = json.loads(res_f.read().decode('utf-8'))
    print(result)
    print('識(shí)別結(jié)果:',result['result'][0])

錄音程序可以參考上一篇博客:Python開(kāi)發(fā)之路(1)— 使用Pyaudio進(jìn)行錄音和播音
不過(guò)要注意百度語(yǔ)音識(shí)別的對(duì)文件的要求
在這里插入圖片描述
運(yùn)行程序,可以看到,返回了識(shí)別到的結(jié)果
在這里插入圖片描述
最后貼上完整代碼:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: William

# encoding:utf-8

import json
from urllib import request,parse

def get_token():
    API_Key = 'DF2wS4DQ53TlS8ATxasy0ZXv'            # 官網(wǎng)獲取的API_Key
    Secret_Key = 'GvADiMXnwATEhaiKuOXg3t37KnKClGWr' # 為官網(wǎng)獲取的Secret_Key
    #拼接得到Url
    Url = 'https://aip./oauth/2.0/token?grant_type=client_credentials&client_id='+API_Key+'&client_secret='+Secret_Key
    try:
        resp = request.urlopen(Url)
        result = json.loads(resp.read().decode('utf-8'))
        # 打印access_token
        print('access_token:',result['access_token'])
        return result['access_token']
    except request.URLError as err:
        print('token http response http code : ' + str(err.code))

def main():
    # 1、獲取 access_token
    token = get_token()
    # 2、打開(kāi)需要識(shí)別的語(yǔ)音文件
    speech_data = []
    with open('01.wav', 'rb') as speech_file:
        speech_data = speech_file.read()
    length = len(speech_data)
    if length == 0:
        print('file 01.wav length read 0 bytes')

    # 3、設(shè)置Url里的參數(shù)
    params = {'cuid': '12345678python', # 用戶唯一標(biāo)識(shí),用來(lái)區(qū)分用戶,長(zhǎng)度為60字符以內(nèi)。
              'token': token,           # 我們獲取到的 Access Token
              'dev_pid': 1537 }         # 1537 表示識(shí)別普通話
    # 將參數(shù)編碼
    params_query = parse.urlencode(params)
    # 拼接成一個(gè)我們需要的完整的完整的url
    Url = 'http://vop.baidu.com/server_api' + '?' + params_query

    # 4、設(shè)置請(qǐng)求頭
    headers = {
        'Content-Type': 'audio/wav; rate=16000',    # 采樣率和文件格式
        'Content-Length': length
    }

    # 5、發(fā)送請(qǐng)求,音頻數(shù)據(jù)直接放在body中
    # 構(gòu)建Request對(duì)象
    req = request.Request(Url, speech_data, headers)
    # 發(fā)送請(qǐng)求
    res_f = request.urlopen(req)
    result = json.loads(res_f.read().decode('utf-8'))
    print(result)
    print('識(shí)別結(jié)果:',result['result'][0])

if __name__ == '__main__':
    main()

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    日本熟妇五十一区二区三区| 国产毛片对白精品看片| 中文人妻精品一区二区三区四区| 美国女大兵激情豪放视频播放| 国产精品欧美日韩中文字幕| 中文字幕人妻一区二区免费 | 日韩在线精品视频观看| 日韩国产亚洲一区二区三区| 黑丝国产精品一区二区| 国产一区欧美一区二区| 国产日本欧美韩国在线| 亚洲欧美日韩另类第一页| 日本欧美三级中文字幕| 久一视频这里只有精品| 午夜精品在线视频一区| 日韩精品日韩激情日韩综合| 黑丝袜美女老师的小逼逼| 熟女免费视频一区二区| 字幕日本欧美一区二区| 国产精品久久男人的天堂| 九九蜜桃视频香蕉视频| 午夜精品一区二区av| 亚洲日本加勒比在线播放| 欧美日韩校园春色激情偷拍| 国产日本欧美特黄在线观看| 国产精品99一区二区三区| 午夜福利在线观看免费| 精品欧美国产一二三区| 日本美国三级黄色aa| 国产日本欧美特黄在线观看| 九九热在线免费在线观看| 成人精品国产亚洲av久久| 国产av天堂一区二区三区粉嫩| 加勒比日本欧美在线观看| 中文字幕精品一区二区三| 在线免费观看一二区视频| 99国产精品国产精品九九| 欧美成人免费视频午夜色| 亚洲视频在线观看免费中文字幕| 特黄大片性高水多欧美一级| 久久碰国产一区二区三区|