从零开始:使用FireRedASR Pro和Python构建你的第一个语音助手 📅 发布时间:2026/7/7 6:55:50 👁️ 浏览次数: 从零开始使用FireRedASR Pro和Python构建你的第一个语音助手想不想自己动手做一个能听你说话、帮你做事还能开口回答的智能小助手听起来很酷但会不会很难别担心今天我们就用Python和一些现成的工具从零开始一步步搭建一个属于你自己的桌面语音助手。整个过程就像搭积木你不需要是编程高手只要跟着做一两个小时就能看到成果。我们会让这个小助手具备几个核心能力它能通过麦克风听你说话把你说的话转成文字理解一些简单的指令比如“打开百度”然后用语音回答你。我们会用到两个关键工具一个是FireRedASR Pro负责把声音变成文字另一个是Python里的一些库负责处理指令和把文字变回声音。准备好了吗让我们开始这场有趣的创造之旅吧。1. 动手前的准备工作在开始敲代码之前我们需要先把“工作台”搭建好。这就像做菜前要备好锅碗瓢盆和食材一样。1.1 安装Python如果你电脑上还没有Python需要先去安装它。这是我们的“主厨工具”。访问Python官网下载适合你电脑系统Windows、macOS或Linux的最新版本安装程序。运行安装程序。非常重要的一步在安装界面请务必勾选“Add Python to PATH”这个选项。这能让你在电脑的任何地方都能方便地使用Python。安装完成后打开你的命令行工具Windows上是“命令提示符”或“PowerShell”macOS/Linux上是“终端”。输入python --version并回车。如果看到类似Python 3.x.x的版本号显示出来恭喜你安装成功了1.2 安装必要的“食材”Python库我们需要几个Python库来帮忙。打开命令行逐个输入下面的命令并回车执行pip install requests pip install pyaudio pip install pyttsx3 pip install SpeechRecognition简单解释一下它们都是干什么的requests用来和FireRedASR Pro的服务器“打电话”发送音频数据并接收识别结果。pyaudio用来操作你的麦克风录制声音。pyttsx3一个文本转语音TTS引擎能让我们的助手“开口说话”。SpeechRecognition一个非常流行的语音识别库它简化了我们处理音频和调用API的过程。虽然我们主要用FireRedASR Pro但这个库能帮我们轻松录制音频。1.3 获取FireRedASR Pro的“通行证”FireRedASR Pro是一个强大的语音识别服务。为了使用它你需要一个API Key就像一把打开它家大门的钥匙。你需要访问提供FireRedASR Pro服务的平台例如一些AI模型服务平台。按照平台的指引注册账号并创建一个应用或项目。在该应用或项目的设置中你应该能找到你的API Key。把它复制下来妥善保存我们稍后会用到。一切准备就绪接下来我们进入最有趣的环节——编写助手的“大脑”。2. 编写语音助手的核心代码我们将把代码分成几个功能模块来写这样逻辑更清晰也方便你理解每一部分是干什么的。2.1 让助手“听见”我们说话首先我们要写一个函数用来录制你说的话。import speech_recognition as sr import pyaudio def listen_microphone(timeout5, phrase_time_limit10): 使用麦克风录制音频并返回识别的文本。 :param timeout: 等待用户开始说话的超时时间秒 :param phrase_time_limit: 单次录音的最大时长秒 :return: 识别出的文本字符串如果失败返回None recognizer sr.Recognizer() microphone sr.Microphone() with microphone as source: print(正在调整环境噪音请保持安静...) recognizer.adjust_for_ambient_noise(source, duration1) print(请开始说话...) try: # 监听麦克风获取音频数据 audio recognizer.listen(source, timeouttimeout, phrase_time_limitphrase_time_limit) print(录音结束正在识别...) except sr.WaitTimeoutError: print(抱歉我没有听到任何声音。) return None except Exception as e: print(f录音时出现错误: {e}) return None # 注意这里我们先获取音频数据下一步再传给FireRedASR Pro return audio这个函数做了几件事初始化识别器和麦克风、消除一点环境噪音、然后开始录音。最后它返回一个音频数据对象而不是立刻识别。因为我们要把这个音频送给更专业的FireRedASR Pro去处理。2.2 调用FireRedASR Pro“翻译”语音现在我们写一个函数把上一步录好的音频数据发送给FireRedASR Pro让它告诉我们这段音频说的是什么文字。import requests def recognize_with_fireredasr(audio_data, api_key, api_urlhttps://api.example.com/v1/asr): 将音频数据发送到FireRedASR Pro API进行识别。 :param audio_data: 上一步获取的音频数据speech_recognition的AudioData对象 :param api_key: 你的FireRedASR Pro API Key :param api_url: FireRedASR Pro API的地址请替换为实际地址 :return: 识别出的文本字符串 # 将AudioData对象转换为WAV格式的字节数据 wav_data audio_data.get_wav_data() # 准备请求头通常API Key放在这里 headers { Authorization: fBearer {api_key}, Content-Type: audio/wav # 根据API要求设置内容类型 } try: # 发送POST请求上传音频数据 response requests.post(api_url, headersheaders, datawav_data) response.raise_for_status() # 如果请求失败状态码不是200抛出异常 # 解析返回的JSON数据提取识别文本 # 注意这里需要根据FireRedASR Pro API的实际返回格式进行调整 result_json response.json() # 假设返回格式是 {text: 识别出的句子} recognized_text result_json.get(text, ).strip() if recognized_text: print(f识别结果: {recognized_text}) return recognized_text else: print(识别成功但返回文本为空。) return except requests.exceptions.RequestException as e: print(f请求API时出错: {e}) return None except Exception as e: print(f处理API响应时出错: {e}) return None重要提示你需要将api_url替换成你使用的FireRedASR Pro服务的真实API地址并且根据其官方文档调整headers和解析result_json的代码。不同的服务提供商返回的数据格式可能略有不同。2.3 让助手“理解”并执行命令助手听到文字后需要理解它并做出反应。我们这里先实现几个简单的命令作为例子。import webbrowser import os def process_command(text): 处理识别出的文本执行相应的命令。 :param text: 识别出的文本 :return: 需要语音回复的文本 if not text: return 我没有听清请再说一遍。 text_lower text.lower() # 命令1打开网站 if 打开百度 in text_lower: webbrowser.open(https://www.baidu.com) return 正在为您打开百度。 elif 打开谷歌 in text_lower: webbrowser.open(https://www.google.com) return 正在为您打开谷歌。 # 命令2查询天气这里用模拟回复真实情况需要调用天气API elif 天气 in text_lower: # 这里可以集成真正的天气API例如和风天气、OpenWeatherMap等 # 为了简单演示我们返回一个模拟回复 return 今天天气晴朗气温25度非常适合出门。 # 命令3打招呼 elif any(greet in text_lower for greet in [你好, 嗨, 早上好]): return 你好我是你的语音助手有什么可以帮您 # 命令4退出程序 elif 退出 in text_lower or 关闭 in text_lower: return 再见 # 注意真正的退出逻辑需要在主循环里处理 # 默认回复如果没匹配到任何命令 else: return f您说的是{text}。我暂时还不会执行这个命令正在努力学习中。这个函数就是助手的“决策中心”。它检查你说话的内容是否包含某些关键词然后执行对应的操作。你可以很容易地在这里添加更多有趣的命令比如“播放音乐”、“讲个笑话”等。2.4 让助手“开口说话”最后我们需要一个函数把要回复的文字用语音播报出来。import pyttsx3 def speak_text(text): 使用文本转语音引擎朗读文本。 :param text: 需要朗读的文本 if not text: return try: engine pyttsx3.init() # 可以设置语速默认200 engine.setProperty(rate, 180) # 可以设置音量0.0到1.0 engine.setProperty(volume, 0.9) print(f助手回复: {text}) engine.say(text) engine.runAndWait() except Exception as e: print(f语音合成出错: {e})pyttsx3使用的是你电脑系统自带的语音引擎在Windows上是SAPI5在macOS上是NSSpeechSynthesizer在Linux上是eSpeak。所以开箱即用但声音可能比较机械。如果你想用更自然的声音可以探索其他在线TTS服务。3. 把所有零件组装起来主程序现在我们把上面所有的功能模块像拼图一样组合起来形成一个完整的、可以循环工作的助手程序。def main(): 语音助手主程序 # 请在这里填入你从FireRedASR Pro平台获取的真实API Key FIREREDASR_API_KEY YOUR_ACTUAL_API_KEY_HERE # 请替换为真实的API端点地址 FIREREDASR_API_URL https://your-fireredasr-api-endpoint.com/v1/recognize print( 桌面语音助手已启动 ) print(说‘退出’或‘关闭’可以结束程序。) print(- * 30) while True: # 1. 监听并录音 audio listen_microphone() if audio is None: continue # 没听到声音继续下一次监听 # 2. 调用FireRedASR Pro识别语音 recognized_text recognize_with_fireredasr(audio, FIREREDASR_API_KEY, FIREREDASR_API_URL) # 如果识别失败或为空则跳过 if recognized_text is None or recognized_text : speak_text(识别失败了请再试一次。) continue # 3. 处理识别出的命令 response_text process_command(recognized_text) # 4. 语音回复 speak_text(response_text) # 5. 检查退出命令 if recognized_text and (退出 in recognized_text or 关闭 in recognized_text): print(正在退出语音助手...) break print( 语音助手已关闭 ) if __name__ __main__: main()这就是我们助手的主循环听 - 识别 - 思考 - 说然后不断重复直到你告诉它“退出”。4. 运行你的第一个语音助手代码写完了让我们来运行它将上面所有代码块按顺序复制到一个新的文件中例如命名为my_voice_assistant.py。最关键的一步找到代码中的FIREREDASR_API_KEY和FIREREDASR_API_URL这两个变量把它们替换成你从FireRedASR Pro服务商那里获得的真实信息。保存文件。打开命令行进入到存放这个Python文件的目录。输入命令python my_voice_assistant.py并回车。如果一切顺利你会看到程序启动并提示“正在调整环境噪音...”。现在试着对着麦克风清晰地说“你好”看看助手会不会回应你再说“打开百度”看看浏览器会不会弹出来5. 可能遇到的问题和小技巧第一次运行很可能会遇到一些小麻烦。别担心这很正常。问题安装pyaudio失败。解决在Windows上可以尝试访问一个Python的非官方扩展包网站下载对应你Python版本和系统位数的PyAudio的.whl文件然后用pip install 下载的文件名.whl来安装。在macOS上可能需要先运行brew install portaudio。问题录音没反应或报错。解决首先检查麦克风是否被其他程序占用比如微信、会议软件。其次SpeechRecognition库在首次调用麦克风时可能会有一个列表让你选择设备索引。如果默认设备不对你可以在listen_microphone函数里创建Microphone对象时指定设备索引例如microphone sr.Microphone(device_index1)。你可以通过一段简单的代码列出所有音频设备来确认索引。问题识别准确率不高。解决确保在相对安静的环境下使用。说话时清晰、匀速。可以在listen_microphone函数中调整adjust_for_ambient_noise的时长让它更好地适应当前环境。此外FireRedASR Pro本身可能支持设置识别语言、领域等参数查阅其API文档进行配置可能会提升效果。让助手更聪明你现在实现的只是一个“关键词匹配”的助手。如果想让它真正理解自然语言比如“今天需要带伞吗”你就需要集成更强大的自然语言理解服务或者使用本地的大语言模型。这就是下一步有趣的挑战了整个项目做下来感觉怎么样是不是并没有想象中那么复杂我们通过几个清晰的步骤准备环境、录制声音、调用API识别、处理命令、语音回复就完成了一个能交互的语音助手原型。虽然它现在还很“幼稚”只会执行几条固定命令但整个核心流程你已经完全掌握了。这个项目最大的价值在于它为你打开了一扇门。你现在知道了一个语音应用的基本骨架是什么样子。接下来你可以尽情地发挥创意去装饰它为它接入真正的天气API、让它控制你家的智能灯、或者集成一个开源的AI模型来和你进行更智能的对话。编程的乐趣就在于此从一个小点子开始亲手把它变成现实并看着它一点点成长、变强。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。
文脉定序系统核心参数调优指南:平衡速度与精度 文脉定序系统核心参数调优指南:平衡速度与精度 如果你正在使用文脉定序系统,可能会遇到这样的困惑:为什么我的服务响应时快时慢?为什么有些查询结果很准,有些却差强人意?或者,在部署到自己的服… 2026/5/17 5:28:00
FFmpeg录屏避坑指南:C#中处理音频捕获异常的3种方法 FFmpeg录屏实战:从音频捕获异常到稳定录制的深度调优 录屏功能,听起来简单,不就是把屏幕画面和声音录下来吗?但真正动手开发时,你会发现这潭水比想象中深得多。特别是当你在C#项目中集成FFmpeg,试图捕获系统… 2026/7/6 12:54:14
开源相机管理库Aravis实战——从零构建到GStreamer集成 1. 为什么你需要Aravis?一个相机开发者的真实痛点 如果你正在做机器视觉或者图像采集相关的开发,我猜你大概率遇到过和我一样的烦恼:手头项目用着Basler的相机,下一个项目客户指定要用海康威视,再下一个又换成了大恒图… 2026/5/17 8:26:43
USB Type-C 连接器 PCB 布局:VBUS 5A 大电流与 ESD/共模电感 3 要点放置指南 USB Type-C PCB 布局深度解析:5A大电流与ESD防护的工程实践 在消费电子和嵌入式系统设计中,USB Type-C接口已经成为了事实上的标准。这种24针可逆连接器不仅支持高达10Gbps的数据传输速率,还能提供最高100W的功率输出。然而,这种多… 2026/7/7 6:53:51
Seedance 2.5本地AI生图视频工具部署与实战指南 🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 这次我们来看一个近期备受关注的AI工具——Seedance 2.5。作为一款本地部署的AI生图和视频生成软件,它号称能够"吊打… 2026/7/7 6:51:51
学工系统选型,内行人最看重的三个要点 ✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多… 2026/7/7 6:51:51
跨境电商广告投放数据分析和优化用哪款工具?基于AI Agent与超自动化的深度测评 在2026年全球贸易环境复杂化与流量红利衰减的双重背景下,跨境电商行业已全面进入“精细化运营”与“AI驱动”的深水区。广告投放作为跨境卖家的命脉,其数据分析与优化能力已直接决定了企业的利润率与市场生存空间。随着TikTok、Meta、Google等平台风控机… 2026/7/7 6:47:50
AI算力基建动态简报(2026.07.06) 第1条:Kimi K3确认7月发布,参数规模预计达2.5万亿核心信息:月之暗面员工确认新一代大模型Kimi K3将于7月正式发布。据内部人士披露,该模型参数规模预计达2.5万亿,在规模上超过DeepSeek V4 Pro。此前Kimi于6月12日发布K… 2026/7/7 6:47:50
跨平台视频解密工具:轻松下载微信视频号、抖音等加密资源 跨平台视频解密工具:轻松下载微信视频号、抖音等加密资源 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是否经… 2026/7/7 6:47:50
Acunetix v24.8 深度解析:DAST漏洞扫描器核心原理与DevSecOps实践 1. 项目概述:Acunetix v24.8 高级版漏洞扫描器深度解析作为一名在网络安全领域摸爬滚打多年的老兵,我深知一款趁手的“兵器”对于安全测试工作意味着什么。今天要聊的,就是Web应用安全测试领域里一个响当当的名字——Acunetix。特别是其v24.8… 2026/7/7 0:01:11
如何3步搞定加密视频下载:跨平台资源嗅探与解密工具终极指南 如何3步搞定加密视频下载:跨平台资源嗅探与解密工具终极指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是… 2026/7/7 0:03:13
Jailhouse-gui可视化管理工具:让多核处理器分区变得简单高效 Jailhouse-gui可视化管理工具:让多核处理器分区变得简单高效 【免费下载链接】Jailhouse-gui A graphical user interface (GUI) tool for configuring and managing Jailhouse, a Linux-based hypervisor for partitioning multicore processors into isolated cel… 2026/7/7 0:03:13
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/6 8:43:22
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/6 7:29:49
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/6 7:29:51