人工智障

1.百度的语音合成

具体配置参考 http://ai.baidu.com/docs#/TTS-Online-Python-SDK/top

from aip import AipSpeech

""" 你的 APPID AK SK """
APP_ID = ‘15421010‘
API_KEY = ‘YSKSaidmdyWkfhnhWezCeTqi‘
SECRET_KEY = ‘EXfzsG9tr6fI6U4KPz28XQmXa8MIBKMz‘

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

result = client.synthesis(‘来到这个世界,天使都会犯错‘, ‘zh‘, 1, {
    ‘vol‘: 5,
})

# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):
    with open(‘audio.mp3‘, ‘wb‘) as f:
        f.write(result)

2.百度的语音识别

具体配置参考 http://ai.baidu.com/docs#/ASR-Online-Python-SDK/top

import os
from aip import AipSpeech

""" 你的 APPID AK SK """
APP_ID = ‘15421010‘
API_KEY = ‘YSKSaidmdyWkfhnhWezCeTqi‘
SECRET_KEY = ‘EXfzsG9tr6fI6U4KPz28XQmXa8MIBKMz‘

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

# 读取文件
def get_file_content(filePath):
    os.system(f"ffmpeg -y  -i {filePath} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filePath.split(‘.‘)[0]}.pcm") #执行的是一个对文件格式的转换,需要下载一个ffmgep
    with open(f"{filePath.split(‘.‘)[0]}.pcm", ‘rb‘) as fp:
        return fp.read()

# 识别本地文件
res = client.asr(get_file_content(‘jrshdls.m4a‘), ‘pcm‘, 16000, {
    ‘dev_pid‘: 1536,
})

print(res)

3.两个结合

import os
import time
from aip import AipSpeech

""" 你的 APPID AK SK """
APP_ID = ‘15421010‘
API_KEY = ‘YSKSaidmdyWkfhnhWezCeTqi‘
SECRET_KEY = ‘EXfzsG9tr6fI6U4KPz28XQmXa8MIBKMz‘

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

# 读取文件
def get_file_content(filePath):
    os.system(f"ffmpeg -y  -i {filePath} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filePath.split(‘.‘)[0]}.pcm")
    with open(f"{filePath.split(‘.‘)[0]}.pcm", ‘rb‘) as fp:
        return fp.read()

def audio2text(filepath):
    # 识别本地文件
    res = client.asr(get_file_content(filepath), ‘pcm‘, 16000, {
        ‘dev_pid‘: 1536,
    })
    print(res.get("result")[0])
    return res.get("result")[0]

def text2audio(text):
    filename = f"{time.time()}.mp3"
    result = client.synthesis(text, ‘zh‘, 1, {
        ‘vol‘: 5,
    })
    # 识别正确返回语音二进制 错误则返回dict 参照下面错误码
    if not isinstance(result, dict):
        with open(filename, ‘wb‘) as f:
            f.write(result)
    return filename

text = audio2text("jrshdls.m4a")
filename = text2audio(text)

os.system(filename)

4.图灵机器人的简单使用

具体参考 https://www.kancloud.cn/turing/www-tuling123-com/718227

import requests

args = {
    "reqType":0,
    "perception": {
        "inputText": {
            "text": "附近的酒店"
        }
    },
    "userInfo": {
        "apiKey": "08a682c47e334a11bd99cbf093930b63",
        "userId": "1"
    }
}

url = "http://openapi.tuling123.com/openapi/api/v2"

res = requests.post(url, json=args)

print(res.json())

5.人工智障的简单应用

import os
import time
from aip import AipSpeech, AipNlp #提供自认语言处理

""" 你的 APPID AK SK """
APP_ID = ‘15421010‘
API_KEY = ‘YSKSaidmdyWkfhnhWezCeTqi‘
SECRET_KEY = ‘EXfzsG9tr6fI6U4KPz28XQmXa8MIBKMz‘

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
nlp = AipNlp(APP_ID, API_KEY, SECRET_KEY) #自认语言处理

# 读取文件
def get_file_content(filePath):
    os.system(f"ffmpeg -y  -i {filePath} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filePath.split(‘.‘)[0]}.pcm")
    with open(f"{filePath.split(‘.‘)[0]}.pcm", ‘rb‘) as fp:
        return fp.read()

def audio2text(filepath):
    # 识别本地文件
    res = client.asr(get_file_content(filepath), ‘pcm‘, 16000, {
        ‘dev_pid‘: 1536,
    })
    print(res.get("result")[0])
    return res.get("result")[0]

def text2audio(text):
    filename = f"{time.time()}.mp3"
    result = client.synthesis(text, ‘zh‘, 1, {
        ‘vol‘: 5,
    })
    # 识别正确返回语音二进制 错误则返回dict 参照下面错误码
    if not isinstance(result, dict):
        with open(filename, ‘wb‘) as f:
            f.write(result)
    return filename

# print(nlp.simnet("你叫什么名字", "你的名字是什么"))

