• Python人工智能-基于百度AI接口


    参考百度AI官网:http://ai.baidu.com/

    准备工作:

      支持Python版本:2.7.+ ,3.+

    安装使用Python SDK有如下方式

      >如果已经安装了pip,执行 pip install baidu-aip 即可。

      >如果已安装setuptools,执行 python setup.py install 即可。

    登录百度ia网站:

      1、用百度账号登录

      2、进入左侧语言应用

      3、创建新应用

     

    实验1:语音合成(将文字转为语音)

    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)
    
    result  = client.synthesis('中南山下活死人墓预知后事如何请听下回分解', 'zh', 1, {
        'vol': 5,
        'spd': 3,
        'pit': 9,
        'per': 3,
    })
    # 识别正确返回语音二进制 错误则返回dict 参照下面错误码
    if not isinstance(result, dict):
        with open('auido.mp3', 'wb') as f:
            f.write(result)

    参数备注:

    实验2:语音识别(语音转为文字)+语音合成

    from aip import AipSpeech
    import os
    
    
    """ 你的 APPID AK SK """
    APP_ID = '同上'
    API_KEY = '同上'
    SECRET_KEY = '同上'
    
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    
    #语音识别(将音频转为文字)
    
    # 读取文件
    def get_file_content(filePath):
    
        #实现文件自动转换(只要修改下面的本地文件并传值就可以执行)
        any2pcm=f"ffmpeg -y  -i {filePath}  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filePath}.pcm"
        os.system(any2pcm)
    
        with open(f"{filePath}.pcm", 'rb') as fp:
            return fp.read()
    
    # 识别本地文件
    res=client.asr(get_file_content('ea.m4a'), 'pcm', 16000, {
        'dev_pid': 1536,
    })
    
    #拿到的是视频转换后的文字
    print(res['result'][0])
    
    #语音合成(再将文字转为音频)
    result  = client.synthesis(res['result'][0], 'zh', 1, {
        'vol': 5,
        'spd': 3,
        'pit': 9,
        'per': 3,
    })
    # 识别正确返回语音二进制 错误则返回dict 参照下面错误码
    if not isinstance(result, dict):
        with open('auido.mp3', 'wb') as f:
            f.write(result)
    
    #调用系统默认播放器
    os.system("auido.mp3")

    注意点:

      1. 语音识别的格式只支持pcm,万能格式转换命令为:

        ffmpeg -y  -i audio.wav(原文件名)  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 audio.pcm(转换后的文件名字)

      2. os.system()是直接可以执行系统命令

  • 相关阅读:
    [vue Debugger] sourcemap
    [vuex]持久化存储
    [vuex]字典值封装到vuex缓存
    [vue]常用指令集合
    VSCode插件集合
    [element-ui] 表格点击出现编辑效果实现
    [pdf] 插件实现pdf上传预览、打印
    [html] 特殊字符
    [element-ui] 穿梭框对象重复不添加方案
    Redis持久化
  • 原文地址:https://www.cnblogs.com/yangzhizong/p/9882805.html
Copyright © 2020-2023  润新知