基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发
基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发
摘要
随着人工智能技术的不断发展,语音识别在会议记录、语音笔记等场景中得到了广泛应用。本文介绍了一个基于Python和阿里云百炼大模型的语音识别与文本保存工具的开发过程。该工具能够高效地识别东北方言的会议记录音频文件,并将识别结果保存为文本文件,方便用户使用和管理。
1.引言
语音识别技术是人工智能领域的重要分支,它能够将语音信号转换为文本内容,极大地提高了信息处理的效率。在实际应用中,例如会议记录、语音笔记等场景,语音识别工具能够帮助用户快速生成文本内容,节省时间和精力。本文将详细介绍如何使用Python和阿里云百炼大模型开发一个简单的语音识别与文本保存工具,特别关注对东北方言会议记录音频文件的识别。
2.技术栈介绍
2.1 Python
Python是一种广泛使用的高级编程语言,具有简洁的语法和强大的库支持,适合快速开发各种应用。在本项目中,Python被用于实现图形用户界面和后端逻辑。
2.2 阿里云百炼大模型
阿里云百炼大模型提供了强大的语音识别能力,支持多种语言和方言的识别。其中,sensevoice-v1
模型专门针对中文语音识别进行了优化,能够高效地处理东北方言等地方言的语音文件。通过阿里云的API,我们可以轻松地将语音识别功能集成到我们的工具中。
2.3 Tkinter
Tkinter是Python的标准GUI库,用于创建图形用户界面。它提供了丰富的控件,如按钮、文本框等,能够方便地实现用户交互功能。
3.工具功能设计
3.1 东北方言会议记录语音识别
工具的核心功能是识别东北方言的会议记录音频文件。用户可以通过点击“会议记录语音识别”按钮,触发语音识别流程。工具会调用阿里云百炼大模型的语音识别API,将指定的东北方言音频文件转换为文本内容,并显示在文本框中。
3.2 文本保存
识别后的文本内容可以通过点击“保存识别内容到文本”按钮保存到本地文件中。用户可以选择保存路径和文件名,工具会将文本内容写入指定的文本文件中。
4.代码实现
4.1 初始化界面
class AudioTranscriptionApp:def __init__(self, root):self.root = rootself.root.title("语音识别与保存工具")self.root.grid_rowconfigure(0, weight=1)self.root.grid_columnconfigure(0, weight=1)self.root.grid_columnconfigure(1, weight=1)self.text_box = tk.Text(root, height=15, width=60, font=("Arial", 18))self.text_box.grid(row=0, column=0, columnspan=2, sticky="nsew", padx=10, pady=10)self.text_box.insert(tk.END, "识别内容如下:\n")self.recognize_button = tk.Button(root, text="会议记录语音识别", command=self.recognize_audio)self.recognize_button.grid(row=1, column=0, padx=10, pady=10, sticky="ew")self.save_button = tk.Button(root, text="保存识别内容到文本", command=self.save_transcription)self.save_button.grid(row=1, column=1, padx=10, pady=10, sticky="ew")
在初始化界面时,我们创建了一个多行文本框用于显示识别结果,以及两个按钮分别用于触发语音识别和保存文本内容。
4.2 东北方言会议记录语音识别逻辑
def recognize_audio(self):try:task_response = dashscope.audio.asr.Transcription.async_call(model='sensevoice-v1', # 语言模型file_urls=['https://ai-inspection-lxw.oss-cn-hangzhou.aliyuncs.com/output.mp3?Expires=1738208593&OSSAccessKeyId=TMP.3KhisLmHf1f1YvnxwxcRF3FSMJPNaD1RTyww1TAebKcp5Ymhm2R9bt53kzuWFD6vpkCt....'], #上传到OSS的音频文件language_hints=['zh', 'en'], # 使用中文语言提示,适用于东北方言)transcription_response = dashscope.audio.asr.Transcription.wait(task=task_response.output.task_id)if transcription_response.status_code == HTTPStatus.OK:for transcription in transcription_response.output['results']:url = transcription['transcription_url']result = json.loads(request.urlopen(url).read().decode('utf8'))self.transcription_text = result['transcripts'][0]['text']# 正则模式pattern = r"<\|Speech\|>(.*?)<\|\/Speech\|>" self.transcription_text_matches = re.findall(pattern, self.transcription_text)self.transcription_text_final = "\n".join(self.transcription_text_matches)self.text_box.delete(1.0, tk.END)self.text_box.insert(tk.END, "识别内容如下:\n")self.text_box.insert(tk.END, self.transcription_text_final)messagebox.showinfo("提示", "transcription done")else:messagebox.showerror("错误", f"Error: {transcription_response.output.message}")except Exception as e:messagebox.showerror("错误", f"发生错误: {e}")
在语音识别逻辑中,我们调用了阿里云百炼大模型的异步语音识别API,并等待任务完成。识别结果通过正则表达式提取并显示在文本框中。特别地,我们使用了中文语言提示(language_hints=['zh']
),以更好地支持东北方言的识别。
4.3 文本保存逻辑
def save_transcription(self):if not self.transcription_text_final:messagebox.showwarning("警告", "没有可保存的识别内容")returnfile_path = filedialog.asksaveasfilename(defaultextension=".txt",filetypes=[("Text files", "*.txt"), ("All files", "*.*")])if file_path:with open(file_path, "w", encoding="utf-8") as file:file.write("识别内容如下:\n")file.write(self.transcription_text_final)messagebox.showinfo("提示", "保存成功")
在文本保存逻辑中,我们通过文件对话框让用户选择保存路径,并将识别结果写入指定的文本文件中。
运行结果:
5.使用说明
5.1 安装依赖
在运行代码之前,需要安装以下Python库:
pip install dashscope
pip install tkinter
5.2 启动工具
运行代码后,工具会启动一个图形用户界面。用户可以通过点击“会议记录语音识别”按钮进行东北方言会议记录音频文件的语音识别,并通过点击“保存识别内容到文本”按钮将识别结果保存到本地文件中。
6.遇到的问题及解决方案
在开发过程中,我们遇到了一些问题,例如网络连接问题导致语音文件无法正确解析。如果用户遇到类似问题,建议检查以下几点:
• 确保语音文件的URL链接是有效的,并且服务器能够正常访问。
• 检查网络连接是否正常,适当重试可能解决问题。
• 如果问题仍然存在,可以尝试更换语音文件或联系技术支持。
7.结论
本文介绍了一个基于Python和阿里云百炼大模型的语音识别与文本保存工具的开发过程。通过Tkinter实现的图形用户界面,用户可以方便地进行东北方言会议记录音频文件的语音识别和文本保存操作。该工具在会议记录、语音笔记等场景中具有较高的实用价值。未来,我们可以进一步优化工具的功能,例如支持更多语音文件格式、提高识别精度等,以满足更多用户的需求。
欢迎点赞、关注、收藏、转发!!!
相关文章:

基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发
基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发 摘要 随着人工智能技术的不断发展,语音识别在会议记录、语音笔记等场景中得到了广泛应用。本文介绍了一个基于Python和阿里云百炼大模型的语音识别与文本保存工具的开发过程。该工具能够高效地识别东…...
【go语言】函数
一、什么是函数 函数是入门简单精通难,函数是什么??? 函数就是一段代码的集合go 语言中至少有一个 main 函数函数需要有一个名字,独立定义的情况下,见名知意函数可能需要有一个结果,也可能没有…...

CTF-web: phar反序列化+数据库伪造 [DASCTF2024最后一战 strange_php]
step 1 如何触发反序列化? 漏洞入口在 welcome.php case delete: // 获取删除留言的路径,优先使用 POST 请求中的路径,否则使用会话中的路径 $message $_POST[message_path] ? $_POST[message_path] : $_SESSION[message_path]; $msg $userMes…...
从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(动态菜单组件实现)
目录 面对对象C的程序设计(范例) 面对对象C的程序设计(应用) 进一步谈论我上面给出的代码——继承 实现一个面对对象的文本编辑器 所以,什么是继承 重申我们对菜单的抽象 抽象菜单项目 抽象菜单动画 实现菜单功…...
EtherCAT主站IGH-- 23 -- IGH之fsm_slave.h/c文件解析
EtherCAT主站IGH-- 23 -- IGH之fsm_slave.h/c文件解析 0 预览一 该文件功能`fsm_slave.c` 文件功能函数预览二 函数功能介绍`fsm_slave.c` 中主要函数的作用1. `ec_fsm_slave_init`2. `ec_fsm_slave_clear`3. `ec_fsm_slave_exec`4. `ec_fsm_slave_set_ready`5. `ec_fsm_slave_…...

windows10 配置使用json server作为图片服务器
步骤1:在vs code中安装json server, npm i -g json-server 注意:需要安装对应版本的json server,不然可能会报错,比如: npm i -g json-server 0.16.3 步骤2:出现如下报错: json-server 不是…...

Linux——网络(tcp)
文章目录 目录 文章目录 前言 一、TCP逻辑 1. 面向连接 三次握手(建立连接) 四次挥手(关闭连接) 2. 可靠性 3. 流量控制 4. 拥塞控制 5. 基于字节流 6. 全双工通信 7. 状态机 8. TCP头部结构 9. TCP的应用场景 二、编写tcp代码函数…...
腾讯云开发提供免费GPU服务
https://ide.cloud.tencent.com/dashboard/web 适用于推理场景,每个月10000分钟免费时长 166 小时 40 分钟 自带学术加速,速度还是不错的 白嫖 Tesla T4 16G 算力 显存:16GB 算力:8 TFlops SP CPU:8 核 内存&#…...
详解python的修饰符
Python 中的修饰符(Decorator)是一种用于修改或扩展函数或类行为的工具。它们本质上是一个函数,接受另一个函数或类作为参数,并返回一个新的函数或类。修饰符通常用于在不修改原函数或类代码的情况下,添加额外的功能。…...
《攻克语言密码:教AI理解隐喻与象征》
在自然语言处理(NLP)领域,让计算机理解人类语言中的隐喻和象征,是迈向更高语言理解水平的关键一步。从“时间就是金钱”这样的概念隐喻,到文学作品里象征着坚韧的“寒梅”,这些非字面意义的表达方式承载着丰…...
如何解除TikTok地区限制:实用方法解析
随着社交媒体的不断发展,TikTok作为一款短视频平台,已经在全球范围内吸引了数以亿计的用户。然而,不同地区对TikTok的使用权限存在一定的限制,这使得一些用户无法享受平台提供的完整内容和功能。 一、了解TikTok地区限制的原因 在…...
神经网络|(七)概率论基础知识-贝叶斯公式
【1】引言 前序我们已经了解了一些基础知识。 古典概型:有限个元素参与抽样,每个元素被抽样的概率相等。 条件概率:在某条件已经达成的前提下,新事件发生的概率。实际计算的时候,应注意区分,如果是计算综…...

《DeepSeek 网页/API 性能异常(DeepSeek Web/API Degraded Performance):网络安全日志》
DeepSeek 网页/API 性能异常(DeepSeek Web/API Degraded Performance)订阅 已识别 - 已识别问题,并且正在实施修复。 1月 29, 2025 - 20:57 CST 更新 - 我们将继续监控任何其他问题。 1月 28, 2025 - 22&am…...

使用Edu邮箱申请一年免费的.me域名
所需材料:公立Edu教育邮箱一枚(P.S:该服务不支持所有的Edu教育邮箱,仅支持比较知名的院校) 说到域名,.me这个后缀可谓是个性十足,适合个人网站、博客等。.me是黑山的国家顶级域名(c…...
【MCU】DFU、IAP、OTA
我发现很多人把几个概念都学混了,只记得一个升级了 DFU DFU (device firmware update)是指的 USB DFU,这个是 USB 的一个机制,可以升级设备的固件,可以去 USB-IF 查看规范文件。 OTA 全称为 Over-the-air update,利…...

2025.1.21——六、BUU XSS COURSE 1 XSS漏洞|XSS平台搭建
题目来源:buuctf BUU XSS COURSE 1 目录 一、打开靶机,整理信息 二、解题思路 step 1:输入框尝试一下 step 2:开始xss注入 step 3:搭建平台 step 4:利用管理员cookie访问地址 三、小结 二编&#…...

跟李沐学AI:视频生成类论文精读(Movie Gen、HunyuanVideo)
Movie Gen:A Cast of Media Foundation Models 简介 Movie Gen是Meta公司提出的一系列内容生成模型,包含了 3.2.1 预训练数据 Movie Gen采用大约 100M 的视频-文本对和 1B 的图片-文本对进行预训练。 图片-文本对的预训练流程与Meta提出的 Emu: Enh…...

7.抽象工厂(Abstract Factory)
抽象工厂与工厂方法极其类似,都是绕开new的,但是有些许不同。 动机 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。 假设案例 假设…...

python-leetcode-路径总和
112. 路径总和 - 力扣(LeetCode) # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:de…...

WGCLOUD使用介绍 - 如何监控ActiveMQ和RabbitMQ
根据WGCLOUD官网的信息,目前没有针对ActiveMQ和RabbitMQ这两个组件专门做适配 不过可以使用WGCLOUD已经具备的通用监测模块:进程监测、端口监测或者日志监测、接口监测 来对这两个组件进行监控...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
[特殊字符] 手撸 Redis 互斥锁那些坑
📖 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作,想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁,也顺便跟 Redisson 的 RLock 机制对比了下,记录一波,别踩我踩过…...

【51单片机】4. 模块化编程与LCD1602Debug
1. 什么是模块化编程 传统编程会将所有函数放在main.c中,如果使用的模块多,一个文件内会有很多代码,不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数声明,其他.c文…...

Python环境安装与虚拟环境配置详解
本文档旨在为Python开发者提供一站式的环境安装与虚拟环境配置指南,适用于Windows、macOS和Linux系统。无论你是初学者还是有经验的开发者,都能在此找到适合自己的环境搭建方法和常见问题的解决方案。 快速开始 一分钟快速安装与虚拟环境配置 # macOS/…...