• 人工智能之语音


    以下技术均依靠于百度AI开放平台提供的接口操作!调用接口语言为python

    一,下载

    pip install baidu-aip

    二,语音合成

    根据百度语言合成官网,调用即可:

    #!/usr/bin/env python
    # -*- coding:utf8 -*-
    
    
    from aip import AipSpeech
    
    """ 你的 APPID AK SK """  # 注册百度账号之后,创建一个应用,即可获得这些数据
    APP_ID = "14446029"  
    API_KEY = "fErCt9KmoKuGDpBZqDQhQB7v"
    SECRET_KEY = 'EXTb37xV1lubXB8D5fzZnlljLHnC7VMx'
    
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    
    text = "你叫啥呀"
    res = client.synthesis(text, options={
        "vol": 8,  # 
        "pit": 6,
        "spd": 5,
        "per": 4
    })
    
    if not isinstance(res, dict):
        with open('audio.mp3', 'wb') as f:
            f.write(res)

    配置参数详见:http://ai.baidu.com/docs/#/TTS-Online-Python-SDK/top

    这样我们生成的’audio'.mp3文件就是识别后的语言!

    三,语言识别

    目前百度支持的语言格式:原始 PCM 的录音参数必须符合 8k/16k 采样率、16bit 位深、单声道,支持的格式有:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式)(百度自己说的);

    其实,百度能准确的识别的语音格式只有PCM!!!

    那么我们就需要把我们的语音格式转换为PCM格式!使用下面这个工具可以完成音频任意装换格式!

    FFmpeg 系统工具 : https://pan.baidu.com/s/1jonSAa_TG2XuaJEy3iTmHg 密码:w6hk 

    下载之后,解压,然后配置环境变量,就可以使用了!使用命令看下面代码!

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    import os
    from aip import AipSpeech
    
    """ 你的 APPID AK SK """
    APP_ID = "14446029"
    API_KEY = "fErCt9KmoKuGDpBZqDQhQB7v"
    SECRET_KEY = 'EXTb37xV1lubXB8D5fzZnlljLHnC7VMx'
    
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    
    
    def get_file_content(file_path):
        cmd_str = f"ffmpeg -y -i {file_path} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {file_path}.pcm"  # 用于转换我们的语音格式
        os.system(cmd_str)
        with open(f"{file_path}.pcm", 'rb') as fp:
            return fp.read()
    
    
    res = client.asr(speech=get_file_content("2.m4a"), options={
        "dev_pid": 1536,
    })
    
    print(res)
    print(res.get("result")[0])

    参数配置详见 : http://ai.baidu.com/docs/#/ASR-Online-Python-SDK/top

     四,自然语言处理(NLP)

    详见: http://ai.baidu.com/docs/#/NLP-Python-SDK/top

    from aip import AipNlp
    
    
    """ 你的 APPID AK SK """
    APP_ID = "14446029"
    API_KEY = "fErCt9KmoKuGDpBZqDQhQB7v"
    SECRET_KEY = 'EXTb37xV1lubXB8D5fzZnlljLHnC7VMx'
    
    
    nip_client = AipNlp(APP_ID, API_KEY, SECRET_KEY)
    
    def nip_handle(text):
        if nip_client.simnet("你叫什么名字", text).get("score") >= 0.72:  # 用于返回两个文本的相似度,大于72%既可以认为,2个意思基本相同!
            return "我的名字叫sado"
        return goto_tuling(text, "xipangzi")
  • 相关阅读:
    2019-2020-2-20175332 张苗 -《网络对抗技术》Exp5 信息搜集与漏洞扫描
    2019-2020-2-20175332 张苗-《网络对抗技术》-exp4 恶意代码分析
    2019-2020-2 网络对抗技术-20175332 张苗-exp3 免杀原理与实践
    2019-2020-2-《网络攻防技术》-20175332 张苗-exp2 后门原理与实践
    2019-2020-2-《网络对抗技术》-20175332 张苗-exp1 PC平台逆向破解
    2019-2020-1-20175332-实验五通讯协议设计
    2018-2019-2 20165204《网络对抗技术》 Exp9 Web安全基础
    2018-2019-2 20165204《网络对抗技术》 Exp8 Web基础
    2018-2019-2 20165204《网络对抗技术》 Exp7 网络欺诈防范
    2018-2019-2 20165204《网络对抗技术》 Exp6 信息搜集与漏洞扫描
  • 原文地址:https://www.cnblogs.com/qq631243523/p/10273518.html
Copyright © 2020-2023  润新知