人工智能AI功能均需要在有网络的环境下使用!

专属库


在KittenCode1.0.8以上已经集成2个与人工智能相关的库,方便调用

  • kittenai:与人工智能相关的库,如百度语音识别、视觉识别等…
  • kittenmedia:与人工智能的语音视频配套的媒体库,用于调用麦克风和摄像头

AI基础案例


语音合成

核心API

  1. baiduAi.text2speech(text,per=0)
  2. # text:语音合成的内容
  3. # per:设置不同的朗读声线 0-女声 / 2-男声 / 3-男声2 / 4-女童孩

项目流程

  • 项目简介:通过输入中文字符串,自动将文字转化为语音
  • 示例代码 ```python import time from kittenai import from kittenmedia import

media = KittenMedia() media.start()

baiduAi = BaiduAI() while True: a = input(“请输入语句:”) content = baiduAi.text2speech(a) media.sendAudio(content)

  1. - 运行步骤:
  2. 1. 复制代码,点击运行后,界面右侧的媒体窗口就会自动弹出(只要代码涉及到kittenmedia的麦克风、喇叭、摄像头的调用,就会自动弹出)
  3. 1. 在终端输入 => 小喵科技,并按下回车键
  4. 1. 可以听到喇叭播放 **"小喵科技"**
  5. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/1432841/1610521431915-21789b9a-21f6-476e-9d9b-c1fe8596a240.png#crop=0&crop=0&crop=1&crop=1&height=343&id=wuRRs&margin=%5Bobject%20Object%5D&name=image.png&originHeight=552&originWidth=1288&originalType=binary&ratio=1&rotation=0&showTitle=false&size=66743&status=done&style=stroke&title=&width=800)
  6. <a name="J8PKL"></a>
  7. ### 语音识别
  8. <a name="VT70q"></a>
  9. #### 核心API
  10. ```python
  11. baiduAi.speech2text(au)

项目流程

  • 项目简介:通过录入一段语音,将语音识别为文字
  • 示例代码 ```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) print(“识别结果:”, result)

  1. - 运行步骤:点击_** 运行按钮**_,在右侧媒体窗口点击**_ 开始录音_**,对麦克风说话。完毕后,点击 **_停止录音按钮_**,终端就会识别的结果返回来。
  2. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1432972/1658395655612-c5b8ae79-53a0-4a01-a7ef-95ba51166037.png#clientId=uc0e86c82-9216-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=397&id=uf3002ce8&margin=%5Bobject%20Object%5D&name=image.png&originHeight=515&originWidth=1037&originalType=binary&ratio=1&rotation=0&showTitle=false&size=48100&status=done&style=none&taskId=u36d46684-5a9b-4d7c-8d85-ef88f812cc0&title=&width=800)
  3. > 如果迟迟没有返回结果,尝试关闭右侧的多媒体窗口,之后重新运行一次程序
  4. <a name="vHZCW"></a>
  5. ### 图片识别
  6. <a name="WDDIy"></a>
  7. #### 核心API
  8. ```python
  9. baiduAi.recognizeItem(img)
  10. # img为要是别的图片内容(并非图片的名称)

项目流程

  • 项目简介:图片识别可识别生活中常见的物体。以下的图片识别图片为 公交巴士 杯子,下面提供了两张素材用于实验(当然你也可以选择自己的图片)

bus.jpgcup.jpg

  • 示例代码 ```python from kittenai import *

baiduAi = BaiduAI()

fp = open(‘bus.jpg’, ‘rb’) img = fp.read() fp.close()

ret = baiduAi.recognizeItem(img) print(ret)

  1. - 运行步骤:
  2. 1. 将图片素材复制到当前项目文件夹,并刷新项目列表
  3. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1432972/1658396107284-a8b6e359-7113-4141-9bf7-10d1d8b2ff8c.png#clientId=uc0e86c82-9216-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=222&id=u5ea46f43&margin=%5Bobject%20Object%5D&name=image.png&originHeight=382&originWidth=1374&originalType=binary&ratio=1&rotation=0&showTitle=false&size=64065&status=done&style=none&taskId=u465010f6-1097-495a-936c-8321190e71c&title=&width=800)
  4. 2. 运行程序后看到终端显示了AI图片识别返回的内容,基本日常事物识别率在80%以上~
  5. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1432972/1658395999046-e723fd34-a6e7-4b68-8538-27afe59f2a4c.png#clientId=uc0e86c82-9216-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=736&id=vlPIY&margin=%5Bobject%20Object%5D&name=image.png&originHeight=736&originWidth=1384&originalType=binary&ratio=1&rotation=0&showTitle=false&size=71518&status=done&style=none&taskId=u702fda87-2f4d-4778-b595-9e549bd7df5&title=&width=1384)
  6. <a name="S5YLc"></a>
  7. ### 通用文字识别
  8. <a name="zCIGF"></a>
  9. #### 核心API
  10. ```python
  11. baiduAi.ocrRecognize(pic)

