zoukankan      html  css  js  c++  java
  • 人工智能--AI篇

    AI背景

    在当今互联网信息高速发展的大背景下,人工智能(AI)已经开始走进了千家万户,逐渐和我们的生活接轨,那具体什么是AI呢?

    什么是人工智能(AI)?

    人工智能:简单理解就是由人制造出来的,有一定的''智慧能力'',不过它同样类似人类一样具备:听、说、看、思考、理解等能力!

    听:语音识别;
    
    说:语音合成;
    
    看:图像,文字,视频的识别;
    
    思考:理解后的逻辑处理
    
    理解:语言(文字)图像,视频理解等逻辑处理
    

    身边的人工智能有哪些呢?

    阿里的天猫精灵和小米的小爱可以让陪伴我们聊天,点歌,购物等...;百度的小度的天网系统;银行办卡刷脸系统;车辆违章监控系统等....

    百度的AI

    百度AI开放平台,已经封装好的接口供我们进行调用,https://ai.baidu.com/,让我们能够更简单,直接的使用接触AI技术.

    图灵机器人

    图灵http://www.tuling123.com/,注册登录用创建一个机器人,通过api接入使用,通过api密匙

    AI的使用

    首先在我们python中安装接口模块,pip3 install baidu-aip第三方模块,然后根据百度技术文档,Python SDK配置使用

    语音合成

    from aip import AipSpeech
    
    """ 你的 APPID AK SK """
    APP_ID = '你的 App ID'
    API_KEY = '你的 Api Key'
    SECRET_KEY = '你的 Secret Key'
    
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)  #以上代码,常量APP_ID在百度云控制台中创建,常量API_KEY与SECRET_KEY是在创建完毕应用后,
    系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的应用列表中查看。
    
    result = client.systhesis('你好,见到你很高兴','zh',1,{
        'vol':5, #音量,取值0-15,默认为5中音量
        'pit':6, #音调,取值0-9,默认为5中语调
        'spd':4, #语速,取值0-9,默认为5中语速
        'per':0 #发音人选择, 0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女
    })
    
    if not isinstance(result,dict):
        with oprn('a.mp3','wb') as f:
            f.write(result)
    #这样就会生成一个a.mp3的音频,打开即可收听到 '
    你好,见到你很高兴'
    
    

    语音识别

    我们继续根据百度Python SDK技术文档进行使用;简述注意事项: 1.支持的音频格式有pcm、amr(压缩格式); 2.语音上限时长60s,超过就会报错!;采用率二选一 8000 或者 16000。正常情况请使用16000

    #使用音频转码方式
    FFmpeg
    1.安装链接:http://www.ffmpeg.org/download.html
    2.下载到安装包后,进行解压,找到bin目录,添加到windows环境变量,重启pycharm.,然后便可以执行转换音频格式了
    3. ffmpeg -y  -i a.mp3  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 a.pcm
    4.执行成功如下,否则报错
    """
    ffmpeg version N-91330-ga990184007 Copyright (c) 2000-2018 the FFmpeg developers
      built with gcc 7.3.0 (GCC)
      configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth
      libavutil      56. 18.102 / 56. 18.102
      libavcodec     58. 20.103 / 58. 20.103
      libavformat    58. 17.100 / 58. 17.100
      libavdevice    58.  4.101 / 58.  4.101
      libavfilter     7. 25.100 /  7. 25.100
      libswscale      5.  2.100 /  5.  2.100
      libswresample   3.  2.100 /  3.  2.100
      libpostproc    55.  2.100 / 55.  2.100
    [mp3 @ 0000000000469300] Estimating duration from bitrate, this may be inaccurate
    Input #0, mp3, from 'a.mp3':
      Duration: 00:00:02.63, start: 0.000000, bitrate: 16 kb/s
        Stream #0:0: Audio: mp3, 16000 Hz, mono, fltp, 16 kb/s
    Stream mapping:
      Stream #0:0 -> #0:0 (mp3 (mp3float) -> pcm_s16le (native))
    Press [q] to stop, [?] for help
    Output #0, s16le, to 'a.mp3.pcm':
      Metadata:
        encoder         : Lavf58.17.100
        Stream #0:0: Audio: pcm_s16le, 16000 Hz, mono, s16, 256 kb/s
        Metadata:
          encoder         : Lavc58.20.103 pcm_s16le
    size=      82kB time=00:00:02.62 bitrate= 256.0kbits/s speed= 263x    
    video:0kB audio:82kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
    """
    ffmpeg音频转码方式
    from aip import AipSpeech
    
    """ 你的 APPID AK SK """
    APP_ID = '你的 App ID'
    API_KEY = '你的 Api Key'
    SECRET_KEY = '你的 Secret Key'
    
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    
    # 读取文件
    def get_file_content(filePath):
        with open(filePath, 'rb') as fp:
            return fp.read()
    
    # 识别本地文件
    client.asr(get_file_content('audio.pcm'), 'pcm', 16000, {
        'dev_pid': 1536,
    })

    自然语言处理

    词法分析匹配有多种,这里只介绍,短文本相似度接口,也就是判断两个文本相似度得分

    #示例
    text1 = "浙富股份"
    text2 = "万事通自考网"
    """ 调用短文本相似度 """
    client.simnet(text1, text2);
    """ 如果有可选参数 """
    options = {}
    options["model"] = "CNN"
    """ 带参数调用短文本相似度 """
    client.simnet(text1, text2, options)
    
    #短文本相似度 返回示例
    
    {
        "log_id": 12345,
        "texts":{
            "text_1":"浙富股份",
            "text_2":"万事通自考网"
        },
        "score":0.3300237655639648 //相似度结果
    },
    
    """根据score的比例来判断音频相似程度,得分越高,相似度越接近"""

    ...

  • 相关阅读:
    [HDU 1003] Max Sum
    Codeforces
    2016 年宁波工程学院第七届ACM校赛题解报告
    [DP] Light Oj 1017 Brush(III)
    GDUT-校赛-积水积木
    1031 Hungar的得分问题(二)
    HDU 1506 Largest Rectangle in a Histogram
    lightoj 1033 Generating Palindromes
    网络编程总结
    生产者消费者模型
  • 原文地址:https://www.cnblogs.com/CrazySheldon1/p/10595359.html
Copyright © 2011-2022 走看看