亂七八糟

 


百度人工智能git

語音類:
語音識別:
語音合成:

圖片技術:
文字識別。。。
圖像識別。。。
圖像審覈。。。
圖像處理。。。
圖像搜索。。。


人臉與人體識別:
人臉識別。。。
人體分析。。。

視頻技術:web

AR與VR:
(AR)加強現實。。。
(VR)虛擬現實。。。json

天然語言處理:
語言處理基礎技術。。。
文本審覈。。。
機器翻譯。。。api



ai.baidu.com #帳號登錄,建立應用生成id,key
SDK:導包調用(直接封裝好了)ide


智能問答:語音識別+圖靈機器人+語音合成
1 安裝sdk:pip3 install baidu-aip
#文字轉成mp3 語音合成
#pcm音頻文件變成文字輸出,語音問語音回答 語音識別
post

2 音頻文件轉碼 (ffmpeg安裝配置環境) m4a-->pcm
ffmpeg -y -i nh.m4a -acodec pcm_s16le -f s16le -ac 1 -ar 16000 nh.m4a.pcm
3 m4a-->pcm在程序中自動轉換
4 模仿說話(語音識別的文字--》語音合成--mp3)
5 一問一答 my_nlp 自主問答交流系統
6 天然語言處理:短文本類似度 (另外建立一個應用,使用新的id,key)
from aip import AipNlp
7 數據採集,問題沒法本身定義的時候
圖靈機器人 http://www.tuling123.com 看官方文檔 問答機器人


8 web錄音+智能回答  https://gitee.com/jinjinxu/Smart-question-and-answerui


 

from aip import AipSpeech
import os
import my_nlp

""" 你的 APPID AK SK """
APP_ID = 'APPID'
API_KEY = 'AK'
SECRET_KEY = 'SK'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

# 讀取文件
def get_file_content(filePath):
    # m4a--pcm
    any2pcm_str=f"ffmpeg -y  -i {filePath}  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filePath}.pcm"
    os.system(any2pcm_str)
    with open(f"{filePath}.pcm", 'rb') as fp:
        return fp.read()

# 識別本地文件
res = client.asr(get_file_content('age.m4a'), 'pcm', 16000, { #輸入端
    'dev_pid': 1536,
})

Q = res.get('result')[0] #語音(問題)--文字(問題)語音識別
s = my_nlp.my_nlp(Q)    #文字(問題)--文字(答案) 圖靈機器人

# 文字(答案)--音頻 (答案)   語音合成
result  = client.synthesis(s, 'zh', 1, {
    'vol': 5,
})

# 識別正確返回語音二進制 錯誤則返回dict 參照下面錯誤碼
if not isinstance(result, dict):
    with open('auido.mp3', 'wb') as f:
        f.write(result)

os.system('auido.mp3') #系統調用播放音頻(答案)
ssqa.py
from aip import AipNlp
import tuling_test

""" 你的 APPID AK SK """
APP_ID = '14456041'
API_KEY = 'ybBcLZMDFGMYzlGpzMVhh6Fa'
SECRET_KEY = 'BtSDog3YYYagxCavzT6BP2SkoRHzeZZp'

client = AipNlp(APP_ID, API_KEY, SECRET_KEY)

def my_nlp(Q):
    return tuling_test.to_tuling(Q)
my_nlp.py
import requests

# 文本(問題)--文本 (答案)  不一樣的問題,不一樣的回答  調用圖靈機器人的接口
tuling_url = "http://openapi.tuling123.com/openapi/api/v2"


data = {
    "reqType": 0,
    "perception": {
        "inputText": {
            "text": "s%"
        },
    },
    "userInfo": {
        "apiKey": "apiKey",
        "userId": "userId"
    }
}

def to_tuling(Q):
    data["perception"]["inputText"]["text"] = Q
    s = requests.post(tuling_url,json=data)

    res = s.json().get("results")[0].get("values").get("text")

    return res
tuling_test.py
相關文章
相關標籤/搜索