项目流程

  • 项目简介:通用文字识别一般指印刷字体(非手写)。首先准备一张带有文字的图片,并将图片预先放入项目文件夹中

cq.png

  • 示例代码 ```python from kittenai import *

baiduAi = BaiduAI()

fp = open(‘cq.png’, ‘rb’) ret = baiduAi.ocrRecognize(fp.read()) print(ret) fp.close()

  1. - 运行步骤:
  2. 1. 将图片素材复制到当前项目文件夹,并刷新项目列表
  3. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1432972/1658396107284-a8b6e359-7113-4141-9bf7-10d1d8b2ff8c.png#clientId=uc0e86c82-9216-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=222&id=GOgvZ&margin=%5Bobject%20Object%5D&name=image.png&originHeight=382&originWidth=1374&originalType=binary&ratio=1&rotation=0&showTitle=false&size=64065&status=done&style=none&taskId=u465010f6-1097-495a-936c-8321190e71c&title=&width=800)
  4. 2. 运行程序后看到终端显示了AI文字识别返回的内容
  5. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1432972/1658396437741-03e51623-9f5a-43d7-a096-803334cbc7b2.png#clientId=uc0e86c82-9216-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=425&id=u35721cb5&margin=%5Bobject%20Object%5D&name=image.png&originHeight=736&originWidth=1384&originalType=binary&ratio=1&rotation=0&showTitle=false&size=63937&status=done&style=none&taskId=uce109548-01f4-4a0c-9f79-485e439239a&title=&width=800)
  6. <a name="WeImx"></a>
  7. ### 写春联
  8. <a name="D2cbE"></a>
  9. #### 核心API
  10. ```python
  11. baiduAi.writechunlian(text)
  12. # text:与春联有关的词汇

项目流程

  • 项目简介:紧紧是根据提供的词汇,由AI在各种典籍中搜索相近意义的春联横批,上联与下联
  • 示例代码

    1. from kittenai import *
    2. baiduAi = BaiduAI()
    3. print(baiduAi.writechunlian("日月"))
  • 运行效果

image.png

智能对话机器人

核心API

  1. baiduAi.talk(text)
  2. # text:你想闲聊的话,AI会返回它的回复

项目流程

  • 项目简介:闲聊的套路其实非常一致,机器人没有那么聪明,没法理解人类的情绪和口语化的词汇,尽可能问问它比如天气、某些事实情况的话题吧
  • 示例代码 ```python from kittenai import *

baiduAi = BaiduAI()

r = baiduAi.talk(‘你好呀~’) print(“机器人说:”, r)

while True: a = input(“你说:”) r = baiduAi.talk(a) print(“机器人说:”, r)

  1. - 运行效果
  2. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1432972/1658397648590-a0c692bc-6112-4196-9b7c-b564e4672a53.png#clientId=uc0e86c82-9216-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=736&id=u7925ab7c&margin=%5Bobject%20Object%5D&name=image.png&originHeight=736&originWidth=1384&originalType=binary&ratio=1&rotation=0&showTitle=false&size=74675&status=done&style=none&taskId=u0d4363de-a8ae-4ca5-95dd-89f0a49ff59&title=&width=1384)
  3. <a name="xxtv1"></a>
  4. ### 人脸识别
  5. <a name="LxYzS"></a>
  6. #### 核心API
  7. ```python
  8. # 人脸检测
  9. baiduAi.faceDetect(img) # img为人脸素材的内容,并非名称
  10. # 将人脸添加到数据库(之后方可用于识别)
  11. baiduAi.faceAddGroup(facetoken, faceGroup, faceName)
  12. # facetoken:人脸识别后返回的人脸token内容
  13. # faceGroup:要添加的人脸组(全网通用,不可重复)
  14. # faceName:为人脸命名
  15. # 用于从数据库中搜索人脸(既真正的人脸识别过程)
  16. baiduAi.faceSearch(img, faceGroup)
  17. # 参数与上方介绍的一致

