久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

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

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

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

打開百度智能云:https://cloud.baidu.com/
登錄控制臺(tái),,選擇語音技術(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

然后使用過程創(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))

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

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

    # 打開需要識(shí)別的語音文件
    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í),,用來區(qū)分用戶,,長度為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

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

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

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

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

錄音程序可以參考上一篇博客:Python開發(fā)之路(1)— 使用Pyaudio進(jìn)行錄音和播音
不過要注意百度語音識(shí)別的對文件的要求
在這里插入圖片描述
運(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、打開需要識(shí)別的語音文件
    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í),,用來區(qū)分用戶,長度為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è)置請求頭
    headers = {
        'Content-Type': 'audio/wav; rate=16000',    # 采樣率和文件格式
        'Content-Length': length
    }

    # 5、發(fā)送請求,,音頻數(shù)據(jù)直接放在body中
    # 構(gòu)建Request對象
    req = request.Request(Url, speech_data, headers)
    # 發(fā)送請求
    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)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多