text = audio2text("jrshdls.m4a")
if nlp.simnet("时间的多少", text).get("score") >= 0.68: #这个方法会匹配两个字符串的相似度
    text = "我的名字是小明"
else:
    text = "我不知道你在说什么"
filename = text2audio(text)

os.system(filename)

6.如何在浏览器中实现图灵机器人的对话

baidu_ai.py

import os
import time
from aip import AipSpeech, AipNlp

""" 你的 APPID AK SK """
APP_ID = ‘15421010‘
API_KEY = ‘YSKSaidmdyWkfhnhWezCeTqi‘
SECRET_KEY = ‘EXfzsG9tr6fI6U4KPz28XQmXa8MIBKMz‘

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
nlp = AipNlp(APP_ID, API_KEY, SECRET_KEY)

# 读取文件
def get_file_content(filePath):
    os.system(f"ffmpeg -y  -i {filePath} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filePath.split(‘.‘)[0]}.pcm")
    with open(f"{filePath.split(‘.‘)[0]}.pcm", ‘rb‘) as fp:
        return fp.read()

def audio2text(filepath):
    # 识别本地文件
    res = client.asr(get_file_content(filepath), ‘pcm‘, 16000, {
        ‘dev_pid‘: 1536,
    })
    print(res.get("result")[0])
    return res.get("result")[0]

def text2audio(text):
    filename = f"{time.time()}.mp3"
    result = client.synthesis(text, ‘zh‘, 1, {
        ‘vol‘: 5,
    })
    # 识别正确返回语音二进制 错误则返回dict 参照下面错误码
    if not isinstance(result, dict):
        with open(filename, ‘wb‘) as f:
            f.write(result)
    return filename

def to_tuling(text):
    import requests

    args = {
        "reqType": 0,
        "perception": {
            "inputText": {
                "text": text
            }
        },
        "userInfo": {
            "apiKey": "08a682c47e334a11bd99cbf093930b63",
            "userId": "1"
        }
    }

    url = "http://openapi.tuling123.com/openapi/api/v2"
    res = requests.post(url, json=args)
    text = res.json().get("results")[0].get("values").get("text")
    return text

app.py

from flask import Flask, request, render_template, jsonify, send_file
import baidu_ai
from uuid import uuid4

app = Flask(__name__)

@app.route("/")
def index():
    return render_template("index.html")

@app.route("/ai", methods=["POST"])
def ai():
    # 1.保存录音文件
    audio = request.files.get("record")
    filename = f"{uuid4()}.wav"
    audio.save(filename)
    # 2.将录音文件转换为PCM发送给百度进行语音识别
    q_text = baidu_ai.audio2text(filename)

    # 3.将识别的问题交给图灵或自主处理获取答案
    a_text = baidu_ai.to_tuling(q_text)

    # 4.将答案发送给百度语音合成,合成音频文件
    a_file = baidu_ai.text2audio(a_text)

    # 5.将音频文件发送给前端播放

    return jsonify({"filename": a_file})

@app.route("/get_audio/<filename>")
def get_audio(filename):
    return send_file(filename)

if __name__ == ‘__main__‘:
    app.run("0.0.0.0", 5000, debug=True)

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<audio controls autoplay id="player"></audio>
<p>
    <button onclick="start_reco()" style="background-color: yellow">录制语音指令</button>
</p>
<p>
    <button onclick="stop_reco_audio()" style="background-color: blue">发送语音指令</button>
</p>
</body>
<!--<script type="application/javascript" src="/static/Recorder.js"></script>-->
<script type="application/javascript" src="https://cdn.bootcss.com/recorderjs/0.1.0/recorder.js"></script>
<script type="text/javascript" src="/static/jQuery3.1.1.js"></script>

<script type="text/javascript">
    var reco = null;
    var audio_context = new AudioContext();
    navigator.getUserMedia = (navigator.getUserMedia ||
        navigator.webkitGetUserMedia ||
        navigator.mozGetUserMedia ||
        navigator.msGetUserMedia);

    navigator.getUserMedia({audio: true}, create_stream, function (err) {
        console.log(err)
    });

    function create_stream(user_media) {
        var stream_input = audio_context.createMediaStreamSource(user_media);
        reco = new Recorder(stream_input);
    }

    function start_reco() {
        reco.record();
    }

    function stop_reco_audio() {
        reco.stop();
        send_audio();
        reco.clear();
    }

    function send_audio() {
        reco.exportWAV(function (wav_file) {
            var formdata = new FormData();
            formdata.append("record", wav_file);
            console.log(formdata);
            $.ajax({
                url: "http://192.168.13.177:5000/ai",
                type: ‘post‘,
                processData: false,
                contentType: false,
                data: formdata,
                dataType: ‘json‘,
                success: function (data) {
                    console.log(data);
                    document.getElementById("player").src ="http://192.168.13.177:5000/get_audio/" + data.filename
                }
            });

        })
    }

</script>
</html>

原文地址:https://www.cnblogs.com/qq849784670/p/10274138.html

时间: 2024-10-25 08:00:36

