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% """
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的比例来判断音频相似程度,得分越高,相似度越接近"""
...