KittenCode专属人工智能由以下2个库构成
kittenai——与人工智能相关的库,如百度语音识别、视觉识别等
kittenmedia——与人工智能的语音视频配套的媒体库,用于调用麦克风和摄像头
:::warning 人工智能的功能都需要在联网状态下使用,在KittenCode的模式应为Python3 :::
语音识别
通过录入一段语音,将语音识别为文字
APIbaiduAi.speech2text(au, lang='zh')
参数 | 说明 | 详情 |
---|---|---|
au | 填入为需要语音合成的内容 | 支持中英文> 合成的文本,使用UTF-8编码,请注意文本长度必须小于1024字节 |
|
| lang | 识别的语言对象 |
- 普通话(纯中文识别) = ‘zh’
- 英语 = ‘en’
- 粤语 = ‘guangdong’
- 四川话 = ‘sichuan’
- 普通话远场 = ‘far’
:::warning
除了’zh’以外的识别次数配额较少,很可能会出现3305的错误码既当日当用次数达到上限
:::
|
示例
运行程序后,右侧多媒体窗口会弹出,操作如下:
- 点击 录音
- 说完一段话后,点击 停止
- 此时如果顺利即可在终端看到返回 ```python import time from kittenai import from kittenmedia import
media = KittenMedia() media.start()
baiduAi = BaiduAI()
while True: au = media.waitAudio() if au: result = baiduAi.speech2text(au, lang=’zh’) print(“识别结果:”, result)
**错误码**<br />程序执行可能会由于一些错误异常中断程序,语音合成相关的错误码可见下表<br />https://ai.baidu.com/ai-doc/SPEECH/pkgw0bw1p
---
<a name="atPGD"></a>
## 语音合成
将文本转化为对应的语音,可选多种人声
**API**<br />`baiduAi.text2speech(text, per=0 [,spd=5,vol=5,pit5=5])`
| **参数** | **说明** | **详情** |
| --- | --- | --- |
| text | 填入为需要语音合成的内容 | 支持中英文> 合成的文本,使用UTF-8编码,请注意文本长度必须小于1024字节
|
| per | 设置不同的朗读声线 | <br />- 度小美=0(默认)<br />- 度小宇=1<br />- 度逍遥(基础)=3<br />- 度丫丫=4<br /> |
| spd | 语速 | 取值0-9,默认为5中语速 |
| vol | 音量 | 取值0-15,默认为5中音量 |
| pit | 音调 | 取值0-9,默认为5中语调 |
**示例**<br />运行程序后,通过在中断输入要朗读的内容,回车后即可
```python
import time
from kittenai import *
from kittenmedia import *
media = KittenMedia()
media.start()
baiduAi = BaiduAI()
while True:
a = input("请输入语句:")
content = baiduAi.text2speech(a)
# content = baiduAi.text2speech(a, a,per=0,spd=9,vol=15,pit=9) # 也可以修改默认参数达到不一样的语调等效果
media.sendAudio(content)
错误码
程序执行可能会由于一些错误异常中断程序,语音合成相关的错误码可见下表
https://ai.baidu.com/ai-doc/SPEECH/Gk4nlz8tc
语音综合示例
这个案例的执行效果为终端打印:这里是小喵科技;左侧项目管理生成名为test.wav的音频文件。从结果出来,我们关注一下这个程序运行的流程如下:
- 首先程序将创建一个名为test.wav的空文件
- 使用百度的语音合成功功能将”这里是小喵科技”转成语音流数据存放到test.wav文件中
- 打开test.wav文件,从中取出里面的语音数据
- 使用百度的语音识别功能将语音数据再转为文字”这里是小喵科技”,并打印在控制台
import sys
import os
from kittenai import *
# 语音合成
baiduAi = BaiduAI()
with open("test.wav", 'wb') as fp:
content = baiduAi.text2speech("这里是小喵科技")
fp.write(content)
# 语音识别
with open("test.wav", 'rb') as fb:
result = baiduAi.speech2text(fb.read())
print("识别结果:", result)
人脸识别
将人脸数据存储到云端,并通过云端匹配人脸实现人脸识别效果
API
- 返回人脸参数
baiduAi.faceDetect(image)
- 添加人脸数据到云端人脸组
baiduAi.faceAddGroup(image, group, name)
- 从云端人脸组搜索人脸名称
baiduAi.faceSearch(image, group)
from kittenai import *
baiduAi = BaiduAI()
# fp = open('face.jpg', 'rb')
# faces = baiduAi.faceDetect(fp.read())
# print(faces)
# fp.close()
# facetok = faces[0]['face_token']
# ret = baiduAi.faceAddGroup(facetok, 'test2', 'person1') # 同一个组只能只能添加一个相同的facetok
# print(ret)
# print('----------------')
fp = open('face.jpg', 'rb')
img = fp.read()
fp.close()
ret = baiduAi.faceSearch(img, 'test2')
print(ret)
图片识别
imgCla= AipImageClassify([APP_ID, API_KEY, SECRET_KEY])
图像识别接口实例化、默认3个参数我们提供
对应API说明地址:https://ai.baidu.com/ai-doc/IMAGERECOGNITION/4k3bcxj1m
- 打开一张本地图片
image = openImage(‘example.jpg’)
- 可需考虑用摄像头拍摄一张图片用于识别
cap = xx.VideoCapture(1)
image = cap.shoot()
百科识别
功能 | 写法 | 备注 |
---|---|---|
百科识别 | re = imgCla.generalDetect(image) | 直接识别本地图片 |
还需检测如下
import sys
import os
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
import pytest
# 以上为测试用例初始化,在板子上跑不需要加
from kittenai import *
baiduAi = BaiduAI()
fp = open('bus.png', 'rb')
img = fp.read()
fp.close()
ret = baiduAi.recognizeItem(img)
print(ret)
ret = baiduAi.recognizeItem(img, regType='car')
print(ret)
OCR
ocr= AipOcr([APP_ID, API_KEY, SECRET_KEY])
OCR接口实例化、默认3个参数我们提供
对应API说明地址:https://ai.baidu.com/ai-doc/OCR/7kibizyfm
- 打开一张本地图片
image = openImage(‘example.jpg’)
- 可需考虑用摄像头拍摄一张图片用于识别
cap = xx.VideoCapture(1)
image = cap.shoot()
通用文字识别
功能 | 写法 | 备注 |
---|---|---|
运行识别 | re= ocr.animalDetect(image) | 识别文字 |
还需检测如下
import sys
import os
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
import pytest
# 以上为测试用例初始化,在板子上跑不需要加
from kittenai import *
baiduAi = BaiduAI()
fp = open('print.jpg', 'rb')
ret = baiduAi.ocrRecognize(fp.read())
print(ret)
fp.close()
写春联
import sys
import os
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
import pytest
# 以上为测试用例初始化,在板子上跑不需要加
from kittenai import *
baiduAi = BaiduAI()
print(baiduAi.writecunlian("太阳"))
print(baiduAi.writepoem("月亮"))
对话机器人
import sys
import os
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
import pytest
# 以上为测试用例初始化,在板子上跑不需要加
from kittenai import *
baiduAi = BaiduAI()
r = baiduAi.talk('你好呀~')
print("机器人说:", r)
while True:
a = input("你说:")
r = baiduAi.talk(a)
print("机器人说:", r)