语音助手

语音助手

前言:相信大家都听过语音助手,虽然比较鸡肋,但确实有一部分人用过,比如苹果的Siri,微软的小娜。本次要做的业务也是跟这个功能类似,通过语音操作自己的软件中的部分功能。

1.项目简介

先讲一下项目的大体框架,这是一个基于electron实现的pc端应用程序,前端技术栈主要是node+vue+electron。一开始,这个语音助手功能是使用electron渲染进程实现的一个窗口,当时在这个窗口中处理语音交互,以及用户语音动作的执行。后来,考虑到助手功能以后会对接其他业务,所以选择将助手功能独立出来,改用c++实现。由于软件大部分功能基于electron实现的,所以用户指令的解析和处理还是放在了electron的主进程中。根据业务需要,功能做出如下调整:c++端负责助手UI界面、用户语音交互、服务器交互;js端负责语音指令解析处理和执行。js端代码主要放在electron的主进程中,之前的渲染进程窗口就没用了。

该项目进程间通信使用较多,大体上有四类,主进程和渲染进程,主进程和非electron进程,渲染进程和非electron进程 ,不同渲染进程之间。由于内容可能过多,打算另写文章讲解,不过最终都是采用事件监听和事件触发的方式实现。

我就是在这次改版中,分到这个项目的js端研发工作。刚接手的时候,对之前的业务没有了解,加上工期较紧。当时的想法就是,实现就行,没有考虑如何设计更具拓展性,代码文件如何划分更易维护。这些前期埋的雷,在经过几个版本的迭代过程后,逐渐暴露出来。当时光一个指令解析函数代码都几百,业务的代码文件上千行,而

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现语音唤醒需要用到语音识别和语音分析技术,可以借助第三方库进行实现。以下是一个简单的Python语音助手的代码示例: ```python import speech_recognition as sr import pyttsx3 import time # 定义语音识别和语音合成引擎 r = sr.Recognizer() engine = pyttsx3.init() # 定义唤醒词 WAKEUP_WORD = "你好小宝贝" # 定义响应函数 def respond(text): print(text) engine.say(text) engine.runAndWait() # 启动语音助手 with sr.Microphone() as source: while True: # 监听声音输入 audio = r.listen(source) try: # 识别语音 text = r.recognize_google(audio, language='zh-CN') # 判断是否唤醒 if text == WAKEUP_WORD: respond("我在呢,请问有什么可以帮助您的?") # 进入命令输入模式 while True: # 监听声音输入 audio = r.listen(source) try: # 识别命令 text = r.recognize_google(audio, language='zh-CN') respond("我听懂了,正在处理...") # 处理命令 # 这里可以添加自己的命令处理逻辑 time.sleep(3) respond("处理完成") except sr.UnknownValueError: respond("抱歉,我没有听清,请再说一遍") else: print("未唤醒") except sr.UnknownValueError: print("无法识别") ``` 这段代码使用了Python的`speech_recognition`和`pyttsx3`库,实现了一个简单的语音助手。它可以监听声音输入,判断是否唤醒,如果唤醒则进入命令输入模式,处理用户的命令。你可以根据自己的需求修改代码,添加更多的命令和功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值