任务

使用speech模块实现语音识别

准备

在win10平台上使用pyhton3编写语音识别程序需要用到speech模块,speech模块支持的主要功能有:

  • 文本合成语音,将键盘输入的文本信息转换为语音信号方式输出;
  • 语音识别,将输入的语音信号转为文本等功能
  1. 安装pywin32,pywin32即Python for Windows
    Extensions,提供了Pyhton访问和调用Windows底层功能函数的接口,pywin32包括了win32api、win32com、win32gui、win32process等模块,点击下载
  2. 下载speech模块,用pip install speech命令。

报错修改:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\python2018\PyCharm 2018.3.3\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\Administrator\AppData\Roaming\Python\Python37\site-packages\speech.py", line 157
    print prompt

将python2用法print prompt修改为python3的print(prompt)

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\python2018\PyCharm 2018.3.3\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\Users\Administrator\AppData\Roaming\Python\Python37\site-packages\speech.py", line 59, in <module>
    import thread
  File "C:\python2018\PyCharm 2018.3.3\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'thread'

将thread修改为threading,因为python版本的不兼容,用法可能不相同。
之后就可以使用speech模块啦。

示例代码

实现英语听写单词的程序。

import speech
import time
import csv

data = []  # 暂存csv 文件每行数据
Interval_Time = 4  # 两次读词的间隔时间
LOOP_NUM = 8  # 循环基数
Think_Time = 15  # 回顾等待时间(s)

csv_file = open('test.csv', encoding='utf-8')
csv_reader_lines = csv.reader(csv_file)
print(csv_reader_lines)

num = 0
for one_line in csv_reader_lines:
    data.append(one_line)
    num = num + 1
    # print(one_line)
i = 0
while i < num:
    print(i + 1, data[i][0])
    speech.say(i + 1)
    speech.say(data[i][0])
    time.sleep(Interval_Time)
    speech.say(data[i][0])
    if 0 == (i + 1) % LOOP_NUM:
        print("第", int(i / LOOP_NUM) + 1, "组词汇:")
        for j in range(i - (LOOP_NUM - 1), i + 1):
            print(data[j][0], data[j][1])
            speech.say(data[j][0])
            speech.say(data[j][1])
        time.sleep(Think_Time)
    i = i + 1

注:test.csv文件地址:https://github.com/zhouie/vir_speaker/blob/master/res/test.csv

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