百度语音识别,效果简直差接近于0分,还好意思弄什么云服务,也是醉了

1)上代码

# coding=utf-8

import sys
import json
import base64
import time

IS_PY3 = sys.version_info.major == 3

if IS_PY3:
    from urllib.request import urlopen
    from urllib.request import Request
    from urllib.error import URLError
    from urllib.parse import urlencode
    timer = time.perf_counter
else:
    from urllib2 import urlopen
    from urllib2 import Request
    from urllib2 import URLError
    from urllib import urlencode
    if sys.platform == "win32":
        timer = time.clock
    else:
        # On most other platforms the best timer is time.time()
        timer = time.time

APP_ID = '30109263'
API_KEY = 'LGCz2MtmUR3fF5255z3pa0rS'
SECRET_KEY = 'xt2hvsnUrlnwSCNnPhb7RPY1khWDVX45'

# 需要识别的文件
# AUDIO_FILE = './audio/16k.pcm'  # 只支持 pcm/wav/amr 格式,极速版额外支持m4a 格式
AUDIO_FILE = './audio/vd1.1.wav'  # 只支持 pcm/wav/amr 格式,极速版额外支持m4a 格式
# 文件格式
FORMAT = AUDIO_FILE[-3:]  # 文件后缀只支持 pcm/wav/amr 格式,极速版额外支持m4a 格式

CUID = '30109263'
# 采样率
RATE = 16000  # 固定值

# 普通版

DEV_PID = 1537  # 1537 表示识别普通话,使用输入法模型。根据文档填写PID,选择语言及识别模型
ASR_URL = 'http://vop.baidu.com/server_api'
SCOPE = 'audio_voice_assistant_get'  # 有此scope表示有asr能力,没有请在网页里勾选,非常旧的应用可能没有

#测试自训练平台需要打开以下信息, 自训练平台模型上线后,您会看见 第二步:“”获取专属模型参数pid:8001,modelid:1234”,按照这个信息获取 dev_pid=8001,lm_id=1234
# DEV_PID = 8001 ;   
# LM_ID = 1234 ;

# 极速版 打开注释的话请填写自己申请的appkey appSecret ,并在网页中开通极速版(开通后可能会收费)

# DEV_PID = 80001
# ASR_URL = 'http://vop.baidu.com/pro_api'
# SCOPE = 'brain_enhanced_asr'  # 有此scope表示有极速版能力,没有请在网页里开通极速版

# 忽略scope检查,非常旧的应用可能没有
# SCOPE = False

class DemoError(Exception):
    pass


"""  TOKEN start """

TOKEN_URL = 'http://aip.baidubce.com/oauth/2.0/token'


def fetch_token():
    params = {'grant_type': 'client_credentials',
              'client_id': API_KEY,
              'client_secret': SECRET_KEY}
    post_data = urlencode(params)
    if (IS_PY3):
        post_data = post_data.encode( 'utf-8')
    req = Request(TOKEN_URL, post_data)
    try:
        f = urlopen(req)
        result_str = f.read()
    except URLError as err:
        print('token http response http code : ' + str(err.code))
        result_str = err.read()
    if (IS_PY3):
        result_str =  result_str.decode()

    print(result_str)
    result = json.loads(result_str)
    print(result)
    if ('access_token' in result.keys() and 'scope' in result.keys()):
        print(SCOPE)
        if SCOPE and (not SCOPE in result['scope'].split(' ')):  # SCOPE = False 忽略检查
            raise DemoError('scope is not correct')
        print('SUCCESS WITH TOKEN: %s  EXPIRES IN SECONDS: %s' % (result['access_token'], result['expires_in']))
        return result['access_token']
    else:
        raise DemoError('MAYBE API_KEY or SECRET_KEY not correct: access_token or scope not found in token response')

"""  TOKEN end """

