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

 

 

...

转载于:https://www.cnblogs.com/CrazySheldon1/p/10595359.html

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