百度AI攻略:语音识别

1.功能描述:

将60秒内的语音快速识别为文字,适用于手机语音输入、语音搜索、人机对话等语音交互场景

2.平台接入

具体接入方式比较简单,可以参考我的另一个帖子,这里就不重复了:

http://ai.baidu.com/forum/topic/show/943327

3.调用攻略(Python3)及评测

3.1首先认证授权:

在开始调用任何API之前需要先进行认证授权,具体的说明请参考:

http://ai.baidu.com/docs#/Auth/top

具体Python3代码如下:

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

#!/usr/bin/env python

import urllib

import base64

import json

#client_id 为官网获取的AK, client_secret 为官网获取的SK

client_id =【百度云应用的AK】

client_secret =【百度云应用的SK】

#获取token

def get_token():

host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret

request = urllib.request.Request(host)

request.add_header('Content-Type', 'application/json; charset=UTF-8')

response = urllib.request.urlopen(request)

token_content = response.read()

#print (token_content)

if token_content:

token_info = json.loads(token_content)

token_key = token_info['access_token']

return token_key

3.2百度语音识别分析接口调用:

详细说明请参考:https://ai.baidu.com/docs#/ASR-API-PRO/top

说明的比较清晰,这里就不重复了。

大家需要注意的是:

格式支持:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式)、m4a(AAC编码);固定16k 采样率;

系统支持语言种类 普通话


Python3调用代码如下:

# 只支持 pcm/wav/amr 格式,极速版额外支持m4a 格式

# 输入参数需要识别的文件

def asr(AUDIO_FILE):

    # 文件格式

    FORMAT = AUDIO_FILE[-3:];  # 文件后缀只支持 pcm/wav/amr 格式,极速版额外支持m4a 格式

    print(FORMAT)

    CUID = '123456PYTHON';

    # 采样率

    RATE = 16000;  # 固定值   

    # 普通版

    DEV_PID = 1537;  # 1537 表示识别普通话,使用输入法模型。1536表示识别普通话,使用搜索模型。根据文档填写PID,选择语言及识别模型

    ASR_URL = 'http://vop.baidu.com/server_api'


    token = get_token()

    speech_data = []

    with open(AUDIO_FILE, 'rb') as speech_file:

        speech_data = speech_file.read()

    length = len(speech_data)

    if length == 0:

        print('file %s length read 0 bytes' % AUDIO_FILE)

    params = {'cuid': CUID, 'token': token, 'dev_pid': DEV_PID}

    #测试自训练平台需要打开以下信息

    #params = {'cuid': CUID, 'token': token, 'dev_pid': DEV_PID, 'lm_id' : LM_ID}

    params_query = urlencode(params);

    headers = {

        'Content-Type': 'audio/' + FORMAT + '; rate=' + str(RATE),

        'Content-Length': length

    }

    url = ASR_URL + "?" + params_query

    print("url is", url);

    print("header is", headers)

    # print post_data

    req = Request(ASR_URL + "?" + params_query, speech_data, headers)

    try:

        begin = timer()

        f = urlopen(req)

        result_str = f.read()

        print("Request time cost %f" % (timer() - begin))

    except  URLError as err:

        print('asr http response http code : ' + str(err.code))

        result_str = err.read()

    result_str = str(result_str, 'utf-8')

    print(result_str)

    with open("result.txt", "w") as of:

        of.write(result_str)

asr('../voc/16k.wav')

4.功能评测和建议

测试下来,整体识别效果不错。百度语音识别的很准确,速度也很快,用起来非常的方便。可以应用于

语音输入

摆脱按键操作,通过语音识别直接输入文字,快速返回识别结果,可应用于游戏文字输入、社交聊天、语音指令等多个场景,提高输入效率及体验

语音搜索

搜索内容直接以语音的方式输入,响应速度更快,适用于音乐、电影、小说等内容搜索场景,让搜索内容输入更加便捷,高效

人机对话

通过极速API接口,将语音识别为文字,毫秒级响应,可用于聊天机器人、故事机等近场语音识别环境,让人机对话更加流畅自然

你可能感兴趣的:(百度AI攻略:语音识别)