if __name__ == '__main__':
    token = fetch_token()

    speech_data = []
    with open(AUDIO_FILE, 'rb') as speech_file:
        speech_data = speech_file.read()

    length = len(speech_data)
    if length == 0:
        raise DemoError('file %s length read 0 bytes' % AUDIO_FILE)
    speech = base64.b64encode(speech_data)
    if (IS_PY3):
        speech = str(speech, 'utf-8')
    params = {'dev_pid': DEV_PID,
             #"lm_id" : LM_ID,    #测试自训练平台开启此项
              'format': FORMAT,
              'rate': RATE,
              'token': token,
              'cuid': CUID,
              'channel': 1,
              'speech': speech,
              'len': length
              }
    post_data = json.dumps(params, sort_keys=False)
    # print post_data
    req = Request(ASR_URL, post_data.encode('utf-8'))
    req.add_header('Content-Type', 'application/json')
    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()

    if (IS_PY3):
        result_str = str(result_str, 'utf-8')
    print(result_str)
    with open("result.txt","w") as of:
        of.write(result_str)

官方的代码包,要官方的SDK

https://github.com/Baidu-AIP/speech-demo

2)

简直一言难尽啊,这个态度能做好AI

能做好chatGPT

我就能上火星生活!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
项目简介 本项目使用 python3.5,包管理使用 pip3.5,用 pyaudio 录音, numpy 计算, scipy 滤波, pylab 绘制波形与频谱。 项目环境 推介在与项目根目录同级目录内通过 virtualenv 建立 python 虚拟环境: virtualenv --no-site-packages venv 第一次会自动安装一些虚拟环境文件,安装完后再激活虚拟环境, Windows 环境下使用: venv\Scripts\activate Linux 环境下使用: source venv/bin/activate cd 回到项目根目录中,项目依赖都写在 requirements.txt 中, Windows 在我的 Win 10 环境中 numpy 1.11.1+mkl 和 scipy 0.18.1 两个包都不能通过 pip 安装成功,因此我去加利福尼亚大学镜像源下载了 numpy scipy 这两个包的 win 下支持的 .whl 文件并先通过 pip 安装: pip install numpy-1.11.1+mkl-cp35-cp35m-win_amd64.whl pip install scipy-0.18.1-cp35-cp35m-win_amd64.whl 然后再用 pip 安装 requirements.txt 的依赖: pip install -r requirements.txt 全部通过安装后才算是建立好项目环境了 Ubuntu 14.04 trusty 由于项目使用 Travis-CI 的系统是 ubuntu 14.04 trusty,因此 ubuntu 下的安装依赖可以参考 .travis.yml 中使用 travis_env_init.sh 进行安装, 在上面 virtualenv 环境中,项目根目录下,使用以下命令执行安装: sudo source travis_env_init.sh 或者 sudo ./travis_env_init.sh 预安装完成后,再 pip install -r requirements.txt 安装剩下的依赖。 安装脚本本来是针对 Travis 的环境,并非写的兼容的,如有其他包安装失败,请手动排查。 配置说明 本项目使用 百度语音识别 API,所以请先去 百度语音开放平台 建立工程,申请 API key、 Secret key,具体申请过程可参见 玩转百度语音识别,就是这么简单 这篇文章。 ./BaiduSpeech 目录下的 BaiduOAuthSample.ini 是配置示例文件,先复制 BaiduOAuthSample.ini 为 BaiduOAuth.ini,再按照文件示例中对应位置填写自己的 api_key secret_key,键值间等号左右各空一格,值项无需引号,若已有 token 可填写 access_token 项。 使用说明 根目录中的 SpeechRecognise.py 为语音识别启动文件 python3.5 SpeechRecognise.py 启动后对准话筒说话,控制台将输出识别结果。(距离话筒的远近与话筒灵敏度相关) 结构说明 根目录中的 SpeechRecognise.py 为语音识别启动文件, WaveOperate 包中封装了一些对声卡的常用操作,如: 录音、播放、保存文件、读取文件、绘制声波、绘制频谱、声音滤波 等操作。 BaiduSpeech 包中为对 Baidu API 调用的封装,其中 BaiduOAuth.ini 为百度 API key 配置文件。 UnitTest 包中为各模块的单元测试文件, 在项目根目录下执行命令 python3.5 -m nose -vs --with-coverage 将自动执行单元测试并输出结果和覆盖率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值