人工智能第二篇
1. 第一版智能问答系统------------最low版
import os #语音客户端 from aip import AipSpeech """ 你的 APPID AK SK """ APP_ID = '16027163' API_KEY = 'wFXvuArTz8aWFou05jjs8XIG' SECRET_KEY = 'Ty6jGhtdR9GzCs8smn5HRGNNwtz0QkUQ' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) #语音合成 def text2audio(text): #参数是text result = client.synthesis(text, 'zh', 1, { #将参数传进去 'vol': 5, # 音量大小 "spd": 5, # 语速 "pit": 5, # 语调 "per": 1, # 情感发音 }) # 识别正确返回语音二进制 错误则返回dict 参照下面错误码 if not isinstance(result, dict): with open('audio.mp3', 'wb') as f: f.write(result) return 'audio.mp3' #返回audio.mp3 # 语音识别 def audio2text(filepath): ret = client.asr(get_file_content(filepath), 'pcm', 16000, { 'dev_pid': 1536, }) return ret.get('result')[0] # 得到语音文件的文本内容 # 读取文件 (固定格式) def get_file_content(filePath): 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() text=audio2text('2.m4a') #通过语音识别将语音装换成文本 #自然语言处理 if text =='这个有声音吗': filename = text2audio('我的名字叫大王') #回复语音,通过语音合成,将文本变成语音 # os.system(f"ffplay{filename}") #使用ffplay播放器 os.system(filename) #系统自动处理需要的播放器
2. 第二版智能问答系统 ---通过短文本相似度来识别
短文本接口:client = AipNlp(APP_ID, API_KEY, SECRET_KEY)
client_nlp = AipNlp(APP_ID, API_KEY, SECRET_KEY) #短文本接口 AipNlp #短文本校验两个文本的相似度 # res = client_nlp.simnet('你叫神马名字','你的名字是神马') # print(res)# 'score': 0.810756
查看官方文档:https://ai.baidu.com/docs#/NLP-Python-SDK/6dfe1b04
import os #语音客户端 from aip import AipSpeech, AipNlp """ 你的 APPID AK SK """ APP_ID = '16027163' API_KEY = 'wFXvuArTz8aWFou05jjs8XIG' SECRET_KEY = 'Ty6jGhtdR9GzCs8smn5HRGNNwtz0QkUQ' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) client_nlp = AipNlp(APP_ID, API_KEY, SECRET_KEY) #短文本接口 AipNlp #短文本校验两个文本的相似度 # res = client_nlp.simnet('你叫神马名字','你的名字是神马') # print(res)# 'score': 0.810756 #语音合成 def text2audio(text): #参数是text result = client.synthesis(text, 'zh', 1, { #将参数传进去 'vol': 5, # 音量大小 "spd": 5, # 语速 "pit": 5, # 语调 "per": 1, # 情感发音 }) # 识别正确返回语音二进制 错误则返回dict 参照下面错误码 if not isinstance(result, dict): with open('audio.mp3', 'wb') as f: f.write(result) return 'audio.mp3' # 语音识别 def audio2text(filepath): ret = client.asr(get_file_content(filepath), 'pcm', 16000, { 'dev_pid': 1536, }) return ret.get('result')[0] # 得到语音文件的文本内容 # 读取文件 (固定格式) def get_file_content(filePath): 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() text=audio2text('2.m4a') #通过语音识别将语音装换成文本 #自然语言处理 # if text =='这个有声音吗': # if client_nlp.simnet('有音吗',text): if client_nlp.simnet('有音吗',text).get('score') >=0.58: #短文本相似度>=0.58 filename = text2audio('我的名字叫大王') #回复语音,通过语音合成,将文本变成语音 # os.system(f"ffplay{filename}") #使用ffplay播放器 os.system(filename) #系统自动处理需要的播放器