上一篇[用Python写一个简单的脸部识别项目(1)|opencv 截取脸部图片]介绍了怎么用opencv 截取图片,我想实现的功能是识别出人脸后,按人名对其问好。
这就需要能够将文字转化声音的API,查到python的库里面有谷歌的API
基本思路
- 写一个函数接收文字信息,调用谷歌API就能说话
- 谷歌API能生成MP3文件,用pygame的包就能播放
代码实现1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32# -*- coding: utf-8 -*-
from gtts import gTTS
import pygame
class jatts():
def __init__(self,words='こんにちわ',filename='temp.mp3'):
self.filename = filename
self.words=words
def speak(self):
#调用谷歌api将文字转成MP3
#https://cloud.google.com/speech/docs/languages?hl=ja 查语言的代码
#默认英文, 日文ja, 中文cmn-Hans-CN ,台湾腔 cmn-Hant-TW,粤语yue-Hant-HK
tts = gTTS(text=self.words, lang='ja')
tts.save(self.filename)
# mixer初始化
pygame.mixer.init()
# 读取MP3文件并播放
with open(self.filename, 'rb') as file_object:
pygame.mixer.music.load(file_object)
# 播放1次,-1是循环播放
pygame.mixer.music.play(1)
# 等待播放结束
while pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)
pygame.mixer.music.stop()
pygame.mixer.quit()
#生成实例
speaker = jatts("aaaa")
speaker.speak()