SenseVoice-Small语音识别模型MySQL数据库集成教程识别结果持久化你是不是已经用上了SenseVoice-Small这个轻量级的语音识别模型感觉识别效果还不错但每次识别完结果要么显示在屏幕上要么保存到一个临时文件里时间一长就找不到了想回头查查历史记录或者做个统计分析简直无从下手。这确实是个痛点。语音识别本身是“听”和“写”的过程但如果想让这些“写”下来的文字产生更长远的价值比如用于后续的质检分析、内容检索、或是作为知识库的一部分就必须把它们好好地“存”起来。这时候一个可靠的数据库就成了必需品。今天我就带你一步步把SenseVoice-Small的识别结果稳稳当当地存进MySQL数据库里。我们不只是简单地存个文本还会把音频文件名、识别时间、甚至模型对识别结果的“自信程度”置信度都一并管理起来。这样你就能轻松实现历史记录的查询、统计甚至构建更复杂的语音数据应用了。整个过程就像搭积木我们从零开始先准备好MySQL这个“仓库”然后设计好存放数据的“货架”表结构最后用程序把识别出来的“货物”文本结果规规矩矩地存进去。放心我会用最直白的话和能直接运行的代码让你看完就能动手做出来。1. 环境准备搭建你的MySQL“数据仓库”在开始写代码存数据之前我们得先把数据库这个“家”给安好。这里我们选择MySQL因为它免费、流行而且足够稳定非常适合用来做这种数据持久化。1.1 安装MySQL数据库安装MySQL其实很简单就像安装一个普通的软件。下面以Windows系统为例其他系统如macOS、Linux的安装包也可以在MySQL官网找到。前往官网下载打开浏览器搜索“MySQL Community Server”进入官方网站。找到适合你电脑操作系统的安装程序通常是.msi格式的安装包点击下载。运行安装程序双击下载好的安装包。安装类型选择“Developer Default”或“Server only”都可以前者会安装一些额外的开发工具后者只安装数据库服务器本身。关键配置步骤安装过程中会提示你配置MySQL的root用户密码。这个密码非常重要一定要记住你可以设置一个自己容易记但又足够复杂的密码。完成安装跟着安装向导一步步点下去直到安装完成。安装程序可能会问你是否要启动MySQL服务以及是否要配置环境变量建议都勾选上这样用起来更方便。安装完成后你可以在开始菜单找到“MySQL Command Line Client”或者“MySQL Shell”打开它输入刚才设置的root密码如果能成功登录并看到mysql提示符恭喜你MySQL安装成功了1.2 创建专属数据库和数据表登录进MySQL后我们首先要为语音识别数据创建一个专属的数据库然后在里面设计一张表来存放数据。想象一下你要记录每一次语音识别的“档案”这份档案里应该包含哪些信息呢至少得有这次识别是针对哪个音频文件什么时候识别的识别出来的文字是什么模型对这段文字有多大的把握我们来把这些想法变成SQL命令。在MySQL命令行里依次执行以下语句-- 1. 创建一个名为 voice_recognition_db 的数据库专门用来存放语音数据 CREATE DATABASE voice_recognition_db; -- 使用这个数据库 USE voice_recognition_db; -- 2. 创建一张核心数据表 recognition_results CREATE TABLE recognition_results ( -- 主键ID每条记录的唯一标识自动增长 id INT AUTO_INCREMENT PRIMARY KEY, -- 音频文件的原始名字 audio_filename VARCHAR(255) NOT NULL, -- 识别出的完整文本内容 recognized_text TEXT NOT NULL, -- 模型给出的整体置信度用小数表示例如0.95代表95%的把握 confidence_score FLOAT, -- 识别任务完成的时间默认自动记录当前时间 recognition_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 可以加个备注字段方便后期手动标注一些信息 note VARCHAR(500) );执行完这些命令你的“数据仓库”和第一个“货架”就搭好了。recognition_results表有5个“格子”字段id就像档案编号自动生成保证每条记录都不会重复。audio_filename记录音频文件是谁。recognized_text这是核心存放识别出来的文字。confidence_score记录这次识别的“自信分”分数越高结果可能越可靠。recognition_time自动盖上“处理时间”的戳。note留个备注栏万一你想手动记点什么呢。2. 从语音到文字SenseVoice-Small识别实战仓库准备好了现在我们来生产要入库的“货物”——也就是语音识别出的文本。这里假设你已经按照SenseVoice-Small的官方指引准备好了Python环境和模型。我们写一个简单的识别函数。# sensevoice_recognizer.py import torch from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor import librosa def transcribe_audio(file_path): 使用SenseVoice-Small模型识别音频文件。 参数: file_path (str): 音频文件的路径支持wav, mp3等常见格式 返回: dict: 包含识别文本和置信度分数的字典 # 1. 加载模型和处理器假设模型已下载到本地路径 ./sensevoice-small model AutoModelForSpeechSeq2Seq.from_pretrained(./sensevoice-small) processor AutoProcessor.from_pretrained(./sensevoice-small) # 2. 加载和预处理音频 # 使用librosa加载音频并重采样到模型需要的采样率例如16kHz speech_array, sampling_rate librosa.load(file_path, sr16000, monoTrue) inputs processor(speech_array, sampling_ratesampling_rate, return_tensorspt) # 3. 执行识别 with torch.no_grad(): generated_ids model.generate(**inputs) # 4. 解码识别结果 transcription processor.batch_decode(generated_ids, skip_special_tokensTrue)[0] # 5. 获取置信度这里简化处理实际可根据模型输出logits计算 # 假设我们用一个固定的高置信度或从模型输出中提取此处为示例 confidence 0.92 # 示例值实际应用中需要根据模型输出计算 return { text: transcription, confidence: confidence } # 示例识别一个音频文件 if __name__ __main__: result transcribe_audio(example_audio.wav) print(f识别文本: {result[text]}) print(f置信度: {result[confidence]})运行这个脚本如果example_audio.wav里有人说“今天天气不错”你应该能看到类似的输出。这样我们就得到了要存入数据库的核心数据文本和置信度。3. 桥梁搭建用Python连接数据库并存入结果现在货物识别文本有了仓库MySQL也准备好了就差一个搬运工Python程序把货物搬进仓库的指定货架。我们需要一个库来和MySQL对话最常用的就是pymysql或mysql-connector-python。这里我们用pymysql。首先安装它pip install pymysql。接下来我们创建一个数据库操作类它负责所有和数据库打交道的活儿# database_manager.py import pymysql from datetime import datetime class RecognitionResultDB: def __init__(self, hostlocalhost, userroot, passwordyour_password, databasevoice_recognition_db): 初始化数据库连接。 记得把 your_password 换成你安装MySQL时设置的root密码。 self.connection pymysql.connect( hosthost, useruser, passwordpassword, databasedatabase, charsetutf8mb4, cursorclasspymysql.cursors.DictCursor # 让返回的结果是字典格式更方便 ) print(数据库连接成功) def insert_result(self, audio_filename, recognized_text, confidence_score, noteNone): 向 recognition_results 表插入一条新的识别记录。 sql INSERT INTO recognition_results (audio_filename, recognized_text, confidence_score, note) VALUES (%s, %s, %s, %s) with self.connection.cursor() as cursor: cursor.execute(sql, (audio_filename, recognized_text, confidence_score, note)) self.connection.commit() # 提交事务让数据真正存入数据库 print(f记录插入成功: {audio_filename}) def get_all_results(self): 获取 recognition_results 表中的所有记录。 sql SELECT * FROM recognition_results ORDER BY recognition_time DESC with self.connection.cursor() as cursor: cursor.execute(sql) results cursor.fetchall() return results def search_by_filename(self, filename_keyword): 根据音频文件名关键词搜索记录。 sql SELECT * FROM recognition_results WHERE audio_filename LIKE %s with self.connection.cursor() as cursor: cursor.execute(sql, (% filename_keyword %,)) results cursor.fetchall() return results def close(self): 关闭数据库连接。 self.connection.close() print(数据库连接已关闭。) # 示例如何使用这个类 if __name__ __main__: # 1. 初始化数据库管理器 db_manager RecognitionResultDB(passwordyour_secure_password) # 替换成你的密码 # 2. 模拟一次识别结果实际中这里应调用前面的 transcribe_audio 函数 mock_result { audio_filename: meeting_20231027.wav, recognized_text: 本项目下一阶段的重点是提升用户体验和优化后台性能。, confidence_score: 0.95, note: 团队周会录音 } # 3. 将结果存入数据库 db_manager.insert_result( audio_filenamemock_result[audio_filename], recognized_textmock_result[recognized_text], confidence_scoremock_result[confidence_score], notemock_result[note] ) # 4. 查询并打印所有记录 all_records db_manager.get_all_results() print(\n当前数据库中的所有记录) for record in all_records: print(fID: {record[id]}, 文件: {record[audio_filename]}, 时间: {record[recognition_time]}) print(f文本: {record[recognized_text][:50]}...) # 只打印前50个字符 print(- * 30) # 5. 关闭连接 db_manager.close()运行这段代码如果密码正确你会看到“数据库连接成功”和“记录插入成功”的提示并且能打印出刚存入的那条数据。这就完成了最核心的“识别-存储”流程。4. 功能扩展让你的数据管理更顺手基本的存和查有了但一个实用的系统还需要更多功能。我们来给这个数据库管理器加几个常用功能。4.1 更新与删除记录有时候识别结果需要修正或者某些测试记录需要清理。# 在 RecognitionResultDB 类中添加方法 class RecognitionResultDB: # ... 之前的 __init__, insert_result 等方法保持不变 ... def update_result_text(self, record_id, new_text): 更新指定ID记录的识别文本。 sql UPDATE recognition_results SET recognized_text %s WHERE id %s with self.connection.cursor() as cursor: cursor.execute(sql, (new_text, record_id)) self.connection.commit() print(f记录 ID {record_id} 的文本已更新。) def delete_result(self, record_id): 删除指定ID的记录。 sql DELETE FROM recognition_results WHERE id %s with self.connection.cursor() as cursor: cursor.execute(sql, (record_id,)) self.connection.commit() print(f记录 ID {record_id} 已删除。)4.2 按时间或置信度筛选数据多了精准查找就很重要。# 继续在 RecognitionResultDB 类中添加方法 def get_results_by_time_range(self, start_date, end_date): 查询某个时间段内的识别记录。 sql SELECT * FROM recognition_results WHERE recognition_time BETWEEN %s AND %s ORDER BY recognition_time DESC with self.connection.cursor() as cursor: cursor.execute(sql, (start_date, end_date)) results cursor.fetchall() return results def get_high_confidence_results(self, threshold0.9): 查询置信度高于某个阈值的高质量识别记录。 sql SELECT * FROM recognition_results WHERE confidence_score %s ORDER BY confidence_score DESC with self.connection.cursor() as cursor: cursor.execute(sql, (threshold,)) results cursor.fetchall() return results4.3 一个简单的整合示例现在我们把语音识别和数据库操作串起来形成一个完整的小流程。# main_integration.py from sensevoice_recognizer import transcribe_audio from database_manager import RecognitionResultDB import os def process_audio_and_store(audio_file_path, noteNone): 完整的处理流程识别音频 - 结果存入数据库。 # 1. 识别音频 print(f正在识别音频文件: {audio_file_path}) recognition_result transcribe_audio(audio_file_path) # 2. 连接数据库 db RecognitionResultDB(passwordyour_secure_password) # 3. 准备数据并存入 audio_filename os.path.basename(audio_file_path) # 只取文件名 db.insert_result( audio_filenameaudio_filename, recognized_textrecognition_result[text], confidence_scorerecognition_result[confidence], notenote ) # 4. 可选查询并展示刚刚存入的数据 recent db.get_all_results() if recent: latest recent[0] # 按时间倒序第一条就是最新的 print(f✅ 已存入数据库) print(f 文件{latest[audio_filename]}) print(f 文本{latest[recognized_text][:100]}...) # 预览前100字符 print(f 置信度{latest[confidence_score]}) # 5. 关闭连接 db.close() # 运行示例 if __name__ __main__: # 处理一个音频文件并添加备注 process_audio_and_store(path/to/your/audio.wav, note客户咨询电话录音)运行这个整合脚本你会看到从识别到存储的完整日志输出。你的语音数据就这样有条不紊地进入了MySQL数据库随时待命供你查询和分析。5. 总结走完这一趟你会发现为SenseVoice-Small语音识别模型加上MySQL持久化功能并没有想象中那么复杂。整个过程就像一条清晰的流水线音频文件经过模型识别变成文本然后被我们精心设计的数据库“表格”打包、贴上标签文件名、时间、置信度最后整整齐齐地码放在MySQL数据库的“货架”上。这么做最大的好处是数据从“一次性消耗品”变成了“可管理的资产”。你可以随时查询几个月前的某次会议录音转写内容可以统计不同时间段识别任务的数量也可以筛选出所有低置信度的结果进行人工复核极大地提升了语音数据的可利用性。在实际动手时有几点小建议数据库的密码等敏感信息不要硬编码在代码里可以用环境变量或配置文件来管理对于大量音频的批量处理可以考虑加入简单的任务队列避免阻塞如果识别文本特别长可能需要留意数据库字段的容量。不过对于大多数场景我们今天搭建的这个框架已经足够结实好用了。希望这个教程能帮你把语音识别的结果真正用起来。下次当你需要从海量录音中快速找到某段话或者对识别结果进行批量分析时你会感谢现在这个做了持久化的自己。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。
SenseVoice-Small语音识别模型MySQL数据库集成教程:识别结果持久化
SenseVoice-Small语音识别模型MySQL数据库集成教程识别结果持久化你是不是已经用上了SenseVoice-Small这个轻量级的语音识别模型感觉识别效果还不错但每次识别完结果要么显示在屏幕上要么保存到一个临时文件里时间一长就找不到了想回头查查历史记录或者做个统计分析简直无从下手。这确实是个痛点。语音识别本身是“听”和“写”的过程但如果想让这些“写”下来的文字产生更长远的价值比如用于后续的质检分析、内容检索、或是作为知识库的一部分就必须把它们好好地“存”起来。这时候一个可靠的数据库就成了必需品。今天我就带你一步步把SenseVoice-Small的识别结果稳稳当当地存进MySQL数据库里。我们不只是简单地存个文本还会把音频文件名、识别时间、甚至模型对识别结果的“自信程度”置信度都一并管理起来。这样你就能轻松实现历史记录的查询、统计甚至构建更复杂的语音数据应用了。整个过程就像搭积木我们从零开始先准备好MySQL这个“仓库”然后设计好存放数据的“货架”表结构最后用程序把识别出来的“货物”文本结果规规矩矩地存进去。放心我会用最直白的话和能直接运行的代码让你看完就能动手做出来。1. 环境准备搭建你的MySQL“数据仓库”在开始写代码存数据之前我们得先把数据库这个“家”给安好。这里我们选择MySQL因为它免费、流行而且足够稳定非常适合用来做这种数据持久化。1.1 安装MySQL数据库安装MySQL其实很简单就像安装一个普通的软件。下面以Windows系统为例其他系统如macOS、Linux的安装包也可以在MySQL官网找到。前往官网下载打开浏览器搜索“MySQL Community Server”进入官方网站。找到适合你电脑操作系统的安装程序通常是.msi格式的安装包点击下载。运行安装程序双击下载好的安装包。安装类型选择“Developer Default”或“Server only”都可以前者会安装一些额外的开发工具后者只安装数据库服务器本身。关键配置步骤安装过程中会提示你配置MySQL的root用户密码。这个密码非常重要一定要记住你可以设置一个自己容易记但又足够复杂的密码。完成安装跟着安装向导一步步点下去直到安装完成。安装程序可能会问你是否要启动MySQL服务以及是否要配置环境变量建议都勾选上这样用起来更方便。安装完成后你可以在开始菜单找到“MySQL Command Line Client”或者“MySQL Shell”打开它输入刚才设置的root密码如果能成功登录并看到mysql提示符恭喜你MySQL安装成功了1.2 创建专属数据库和数据表登录进MySQL后我们首先要为语音识别数据创建一个专属的数据库然后在里面设计一张表来存放数据。想象一下你要记录每一次语音识别的“档案”这份档案里应该包含哪些信息呢至少得有这次识别是针对哪个音频文件什么时候识别的识别出来的文字是什么模型对这段文字有多大的把握我们来把这些想法变成SQL命令。在MySQL命令行里依次执行以下语句-- 1. 创建一个名为 voice_recognition_db 的数据库专门用来存放语音数据 CREATE DATABASE voice_recognition_db; -- 使用这个数据库 USE voice_recognition_db; -- 2. 创建一张核心数据表 recognition_results CREATE TABLE recognition_results ( -- 主键ID每条记录的唯一标识自动增长 id INT AUTO_INCREMENT PRIMARY KEY, -- 音频文件的原始名字 audio_filename VARCHAR(255) NOT NULL, -- 识别出的完整文本内容 recognized_text TEXT NOT NULL, -- 模型给出的整体置信度用小数表示例如0.95代表95%的把握 confidence_score FLOAT, -- 识别任务完成的时间默认自动记录当前时间 recognition_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 可以加个备注字段方便后期手动标注一些信息 note VARCHAR(500) );执行完这些命令你的“数据仓库”和第一个“货架”就搭好了。recognition_results表有5个“格子”字段id就像档案编号自动生成保证每条记录都不会重复。audio_filename记录音频文件是谁。recognized_text这是核心存放识别出来的文字。confidence_score记录这次识别的“自信分”分数越高结果可能越可靠。recognition_time自动盖上“处理时间”的戳。note留个备注栏万一你想手动记点什么呢。2. 从语音到文字SenseVoice-Small识别实战仓库准备好了现在我们来生产要入库的“货物”——也就是语音识别出的文本。这里假设你已经按照SenseVoice-Small的官方指引准备好了Python环境和模型。我们写一个简单的识别函数。# sensevoice_recognizer.py import torch from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor import librosa def transcribe_audio(file_path): 使用SenseVoice-Small模型识别音频文件。 参数: file_path (str): 音频文件的路径支持wav, mp3等常见格式 返回: dict: 包含识别文本和置信度分数的字典 # 1. 加载模型和处理器假设模型已下载到本地路径 ./sensevoice-small model AutoModelForSpeechSeq2Seq.from_pretrained(./sensevoice-small) processor AutoProcessor.from_pretrained(./sensevoice-small) # 2. 加载和预处理音频 # 使用librosa加载音频并重采样到模型需要的采样率例如16kHz speech_array, sampling_rate librosa.load(file_path, sr16000, monoTrue) inputs processor(speech_array, sampling_ratesampling_rate, return_tensorspt) # 3. 执行识别 with torch.no_grad(): generated_ids model.generate(**inputs) # 4. 解码识别结果 transcription processor.batch_decode(generated_ids, skip_special_tokensTrue)[0] # 5. 获取置信度这里简化处理实际可根据模型输出logits计算 # 假设我们用一个固定的高置信度或从模型输出中提取此处为示例 confidence 0.92 # 示例值实际应用中需要根据模型输出计算 return { text: transcription, confidence: confidence } # 示例识别一个音频文件 if __name__ __main__: result transcribe_audio(example_audio.wav) print(f识别文本: {result[text]}) print(f置信度: {result[confidence]})运行这个脚本如果example_audio.wav里有人说“今天天气不错”你应该能看到类似的输出。这样我们就得到了要存入数据库的核心数据文本和置信度。3. 桥梁搭建用Python连接数据库并存入结果现在货物识别文本有了仓库MySQL也准备好了就差一个搬运工Python程序把货物搬进仓库的指定货架。我们需要一个库来和MySQL对话最常用的就是pymysql或mysql-connector-python。这里我们用pymysql。首先安装它pip install pymysql。接下来我们创建一个数据库操作类它负责所有和数据库打交道的活儿# database_manager.py import pymysql from datetime import datetime class RecognitionResultDB: def __init__(self, hostlocalhost, userroot, passwordyour_password, databasevoice_recognition_db): 初始化数据库连接。 记得把 your_password 换成你安装MySQL时设置的root密码。 self.connection pymysql.connect( hosthost, useruser, passwordpassword, databasedatabase, charsetutf8mb4, cursorclasspymysql.cursors.DictCursor # 让返回的结果是字典格式更方便 ) print(数据库连接成功) def insert_result(self, audio_filename, recognized_text, confidence_score, noteNone): 向 recognition_results 表插入一条新的识别记录。 sql INSERT INTO recognition_results (audio_filename, recognized_text, confidence_score, note) VALUES (%s, %s, %s, %s) with self.connection.cursor() as cursor: cursor.execute(sql, (audio_filename, recognized_text, confidence_score, note)) self.connection.commit() # 提交事务让数据真正存入数据库 print(f记录插入成功: {audio_filename}) def get_all_results(self): 获取 recognition_results 表中的所有记录。 sql SELECT * FROM recognition_results ORDER BY recognition_time DESC with self.connection.cursor() as cursor: cursor.execute(sql) results cursor.fetchall() return results def search_by_filename(self, filename_keyword): 根据音频文件名关键词搜索记录。 sql SELECT * FROM recognition_results WHERE audio_filename LIKE %s with self.connection.cursor() as cursor: cursor.execute(sql, (% filename_keyword %,)) results cursor.fetchall() return results def close(self): 关闭数据库连接。 self.connection.close() print(数据库连接已关闭。) # 示例如何使用这个类 if __name__ __main__: # 1. 初始化数据库管理器 db_manager RecognitionResultDB(passwordyour_secure_password) # 替换成你的密码 # 2. 模拟一次识别结果实际中这里应调用前面的 transcribe_audio 函数 mock_result { audio_filename: meeting_20231027.wav, recognized_text: 本项目下一阶段的重点是提升用户体验和优化后台性能。, confidence_score: 0.95, note: 团队周会录音 } # 3. 将结果存入数据库 db_manager.insert_result( audio_filenamemock_result[audio_filename], recognized_textmock_result[recognized_text], confidence_scoremock_result[confidence_score], notemock_result[note] ) # 4. 查询并打印所有记录 all_records db_manager.get_all_results() print(\n当前数据库中的所有记录) for record in all_records: print(fID: {record[id]}, 文件: {record[audio_filename]}, 时间: {record[recognition_time]}) print(f文本: {record[recognized_text][:50]}...) # 只打印前50个字符 print(- * 30) # 5. 关闭连接 db_manager.close()运行这段代码如果密码正确你会看到“数据库连接成功”和“记录插入成功”的提示并且能打印出刚存入的那条数据。这就完成了最核心的“识别-存储”流程。4. 功能扩展让你的数据管理更顺手基本的存和查有了但一个实用的系统还需要更多功能。我们来给这个数据库管理器加几个常用功能。4.1 更新与删除记录有时候识别结果需要修正或者某些测试记录需要清理。# 在 RecognitionResultDB 类中添加方法 class RecognitionResultDB: # ... 之前的 __init__, insert_result 等方法保持不变 ... def update_result_text(self, record_id, new_text): 更新指定ID记录的识别文本。 sql UPDATE recognition_results SET recognized_text %s WHERE id %s with self.connection.cursor() as cursor: cursor.execute(sql, (new_text, record_id)) self.connection.commit() print(f记录 ID {record_id} 的文本已更新。) def delete_result(self, record_id): 删除指定ID的记录。 sql DELETE FROM recognition_results WHERE id %s with self.connection.cursor() as cursor: cursor.execute(sql, (record_id,)) self.connection.commit() print(f记录 ID {record_id} 已删除。)4.2 按时间或置信度筛选数据多了精准查找就很重要。# 继续在 RecognitionResultDB 类中添加方法 def get_results_by_time_range(self, start_date, end_date): 查询某个时间段内的识别记录。 sql SELECT * FROM recognition_results WHERE recognition_time BETWEEN %s AND %s ORDER BY recognition_time DESC with self.connection.cursor() as cursor: cursor.execute(sql, (start_date, end_date)) results cursor.fetchall() return results def get_high_confidence_results(self, threshold0.9): 查询置信度高于某个阈值的高质量识别记录。 sql SELECT * FROM recognition_results WHERE confidence_score %s ORDER BY confidence_score DESC with self.connection.cursor() as cursor: cursor.execute(sql, (threshold,)) results cursor.fetchall() return results4.3 一个简单的整合示例现在我们把语音识别和数据库操作串起来形成一个完整的小流程。# main_integration.py from sensevoice_recognizer import transcribe_audio from database_manager import RecognitionResultDB import os def process_audio_and_store(audio_file_path, noteNone): 完整的处理流程识别音频 - 结果存入数据库。 # 1. 识别音频 print(f正在识别音频文件: {audio_file_path}) recognition_result transcribe_audio(audio_file_path) # 2. 连接数据库 db RecognitionResultDB(passwordyour_secure_password) # 3. 准备数据并存入 audio_filename os.path.basename(audio_file_path) # 只取文件名 db.insert_result( audio_filenameaudio_filename, recognized_textrecognition_result[text], confidence_scorerecognition_result[confidence], notenote ) # 4. 可选查询并展示刚刚存入的数据 recent db.get_all_results() if recent: latest recent[0] # 按时间倒序第一条就是最新的 print(f✅ 已存入数据库) print(f 文件{latest[audio_filename]}) print(f 文本{latest[recognized_text][:100]}...) # 预览前100字符 print(f 置信度{latest[confidence_score]}) # 5. 关闭连接 db.close() # 运行示例 if __name__ __main__: # 处理一个音频文件并添加备注 process_audio_and_store(path/to/your/audio.wav, note客户咨询电话录音)运行这个整合脚本你会看到从识别到存储的完整日志输出。你的语音数据就这样有条不紊地进入了MySQL数据库随时待命供你查询和分析。5. 总结走完这一趟你会发现为SenseVoice-Small语音识别模型加上MySQL持久化功能并没有想象中那么复杂。整个过程就像一条清晰的流水线音频文件经过模型识别变成文本然后被我们精心设计的数据库“表格”打包、贴上标签文件名、时间、置信度最后整整齐齐地码放在MySQL数据库的“货架”上。这么做最大的好处是数据从“一次性消耗品”变成了“可管理的资产”。你可以随时查询几个月前的某次会议录音转写内容可以统计不同时间段识别任务的数量也可以筛选出所有低置信度的结果进行人工复核极大地提升了语音数据的可利用性。在实际动手时有几点小建议数据库的密码等敏感信息不要硬编码在代码里可以用环境变量或配置文件来管理对于大量音频的批量处理可以考虑加入简单的任务队列避免阻塞如果识别文本特别长可能需要留意数据库字段的容量。不过对于大多数场景我们今天搭建的这个框架已经足够结实好用了。希望这个教程能帮你把语音识别的结果真正用起来。下次当你需要从海量录音中快速找到某段话或者对识别结果进行批量分析时你会感谢现在这个做了持久化的自己。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。