当前位置: 首页 > news >正文

【python实用小脚本系列】用Python打造你的专属智能语音助手

用Python打造你的专属智能语音助手

在科技飞速发展的今天,语音助手已经成为了我们生活中的“小帮手”。无论是苹果的Siri,还是亚马逊的Alexa,它们都能通过语音指令帮我们完成各种任务。今天,我来给大家分享一个用Python打造的简单语音助手项目,它不仅能听懂你的话,还能帮你播放新闻、执行命令,甚至更多!听起来是不是很神奇?别急,接下来我将带你一步步了解它的奥秘。

核心代码解析

这个项目由三个主要部分组成:语音识别、语音合成和新闻播放。我们先来看看每个部分的核心代码。

1. 语音合成(mySpeaker.py

# 根据操作系统选择合适的语音合成库
if platform.system() == "Windows":import pyttsx3try:engine = pyttsx3.init()  # 初始化语音引擎except ImportError:passexcept RuntimeError:passvoices = engine.getProperty('voices')  # 获取语音库engine.setProperty('voice', voices[1].id)  # 设置语音为女性声音engine.setProperty('rate', 150)  # 设置语速engine.setProperty('volume', 1.2)  # 设置音量def print_say(txt):print(txt)  # 打印文本engine.say(txt)  # 语音合成engine.runAndWait()  # 等待语音播放完成

这段代码根据操作系统选择合适的语音合成库。在Windows系统中,使用pyttsx3库来实现语音合成。它会初始化语音引擎,设置语音为女性声音,并调整语速和音量。

2. 语音识别(voice_to_text.py

import speech_recognition as srspeech = sr.Recognizer()def voice_to_text():voice_input = ""with sr.Microphone() as source:  # 使用麦克风作为音频源speech.adjust_for_ambient_noise(source)  # 调整环境噪音try:audio = speech.listen(source)  # 监听音频voice_input = speech.recognize_google(audio)  # 使用Google语音识别except sr.UnknownValueError:passexcept sr.RequestError:passexcept sr.WaitTimeoutError:passreturn voice_input

这段代码使用speech_recognition库来实现语音识别。它会监听麦克风的音频输入,并通过Google语音识别API将音频转换为文本。

3. 新闻播放(read_npr_news.py

from io import BytesIO
import requests
import bs4
from pygame import mixer
from mySpeaker import print_saydef news_brief():url = 'https://www.npr.org/podcasts/500005/npr-news-now'  # NPR新闻的网址response = requests.get(url)  # 获取网页内容soup = bs4.BeautifulSoup(response.text, 'html.parser')  # 解析网页casts = soup.findAll('a', {'class': 'audio-module-listen'})  # 查找音频链接cast = casts[0]['href']mp3 = cast.find("?")mymp3 = cast[0:mp3]  # 获取MP3文件的链接mymp3 = requests.get(mymp3)  # 下载MP3文件voice = BytesIO()voice.write(mymp3.content)voice.seek(0)mixer.init()  # 初始化pygame混音器mixer.music.load(voice)  # 加载音频mixer.music.play()  # 播放音频

这段代码实现了新闻播放功能。它通过爬取NPR新闻网站的音频链接,下载MP3文件,并使用pygame库播放音频。

更复杂的应用场景

场景一:智能家居控制

我们可以扩展这个项目,让它控制智能家居设备。例如,你可以通过语音指令打开或关闭灯光、调节温度等。

import requestsdef control_smart_home(command):if "turn on the light" in command:requests.get("http://your-smart-home-api/turn_on_light")print_say("Light turned on.")elif "turn off the light" in command:requests.get("http://your-smart-home-api/turn_off_light")print_say("Light turned off.")

这个函数会根据语音指令控制智能家居设备。你可以通过调用智能家居API来实现具体的控制逻辑。

场景二:语音备忘录

我们还可以扩展这个项目,让它记录语音备忘录。你可以通过语音指令记录任务或提醒事项,并将它们保存到文件中。

def record_memo(memo):with open("memo.txt", "a") as f:f.write(memo + "\n")print_say("Memo recorded.")

这个函数会将语音指令记录到一个文本文件中。你可以随时查看这些备忘录。

总结

通过今天的分享,你是不是觉得用Python打造一个简单的语音助手其实并不难?这个项目虽然简单,但却非常实用。你可以根据自己的需求进行扩展,让它在更多的场景中发挥作用。无论是控制智能家居设备,还是记录语音备忘录,它都能帮你实现。需要完整的源码,请在评论区留言,或私信我。

http://www.xdnf.cn/news/64045.html

相关文章:

  • 【技术派后端篇】技术派中基于 Redis 的缓存实践
  • 快手砍掉本地生活的门槛
  • Redis的使用总结
  • 电脑硬盘常见的几种接口类型
  • 方案精读:2024 华为数字政府智慧政务一网统管解决方案【附全文阅读】
  • Flowable7.x学习笔记(十)分页查询已部署 BPMN XML 流程
  • 博奥龙全系方案护航科研命脉
  • 让数据应用更简单:Streamlit与Gradio的比较与联系
  • AI音乐解决方案:1分钟可切换suno、udio、luno、kuka等多种模型,suno风控秒切换 | AI Music API
  • 基于瑞芯微RK3576国产ARM八核2.2GHz A72 工业评估板——ROS2系统使用说明
  • IDEA/WebStorm中Git操作缓慢的解决方案
  • OSPF --- LSA
  • elasticsearch7.15节点磁盘空间满了迁移数据到新磁盘
  • LangChain与图数据库Neo4j LLMGraphTransformer融合:医疗辅助诊断、金融风控领域垂直领域、法律咨询场景问答系统的技术实践
  • WebRTC通信技术EasyRTC音视频实时通话安全巡检搭建低延迟、高可靠的智能巡检新体系
  • docker学习笔记2-最佳实践
  • 腾讯一面-软件开发实习-PC客户端开发方向
  • 龙虎榜——20250421
  • 【前端样式】用 aspect-ratio 实现等比容器:视频封面与图片占位的终极解决方案
  • 基于超启发鲸鱼优化算法的混合神经网络多输入单输出回归预测模型 HHWOA-CNN-LSTM-Attention
  • 计算机组成与体系结构:内存层次结构(Memory Hierarchy)
  • # 04_Elastic Stack 从入门到实践(四)--3
  • 项目班——0419——functionbind生产消费(未完成)
  • 七、专家系统
  • C#进阶学习(九)委托的介绍
  • 前端技术未来的发展趋势分析
  • LLM大模型中的基础数学工具—— 约束优化
  • FPGA为什么快?——从架构到实现的深度解析
  • 第七届传智杯全国IT技能大赛程序设计赛道 国赛(总决赛)—— (B组)题解
  • SQL问题分析与诊断(8)——分析方法2