zoukankan      html  css  js  c++  java
  • falsk 基础 语音识别与语音合成()

    首先搜索http://ai.baidu.com/进入官网。

    下拉找到百度语音:

    然后创建一个语音应用:

    管理应用之后:

    语音合成:

    然后新建一个py文件:

    from aip import AipSpeech
    
    APP_ID = '14454183'
    API_KEY = 'txNuGCIsenvEB93I70EsWwB4'
    SECRET_KEY = 'dzdok3DcUeUxE28atFgiOQzxVd91BmQu'
    
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    res = client.synthesis('我如果爱你',options={
        "vol":8,
        "pit":8,
        "spd":5,
        "per":4
    })
    with open("audio.mp3",'wb')as f:
        f.write(res)

    语音识别:

    在本地保存一个音频文件,新建一个py文件:

    from aip import AipSpeech
    import os
    
    APP_ID = '14454183'
    API_KEY = 'txNuGCIsenvEB93I70EsWwB4'
    SECRET_KEY = 'dzdok3DcUeUxE28atFgiOQzxVd91BmQu'
    
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    def get_file_content(filePath):
        '''
        因为只能识别pcm格式的音频,所以利用ffmpeg将mp3格式转化成pcm格式
        '''
        cmd_str = "ffmpeg -y -i {0} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {0}.pcm".format(filePath)
        os.system(cmd_str)
        with open("%s.pcm"%(filePath), 'rb') as f:
            return f.read()
    res = client.asr(speech=get_file_content("audio.mp3"),options={
        "dev_pid":1536,
    })
    print(res)

    要记得将ffpeg中的bin目录放在系统的环境变量里,然后重启pycharn。

    然后我们写一个demo:功能是实现将我们的音频文件读出来。

    from aip import AipSpeech
    import os
    APP_ID = '14454183'
    API_KEY = 'txNuGCIsenvEB93I70EsWwB4'
    SECRET_KEY = 'dzdok3DcUeUxE28atFgiOQzxVd91BmQu'
    
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    def get_file_content(filePath):
        cmd_str = "ffmpeg -y -i {0} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {0}.pcm".format(filePath)
        os.system(cmd_str)
        with open("%s.pcm"%(filePath), 'rb') as f:
            return f.read()
    def xsh(filename):
        res = client.asr(speech=get_file_content(filename), options={
            "dev_pid": 1536,
        })
        text = res.get('result')[0]
        res = client.synthesis(
            text,
            options={
                "vol": 8,
                "pit": 8,
                "spd": 5,
                "per": 4
            })
        with open("audio2.mp3", 'wb')as f:
            f.write(res)
        os.system("audio2.mp3")
    
    xsh('audio.mp3')

    自然语言:

    同样创建一个自然语言的应用:

    创建之后:

    新建一个py文件:

    from aip import AipNlp
    
    APP_ID = '14457133'
    API_KEY = 'yehIP7ofhGqNi7BD1R29LygH'
    SECRET_KEY = 'ri0WgWeYhSyQszTv4kZDRvNwV34NQ2F7'
    
    client = AipNlp(APP_ID, API_KEY, SECRET_KEY)
    res = client.simnet('你今年多大了?','你的年龄是多少?')
    # 判断两句话的相似度,如果相似度大于0.72,就认为两句话语义是一样的
    print(res)

    打印结果:

    判断两句话的相似度,如果相似度大于0.72,就认为两句话语义是一样的

    我们写一个回答简单问题的demo:

    from aip import AipSpeech,AipNlp
    import os
    APP_ID = '14454183'
    API_KEY = 'txNuGCIsenvEB93I70EsWwB4'
    SECRET_KEY = 'dzdok3DcUeUxE28atFgiOQzxVd91BmQu'
    
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    nlp_client = AipNlp(APP_ID, API_KEY, SECRET_KEY)
    def get_file_content(filePath):
        cmd_str = "ffmpeg -y -i {0} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {0}.pcm".format(filePath)
        os.system(cmd_str)
        with open("%s.pcm"%(filePath), 'rb') as f:
            return f.read()
    def xsh(filename):
        res = client.asr(speech=get_file_content(filename), options={
            "dev_pid": 1536,
        })
        text = res.get('result')[0]
        text = my_nlp(text)
        res = client.synthesis(
            text,
            options={
                "vol": 8,
                "pit": 8,
                "spd": 5,
                "per": 4
            })
        with open("audio2.mp3", 'wb')as f:
            f.write(res)
        os.system("audio2.mp3") # 系统执行文件
    def my_nlp(text):
        if nlp_client.simnet('你叫什么名字?',text).get('score') >= 0.72:
            return '我的名字叫金王八'
        if nlp_client.simnet('你今年几岁了?',text).get('score') >= 0.72:
            return '我今年999岁了'
    
    xsh('audio.mp3')

    图灵机器人:

  • 相关阅读:
    supervisor 安装与使用
    CF39C-Moon Craters【dp】
    NWERC2020J-Joint Excavation【构造,贪心】
    CF25E-Test【AC自动机,bfs】
    CF19E-Fairy【树形结构,差分】
    CF11D-A Simple Task【状压dp】
    CF5E-Bindian Signalizing【单调栈】
    P6628-[省选联考 2020 B 卷] 丁香之路【欧拉回路,最小生成树】
    CF666E-Forensic Examination【广义SAM,线段树合并】
    CF235D-Graph Game【LCA,数学期望】
  • 原文地址:https://www.cnblogs.com/yb635238477/p/9800922.html
Copyright © 2011-2022 走看看