先看下运行效果
1找一个免费的API接口
输入你好,返回参数如下
参数分析:
txt为返回文字
tts为返回文字的语音网址
2返回文字部分
import requests
urk='https://xiaoapi.cn/API/lt_xiaoai.php?type=json&msg='
s = input("我:") #你提出的问题
url=urk+s
gu = requests.get(url)
print('小爱:'+gu.json().get('data').get('txt')) #返回的文字
3语音部分处理
(1)语音爬取
import requests,time
urk='https://xiaoapi.cn/API/lt_xiaoai.php?type=json&msg='
s = input("我:")
url = urk + s
gu = requests.get(url)
gum = gu.json().get('data').get('tts') # 语音网址
gus = requests.get(gum)
guf = time.strftime("%Y%m%d%H%M%S", time.localtime()) # 用时间当文件名
fl = 'D:/' + guf + '.mp3'
with open(fl, 'wb') as f:
f.write(gus.content) # 将爬取语音保存下来
(2)语音播放
import pygame
pygame.mixer.init() #初始化
pygame.mixer.music.load(r"file") #文件位置
pygame.mixer.music.play(1) #播放语音
while pygame.mixer.music.get_busy(): # 在音频播放为完成之前不退出程序
pass
4找个纸片人让他动起来
from PIL import Image, ImageSequence
import cv2
import numpy #图像部分
pic_name = "111.gif"
def gif(): #播放个GIF
im = Image.open(pic_name)
for frame in ImageSequence.Iterator(im): # 使用迭代器
frame = frame.convert('RGB')
cv2_frame = numpy.array(frame)
show_frame = cv2.cvtColor(cv2_frame, cv2.COLOR_RGB2BGR)
cv2.imshow(pic_name, show_frame)
cv2.waitKey(15) # 说话快慢 数字越大越慢
附:下面来几个GIF
如果上面的你都不满意,看看这张雷军的3Q!
完整代码文章来源:https://www.toymoban.com/news/detail-525345.html
import requests
import time,pygame
from PIL import Image, ImageSequence
import cv2
import numpy
urk='https://xiaoapi.cn/API/lt_xiaoai.php?type=json&msg='
pygame.mixer.init()
pic_name = "125.gif"
im = Image.open(pic_name)
print('输入--“再见”--结束程序')
def gif():
im = Image.open(pic_name)
for frame in ImageSequence.Iterator(im): # 使用迭代器
frame = frame.convert('RGB')
cv2_frame = numpy.array(frame)
show_frame = cv2.cvtColor(cv2_frame, cv2.COLOR_RGB2BGR)
cv2.imshow(pic_name, show_frame)
cv2.waitKey(10) # 说话快慢 越大越慢
while True:
s = input("我:")
url=urk+s
gu = requests.get(url)
gum=gu.json().get('data').get('tts') #语音网址
gus=requests.get(gum)
guf = time.strftime("%Y%m%d%H%M%S", time.localtime()) #用时间当文件名
fl='D:/'+guf+'.mp3'
with open(fl,'wb')as f:
f.write(gus.content) #将爬取语音保存下来w
print('小爱:'+gu.json().get('data').get('txt')) #输出小爱回复文字
pygame.mixer.music.load(fl)
pygame.mixer.music.play(1) #播放语音
while pygame.mixer.music.get_busy(): # 在音频播放为完成之前不退出程序
gif()
pass
gus.close()
gu.close() #关闭
if s=='再见':
print('顾某')
break
小学生写代码很多需要改进的地方 希望大家给予宝贵的建议文章来源地址https://www.toymoban.com/news/detail-525345.html
到了这里,关于小爱同学语音API(不需要小米账号)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!