语音识别(一)

任务

使用SAPI做文本到语音的转换

准备

pip install pywin32

或者手动安装,网址:https://sourceforge.net/projects/pywin32/files/
安装文件之后切换到文件目录下,离线安装即可。

示例代码

win32com.client是系统的客户端包,win32.com用法详见:网址

# 利用pywin32模块,来实现微软的语音接口调用
import win32com.client
# 微软这个服务器
speaker = win32com.client.Dispatch("SAPI.SpVoice")
speaker.Speak("大家好")
# 释放对象内存
del speaker

运行之后即可听到生硬的问候语“大家好”,而且如果换成其他长难句式,语速又是不可控的。

蜂鸣器

import win32com.client
import winsound
speak = win32com.client.Dispatch('SAPI.SPVOICE')
winsound.Beep(2015, 1000) #第二个参数是500毫秒

音模块:winsound提供了可以由Windows平台提供的基本声音播放。
winsound.Beep(frequency, duration)用法:

  • 第一个参数是频率,频率越大,音调越尖,频率必须是大于37、小于32767的正整数,可以是变化的值

  • 第二个数字是声音持续时间,单位是毫秒。

  • 如果系统无法使扬声器发出哔声,则会引发RuntimeError。

# 播放一段音调高低起伏的Beep:
import winsound,math
for i in range(100):
    winsound.Beep(int(600*math.cos(i/3.14)+700),100)

也可以播放音频,如mp3或者wav格式的音频文件。

from playsound import playsound
playsound(r'C:\Users\Administrator\PycharmProjects\voice_detect\a.mp3')

运行出错,报错:在这里插入图片描述
我们尝试用其他方法实现音频播放。

import pygame,sys

# 初始化pygame和内置播放器
pygame.init()
pygame.mixer.init()
# 创建pygame界面
screen = pygame.display.set_mode([500,365])
m = 'C:\\Users\\Administrator\\PycharmProjects\\voice_detect\\a.mp3'
# 加载音乐
pygame.mixer.music.load(m)
# 播放音乐
pygame.mixer.music.play()
# 关闭音乐,只要关闭shell
  • winsound.MessageBeep([type=MB_OK])
    从操作系统平台API调用底层MessageBeep()函数。 这会播放注册表中指定的声音。 type参数指定要播放的声音; 可能的值为-1,MB_ICONASTERISKMB_ICONEXCLAMATIONMB_ICONHANDMB_ICONQUESTIONMB_OK,如下所述。 值-1产生“简单的哔声”; 如果声音不能播放,这是最后的回退。

  • winsound.SND_ALIAS与winsound.PlaySound一起使用
    如果注册表没有包含这样的名称,播放系统缺省的声音,如果没有缺省的声音被注册,挂起 RuntimeError。

  • winsound.SND_LOOP
    重复地播放声音。SND_ASYNC标识也必须被用来避免堵塞。不能用 SND_MEMORY。

  • winsound.MB_ICONEXCLAMATION
    播放 SystemExclamation 声音。

import winsound

winsound.PlaySound("SystemExit", winsound.SND_ALIAS)
winsound.PlaySound("SystemAsterisk", winsound.SND_ALIAS)
winsound.MessageBeep(winsound.MB_ICONEXCLAMATION)

反馈的声音是PC系统自带的声音“梆~~梆”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Siri_only

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值