项目流程

  • 项目简介:人脸识别通过特征来辨别人脸,前提是数据库中有对该人脸的素材进行过命名, 以下提供两张照片作为项目实验素材

林俊杰.png周杰伦.png

  • 运行步骤:
    1. 先将素材放到项目列表下
    2. 运行以下的示例程序,录入周杰伦和林俊杰的的照片素材,并分别为素材人脸起名为 JayChou、JJ

image.png

  1. from kittenai import *
  2. baiduAi = BaiduAI()
  3. # 打开周杰伦的照片并让baiduAI人脸识别分析照片特征
  4. fp = open('周杰伦.png', 'rb')
  5. faces1 = baiduAi.faceDetect(fp.read())
  6. print(faces1)
  7. fp.close()
  8. # 打开林俊杰的照片并让baiduAI人脸识别分析照片特征
  9. fp = open('林俊杰.png', 'rb')
  10. faces2 = baiduAi.faceDetect(fp.read())
  11. print(faces2)
  12. fp.close()
  13. # 根据分析后的特征数据为该人脸添加名称和组别
  14. facetoken = faces1[0]['face_token']
  15. ret = baiduAi.faceAddGroup(facetoken, 'facegroup33', 'JayChou')
  16. # 根据分析后的特征数据为该人脸添加名称和组别
  17. facetoken = faces2[0]['face_token']
  18. ret = baiduAi.faceAddGroup(facetoken, 'facegroup33', 'JJ')
  1. 运行以下的人脸识别程序用于辨别人素材人脸名称,可以看到实例中 周杰伦.png 的识别结果为我们命名的JayChou。识别成功~ ```python from kittenai import *

baiduAi = BaiduAI()

识别袁隆平的照片

fp = open(‘周杰伦.png’, ‘rb’) img=fp.read() fp.close() ret=baiduAi.faceSearch(img,’facegroup33’) print(ret)

  1. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1432972/1658399610411-cd4022f2-76a2-4d42-bd87-636f655c55da.png#clientId=u90cdd963-1b94-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=784&id=u29843a50&margin=%5Bobject%20Object%5D&name=image.png&originHeight=784&originWidth=1384&originalType=binary&ratio=1&rotation=0&showTitle=false&size=91395&status=done&style=none&taskId=ue9193571-3a99-443b-be11-fd5a58f808b&title=&width=1384)
  2. <a name="E8sy5"></a>
  3. ## AI进阶案例
  4. ---
  5. <a name="SHIDi"></a>
  6. ### 语音识别&闲聊
  7. ```python
  8. import time
  9. from kittenai import *
  10. from kittenmedia import *
  11. media = KittenMedia()
  12. media.start()
  13. baiduAi = BaiduAI()
  14. while True:
  15. au = media.waitAudio()
  16. if au:
  17. result = baiduAi.speech2text(au)
  18. print("你说的话是:", result)
  19. r = baiduAi.talk(result)
  20. print("机器人回答:", r)

即时人脸识别

  1. 人脸检测,获取facetoken(注意自行更改faceGroup和faceName) ```python import time from kittenai import from kittenmedia import

media = KittenMedia() media.start()

baiduAi = BaiduAI()

while True: image = media.waitImage() if image: faces = baiduAi.faceDetect(image) print(faces) facetoken = faces[0][‘face_token’]

  1. # 已经添加过后,这一行可以注释掉
  2. ret = baiduAi.faceAddGroup(facetoken, 'facegroup33', 'h')
  3. try:
  4. ret=baiduAi.faceSearch(image,'facegroup33')
  5. print(ret)
  6. except:
  7. pass
  8. time.sleep(0.5)

```