zoukankan      html  css  js  c++  java
  • Python之人工智能(一)

      是不是看到标题感觉很高大上?其实就是人工智障啦hhh~,本篇文档是典型的标题党,虽然是人工智能,但是没有算法,只是站在巨人的肩膀上而已。

      好了,步入正题。此篇是人工智能应用的重点,只用现成的技术不做底层算法,也是让初级程序员快速进入人工智能行业的捷径。目前市面上主流的AI技术提供公司有很多,比如百度,阿里,腾讯,主做语音的科大讯飞,做只能问答的图灵机器人等等。。。这些公司投入了很大一部分财力物力人力将底层封装,提供应用接口给我们,尤其是百度,完全免费的接口。既然百度这么仗义,咱们就不要浪费掉怎么好的资源,从百度AI入手,开启人工智能之旅。

    一、开启人工智能大门

    传送门

    创建一个百度语音的应用

    首先需要登录百度云,接着进入我的控制台,打开百度语音,进入语音应用管理界面,创建一个新的应用 

    接着就能看到自己创建的应用啦

    这里面有三个值 AppID , API Key , Secret Key 记住可以从这里面看到 , 在之后的学习中我们会用到

    好了 百度语音的应用已经创建完成了 接下来 我会用Python 代码作为实例进行应用及讲解

    安装百度的人工智能SDK

    • 首先咱们要 pip install baidu-aip 安装一个百度人工智能开放平台的Python SDK实在是太方便了,这也是为什么我们选择百度人工智能的最大原因

     语音合成

    • 安装好后我们先来测试下,语音合成功能。

    • 具体参数,不详尽之处请看官方文档:传送门

    • 这一步会生成一个名字为audio.m4a的文件
    from aip import AipSpeech
    import os
    
    APP_ID = '11711274'
    API_KEY = 'iL6rNZgPjplCGYQfw86zO2ro'
    SECRET_KEY = '0YNfOLiAPUgqCL4XxYVoO2oLV37pmByY'
    
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    
    result = client.synthesis('你好啊', 'zh', 1, {
        "spd": 4,
        'vol': 8,
        "pit": 6,
        "per": 0,
    })
    
    # 识别正确返回语音二进制 错误则返回dict 参照下面错误码
    if not isinstance(result, dict):
        with open('audio.m4a', 'wb') as f:
            f.write(result)
    else:
        print(result)

    二、语音识别

    安装音频转换工具FFmpeg 

    • 声音这个东西格式太多样化了,如果要想让百度的SDK识别咱们的音频文件,就要想办法转变成百度SDK可以识别的格式PCM。

    • 这里我们选择的是FFmpeg ,下载好后配置好环境变量。

    • 即可在CMD中使用
    ffmpeg -y  -i audio.m4a  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 audio.pcm

     

    • 接着在文件夹中就可以看到pcm格式的文件了

     百度语音识别SDK应用

    • 好了准备工作都做好了就开始到正式接触人工智障了

    • asr函数需要四个参数,第四个参数可以忽略,自有默认值,参照一下这些参数是做什么的 
      • 第一个参数: speech 音频文件流 建立包含语音内容的Buffer对象, 语音文件的格式,pcm 或者 wav 或者 amr。(虽说支持这么多格式,但是只有pcm的支持是最好的)
        
        第二个参数: format 文件的格式,包括pcm(不压缩)、wav、amr (虽说支持这么多格式,但是只有pcm的支持是最好的)
        
        第三个参数: rate 音频文件采样率 如果使用刚刚的FFmpeg的命令转换的,你的pcm文件就是16000
        
        第四个参数: dev_pid 音频文件语言id 默认1537(普通话 输入法模型)
    from aip import AipSpeech
    import os
    
    APP_ID = '11711274'
    API_KEY = 'iL6rNZgPjplCGYQfw86zO2ro'
    SECRET_KEY = '0YNfOLiAPUgqCL4XxYVoO2oLV37pmByY'
    
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    
    
    def get_file_content(filePath):
        with open(filePath, 'rb') as fp:
            return fp.read()
    
    # 识别本地文件
    res = client.asr(get_file_content('audio.pcm'), 'pcm', 16000,{
        'dev_pid': 1536,
    })
    
    print(
        res.get("result")[0]
    )
    •  接着来看看返回值

    成功的dict中 result 就是我们要的识别文本

    失败的dict中 err_no 就是我们要的错误编码,错误编码代表什么呢?

    如果err_no不是0的话,就参照一下错误码表

    到此百度AI语音部分的调用就结束了,是不是感觉很简单。

  • 相关阅读:
    cmanformat
    mysql-sql语言参考
    jQuery 判断多个 input checkbox 中至少有一个勾选
    Java实现 蓝桥杯 算法提高 计算行列式
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 算法提高 成绩排序2
    Java实现 蓝桥杯 算法提高 成绩排序2
    Java实现 蓝桥杯 算法提高 成绩排序2
  • 原文地址:https://www.cnblogs.com/Dream-huang/p/9520180.html
Copyright © 2011-2022 走看看