人工智障的相关文章

“人工智障” 杂谈

什么是人工智能 人工智能(Artificial Intelligence),英文缩写为AI,它是研究.开发用于模拟和扩展人的智能的理论.方法.技术及应用系统的一门新的技术科学. 上个世纪50年代一次学术讨论会议上,当时几位著名的科学家从不同学科的角度探讨用机器模拟人类智能等问题,并首次提出了"人工智能"的术语.从此,人工智能这门新兴的学科诞生了. 那场学术讨论会议,就是计算机科学史上著名的达特茅斯会议(Dartmouth Conferences). 人工智能之父麦卡锡给出的定义: 构建

人工智能贬为人工智障,揭下“伪装”的智能产品

从三年前的Alphago与李世石的的世纪大战引爆科技圈已来,人工智能的话题一直是科技瞩目的焦点,相较于传统的基础研究,好像人们对于这种新鲜事物更加的情有独钟,在Alphago大胜九段围棋大师时,人们惊呼"人工智能将要代替人类",不过随着时间的过去,人们也逐渐变得更为理性,即便是近三年人工智能技术的成就惊人的瞩目,但是远远没有脱离"人工"的现实. 不过并不代表人工智能不重要,相反它已近融入到我们生活中.早在18年5月的I/O开发者大会上面,不少的从业者展示了人工智能语

机器学习与人工智障(5):决策树与随机森林

一.从LR到决策树 1.总体流程与核心问题 (1)决策树是基于树的结构进行决策: 每个"内部节点"对应于某个属性上的"测试" 每个分支对应于该测试的一种可能结果(即该属性上的每个取值) 每个叶节点对应于一个预测结果 (2)学习过程:通过对训练样本的分析来确定"划分属性"(即内部节点所对应的属性) (3)预测过程:将测试实例从根节点开始,沿着划分属性所构成的"判定测试序列"下行,直到叶节点 2.决策树的总体流程: (1):&qu

比较容易犯的一些智障错误(不定时修改)

无论在什么学习中,在成长的过程中,注定要犯一些错误,有些比较高级的错误,有些是比较智障的错误.那么在oi的学习中,我们最讨厌的就是一些智障的小错误,因为如果是大错误的话一般情况下在测试样例的时候都是能够发现的(比如死循环啊什么的),然而智障的小错误有时候能让我们20分钟敲出来的程序检查个一个小时甚至一天(当然不是在竞赛中),那么总结一下这些智障的小错误能够帮助我们在程序莫名其妙挂掉的时候能够往那个方面去检查. 1.在写if语句的时候: if(){ } else if(){ } 最好加上else,

一个智障安装了一天的python和graphlab的血泪史

大概的过程是这样的: 先装了python3.6.1.,然后发现搞错了Σ(  ̄□ ̄||),是32 bit的,卸了重装python 3.6.1 (64bit). 然后装easy_install.pip.ipython notebook.历经千辛万苦搞定了ipython notebook之后, 再去turi下载graphlab,发现这玩意要求python 2.7的环境...(╯°口°)╯(┴-┴ 还能怎么办呢只有重新装python2.7 64bit, 然后直接按turi推荐的步骤,先安装anacond

智障操作合集

再不写这个我真的会因为智商过低而死 7.28 https://www.cnblogs.com/chloris/p/11260955.html插头dp智障操作合集 7.30 P4093 序列 CDQ分治优化DP  排序时b+l打成了b+1导致各种TLE 方案数的+1写在了ask查找的括号里面,导致ask(b[rr].pos)+1变成了ask(b[rr].pos+1) P4141 消失之物 题目要求输出末尾数字[%10],我:全部输出 NOIP模拟测试10 T2 模板 写splay的时候,rotat

智障的对话

一.蠢萌的学长 发往: whw (wjs6-36) 时间: 2017-03-13 星期一 22:11:48 (RSA)(封装) ------------------------------------- >>>>>>>>>>>>>>>>>>>>>>王海伟?? >>>>>>>>>>>>>>>

【二分答案+智障的字符串hash】BZOJ2946-[Poi2000]公共串(Ranklist倒一达成!!!!!)【含hash知识点】

[题目大意] 给出几个由小写字母构成的单词,求它们最长的公共子串的长度. [字符串hash的小笔记] hash[i]=(hash[i-1]*p+idx(s[i]))%mod,idx为映射值,一般a..z映射1..26: 习惯上,p取一个6到8位的素数即可,mod一般取大素数 1e9+7(1000000007)或1e9+9(1000000009). hash[i]=(hash[i-1]*p+idx(s[i]))%mod 表示第 i 个前缀的hash值,是一个hash的前缀和,那么,要求S[l…r]

python 人工智论

https://www.zhihu.com/question/21395276 基于python深度学习库DeepPy的实现:GitHub - andersbll/neural_artistic_style: Neural Artistic Style in Python 基于python深度学习库TensorFlow的实现:GitHub - anishathalye/neural-style: Neural style in TensorFlow! 基于python深度学习库Caffe的实现: