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')

图灵机器人:

原文地址:https://www.cnblogs.com/yb635238477/p/9800922.html