语音模块/Voice¶
此模块可以进行语音识别和语音播报等操作。
朗读…¶
Voice.
speak
(text, block=False)¶ 模块正在朗读时若收到新的朗读指令会打断当前朗读内容,然后朗读新内容
参数:
- text (str) – 朗读内容,可以是字符串,整数,小数
- block (bool) –
阻塞参数:
False: 不阻塞True: 阻塞Examples
# 朗读各种不同内容 from wonderbits import Voice import time voice1 = Voice() # 朗读字符串 '你好,豌豆拼',朗读时不阻塞 voice1.speak('你好,豌豆拼') time.sleep(1) # 由于前一条朗读内容还未朗读完,此时会打断正在朗读的内容 # 朗读浮点型数字 -3.14,朗读时阻塞 voice1.speak(-3.14,True) # 在第2行第1列显示变量 temp = 10 temp = temp + 3 voice1.speak(temp, True)
添加识别命令¶
Voice.
add_command
(command)¶ 添加语音识别命令,命令需要使用拼音字符串表示
参数: command (str) – 识别命令,只可以是拼音字符串 Examples
# 设置语音识别命令,显示识别结果 from wonderbits import Voice, Display import time voice1 = Voice() display1 = Display() # 添加语音识别命令 voice1.add_command('ni hao') voice1.add_command('ce shi') voice1.add_command('kai shi') voice1.add_command('ting zhi') # 显示识别的命令 while True: display1.print(1, 1, voice1.get_result())
获取识别命令¶
Voice.
get_result
()¶
返回: 识别命令对应的拼音字符串 返回类型: str Examples
未提供。可参考 add_command 的使用案例
设置朗读音量¶
Voice.
set_volume
(val)¶
参数: val (int) – 音量值:0~100 Examples
# 显示各种不同内容 from wonderbits import Voice import time voice1 = Voice() # 朗读字符串 '你好,豌豆拼' voice1.speak('你好,豌豆拼', True) # 设置朗读音量为100 voice1.set_volume(100) # 朗读字符串 '你好,豌豆拼' voice1.speak('你好,豌豆拼', True)
清空已经识别的命令¶
Voice.
clear_result
()¶Examples
未提供。可参考 when_recognized 的使用案例
获取朗读状态¶
Voice.
is_playing
()¶
返回: True:正在朗读False:空闲返回类型: bool Examples
# 显示各种不同内容 from wonderbits import Voice, Display import time voice1 = Voice() display1 = Display() # 朗读字符串 '你好,豌豆拼' voice1.speak('你好,豌豆拼') # 显示播放状态 while True: display1.print(1, 1, voice1.is_playing())
当检测到命令¶
Voice.
when_recognized
(command)¶ 当检测到命令时,执行被修饰的函数由于语音识别结果不会自动清空,所以当检测成功后会一直执行被修饰函数可以在被修饰函数中调用clear_result函数
参数: command (str) – 监测到命令为command Examples
from wonderbits import Voice voice1 = Voice() # 添加语音识别命令 voice1.add_command('ni hao') voice1.add_command('ce shi') # 当识别到 '你好' 会不停触发run1函数,不停朗读 '你好' @voice1.when_recognized('ni hao') def run1(val): voice1.speak('你好', True) # 当识别到 '测试' 只会触发有一次run2函数,只会朗读一次 '测试' @voice1.when_recognized('ce shi') def run2(val): voice1.speak('测试', True) # 清空识别结果 voice1.clear_result() while True: pass