zoukankan      html  css  js  c++  java
  • 人工智能-简易网页版学说话机器人

    from aip import AipSpeech
    import time,os
    
    APP_ID = '15422825'
    APP_KEY = 'DhXGtWHYMujMVZZGRI3a7rzb'
    SECRET_KEY = 'PbyUvTL31fImGthOOIP5ZbbtEOGwGOoT'
    
    client = AipSpeech(APP_ID, APP_KEY, SECRET_KEY)
    
    # 1.将wma格式文件转为pcm格式文件
    def get_file_content(filePath):
        # 执行cmd命令os.system()
        os.system(f"ffmpeg -y  -i {filePath} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filePath}.pcm")
        with open(f"{filePath}.pcm", 'rb') as fp:
            return fp.read()
    
    # 2.将音频转成文字
    def audio2text(filepath):
        # 识别本地文件
        res = client.asr(get_file_content(filepath), 'pcm', 16000, {
            # 不填写lan参数生效,都不填写,默认1537(普通话 输入法模型),dev_pid参数见本节开头的表格
            'dev_pid': 1536,
        })
        # res.get("result")[0])
        # 将录音转成文字,然后返回
        return res.get("result")[0]
    
    # 3.将文字转成音频
    def text2audio(text):
        # 给合成的音频命名
        filename = f"{time.time()}.mp3"
        # 合成语音结果
        result = client.synthesis(text, 'zh', 1, {
            'vol': 5,
            "spd": 3,
            "pit": 7,
            "per": 4
        })
    
        # 识别正确返回语音二进制 错误则返回dict 参照下面错误码
        if not isinstance(result, dict):
            with open(filename, 'wb') as f:
                f.write(result)
    
        return filename
    
    # 调用方法audio2text,将语音转成文字
    text = audio2text("media/weather.wma")
    # 调用方法text2audio,将文字转成语音
    # 结果赋值给filename
    filename = text2audio(text)
    # 调用os.system()执行合成的音频文件
    os.system(filename)

    红框内的文件为实验所需要的

  • 相关阅读:
    100以内质数的算法
    WebAPI和WebService的区别
    .net core 2.0 数据访问-迁移
    .net core 2.0 Redis的基本使用
    .net core 2.0 Autofac
    net core 2.0 + Autofac的坑
    MVC路由机制
    MVC原理
    CentOS安装GIt、上传项目到git仓库
    ARM 汇编指令集 特点5:ARM 多级指令流水线
  • 原文地址:https://www.cnblogs.com/apollo1616/p/10274096.html
Copyright © 2011-2022 走看看