Qwen3-ASR-0.6B实操手册:ASR识别结果与数据库(PostgreSQL)自动同步
Qwen3-ASR-0.6B实操手册:ASR识别结果与数据库(PostgreSQL)自动同步
你是不是也遇到过这样的场景?开完一场重要的会议,或者录了一段产品讲解,看着一堆音频文件发愁,得一个个手动转成文字,再复制粘贴到文档或表格里。这个过程不仅耗时费力,还容易出错。
今天,我就带你用一个更聪明的方法来解决这个问题。我们将一起部署一个强大的语音识别模型——Qwen3-ASR-0.6B,并把它变成一个能自动工作的“小秘书”。你只需要上传音频,它不仅能准确地把语音转成文字,还能自动把识别结果存到数据库里,方便你随时查询和管理。
整个过程,你不需要懂复杂的AI算法,也不需要手动处理数据。跟着这篇教程,从零开始,一步步搭建属于你自己的语音识别与数据同步系统。
1. 准备工作与环境搭建
在开始动手之前,我们先来看看需要准备哪些东西,以及整个系统的架构是什么样的。
1.1 你需要准备什么
为了顺利完成这个项目,你需要准备以下几样东西:
- 一台电脑:可以是你的个人电脑,也可以是云服务器。操作系统推荐使用Linux(如Ubuntu 20.04/22.04)或macOS,Windows系统也可以,但部分命令可能需要调整。
- Python环境:需要Python 3.8或更高版本。如果你还没有安装Python,可以去官网下载安装。
- PostgreSQL数据库:我们将用它来存储识别结果。如果你没有安装,不用担心,后面会教你如何安装。
- 基本的命令行操作知识:会使用终端或命令提示符执行一些简单的命令即可。
整个项目的核心思路很简单:我们用一个网页界面(Gradio)来上传或录制音频,然后调用Qwen3-ASR-0.6B模型进行识别,最后把识别出来的文字自动保存到PostgreSQL数据库。
1.2 安装必要的软件包
首先,我们需要安装一些Python包。打开你的终端或命令提示符,创建一个新的项目文件夹,然后安装所需的依赖。
建议先创建一个虚拟环境,这样可以避免包之间的冲突:
# 创建项目文件夹并进入
mkdir qwen3-asr-demo
cd qwen3-asr-demo
# 创建虚拟环境(如果你使用conda,也可以用conda create)
python -m venv venv
# 激活虚拟环境
# 在Linux/macOS上:
source venv/bin/activate
# 在Windows上:
venv\Scripts\activate
激活虚拟环境后,你会看到命令行前面多了个(venv)的提示。接下来安装核心的Python包:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
pip install transformers gradio psycopg2-binary
这里简单解释一下这几个包的作用:
torch:PyTorch深度学习框架,Qwen3-ASR模型基于它运行transformers:Hugging Face的模型库,方便我们加载和使用预训练模型gradio:用来快速构建网页界面的工具,让我们的应用有可视化界面psycopg2-binary:Python连接PostgreSQL数据库的驱动
如果你打算使用GPU来加速推理(识别速度会快很多),可以把第一行命令中的cpu改成cu118(对应CUDA 11.8)或其他适合你显卡的版本。
2. 部署Qwen3-ASR-0.6B语音识别模型
现在我们来部署核心的语音识别模型。Qwen3-ASR-0.6B是一个相当厉害的模型,它支持52种语言和方言,包括普通话、粤语、英语、日语等,而且在小尺寸模型里效果很不错。
2.1 创建模型加载脚本
我们先创建一个Python文件来加载和使用语音识别模型。在你的项目文件夹里创建一个名为asr_model.py的文件:
import torch
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor
import warnings
warnings.filterwarnings("ignore")
class Qwen3ASR:
def __init__(self, model_name="Qwen/Qwen3-ASR-0.6B"):
"""
初始化Qwen3-ASR模型
model_name: 模型名称,默认使用0.6B版本
"""
print("正在加载语音识别模型,这可能需要几分钟...")
# 加载处理器(负责音频预处理)
self.processor = AutoProcessor.from_pretrained(model_name)
# 加载模型
self.model = AutoModelForSpeechSeq2Seq.from_pretrained(
model_name,
torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32,
low_cpu_mem_usage=True,
use_safetensors=True
)
# 如果有GPU,就把模型放到GPU上
if torch.cuda.is_available():
self.model = self.model.to("cuda")
print("模型已加载到GPU")
else:
print("使用CPU运行模型")
# 设置模型为评估模式
self.model.eval()
print("模型加载完成!")
def transcribe(self, audio_path):
"""
将音频文件转成文字
audio_path: 音频文件路径
"""
try:
# 读取音频文件
import librosa
audio, sr = librosa.load(audio_path, sr=16000)
# 处理音频输入
inputs = self.processor(
audio,
sampling_rate=16000,
return_tensors="pt"
)
# 如果有GPU,把输入数据也放到GPU上
if torch.cuda.is_available():
inputs = {k: v.to("cuda") for k, v in inputs.items()}
# 生成文字(语音识别)
with torch.no_grad():
generated_ids = self.model.generate(**inputs, max_new_tokens=256)
# 将生成的ID解码成文字
transcription = self.processor.batch_decode(
generated_ids,
skip_special_tokens=True
)[0]
return transcription
except Exception as e:
return f"识别失败: {str(e)}"
# 测试一下模型是否能正常工作
if __name__ == "__main__":
# 创建模型实例
asr = Qwen3ASR()
# 这里可以放一个测试音频文件的路径
# test_audio = "test.wav"
# result = asr.transcribe(test_audio)
# print(f"识别结果: {result}")
print("模型初始化成功!可以开始使用了。")
这个脚本做了几件事:
- 定义了一个
Qwen3ASR类来封装模型加载和识别功能 - 自动检测是否有GPU,有就用GPU加速
- 提供了
transcribe方法来识别单个音频文件 - 包含简单的错误处理
第一次运行时会下载模型文件(大约2.4GB),需要一些时间和网络带宽。下载完成后,后续使用就不需要再下载了。
2.2 测试模型识别效果
为了确保模型能正常工作,我们可以先做个简单的测试。准备一个短的音频文件(比如用手机录一段话,保存为WAV格式),然后修改上面的测试代码:
# 在asr_model.py文件的最后,修改测试部分
if __name__ == "__main__":
asr = Qwen3ASR()
# 替换成你的测试音频文件路径
test_audio = "你的测试音频.wav"
print("开始识别音频...")
result = asr.transcribe(test_audio)
print(f"识别结果: {result}")
运行这个脚本,看看能不能正确识别出音频内容。如果一切正常,你就成功部署了语音识别模型!
3. 设置PostgreSQL数据库
接下来我们要设置数据库,用来存储识别结果。PostgreSQL是一个功能强大的开源数据库,很适合我们这个场景。
3.1 安装和配置PostgreSQL
如果你还没有安装PostgreSQL,可以按照以下步骤安装:
在Ubuntu/Debian系统上:
sudo apt update
sudo apt install postgresql postgresql-contrib
sudo systemctl start postgresql
在macOS上(使用Homebrew):
brew install postgresql
brew services start postgresql
在Windows上: 可以从PostgreSQL官网下载安装程序,按照向导安装即可。
安装完成后,我们需要创建一个数据库和表来存储识别结果。
3.2 创建数据库和表
首先登录到PostgreSQL:
sudo -u postgres psql
然后在PostgreSQL命令行中执行以下SQL语句:
-- 创建一个新数据库
CREATE DATABASE speech_recognition;
-- 连接到这个数据库
\c speech_recognition;
-- 创建存储识别结果的表
CREATE TABLE transcriptions (
id SERIAL PRIMARY KEY,
audio_filename VARCHAR(255) NOT NULL,
transcription TEXT NOT NULL,
language VARCHAR(50),
confidence FLOAT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 创建一个索引,方便按文件名查询
CREATE INDEX idx_audio_filename ON transcriptions(audio_filename);
-- 查看表结构
\d transcriptions;
-- 退出
\q
这个表设计了几个字段:
id:每条记录的唯一标识audio_filename:音频文件名transcription:识别出的文字内容language:识别出的语言(可选)confidence:识别置信度(可选)created_at和updated_at:记录创建和更新时间
3.3 创建数据库操作类
现在我们来创建一个Python类,专门处理数据库操作。创建一个名为database.py的文件:
import psycopg2
from psycopg2 import sql
from datetime import datetime
import os
class TranscriptionDB:
def __init__(self, dbname="speech_recognition", user="postgres",
password="your_password", host="localhost", port="5432"):
"""
初始化数据库连接
请根据你的PostgreSQL配置修改这些参数
"""
self.connection = None
try:
self.connection = psycopg2.connect(
dbname=dbname,
user=user,
password=password,
host=host,
port=port
)
print("数据库连接成功!")
except Exception as e:
print(f"数据库连接失败: {e}")
def save_transcription(self, audio_filename, transcription, language=None, confidence=None):
"""
保存识别结果到数据库
"""
if not self.connection:
return False, "数据库未连接"
try:
cursor = self.connection.cursor()
# 插入数据
insert_query = """
INSERT INTO transcriptions
(audio_filename, transcription, language, confidence, created_at, updated_at)
VALUES (%s, %s, %s, %s, %s, %s)
RETURNING id
"""
current_time = datetime.now()
cursor.execute(insert_query, (
audio_filename,
transcription,
language,
confidence,
current_time,
current_time
))
# 获取插入的ID
record_id = cursor.fetchone()[0]
# 提交事务
self.connection.commit()
cursor.close()
return True, f"记录保存成功,ID: {record_id}"
except Exception as e:
self.connection.rollback()
return False, f"保存失败: {str(e)}"
def get_transcription(self, audio_filename=None, limit=10):
"""
查询识别记录
"""
if not self.connection:
return []
try:
cursor = self.connection.cursor()
if audio_filename:
# 查询特定文件
query = """
SELECT id, audio_filename, transcription, language,
confidence, created_at
FROM transcriptions
WHERE audio_filename = %s
ORDER BY created_at DESC
"""
cursor.execute(query, (audio_filename,))
else:
# 查询所有记录(按时间倒序)
query = """
SELECT id, audio_filename, transcription, language,
confidence, created_at
FROM transcriptions
ORDER BY created_at DESC
LIMIT %s
"""
cursor.execute(query, (limit,))
# 获取结果
results = cursor.fetchall()
cursor.close()
# 将结果转换为字典列表
records = []
for row in results:
record = {
'id': row[0],
'audio_filename': row[1],
'transcription': row[2],
'language': row[3],
'confidence': row[4],
'created_at': row[5].strftime('%Y-%m-%d %H:%M:%S') if row[5] else None
}
records.append(record)
return records
except Exception as e:
print(f"查询失败: {e}")
return []
def close(self):
"""关闭数据库连接"""
if self.connection:
self.connection.close()
print("数据库连接已关闭")
# 测试数据库连接
if __name__ == "__main__":
# 修改这里的参数匹配你的PostgreSQL配置
db = TranscriptionDB(
dbname="speech_recognition",
user="postgres",
password="你的密码", # 替换成你的密码
host="localhost",
port="5432"
)
# 测试保存
success, message = db.save_transcription(
audio_filename="test.wav",
transcription="这是一个测试识别结果",
language="zh-CN",
confidence=0.95
)
print(f"保存测试: {success}, {message}")
# 测试查询
records = db.get_transcription(limit=5)
print(f"查询到 {len(records)} 条记录")
for record in records:
print(f"ID: {record['id']}, 文件: {record['audio_filename']}")
db.close()
运行这个测试前,记得修改数据库连接参数,特别是密码要改成你安装PostgreSQL时设置的密码。
4. 构建完整的Web应用
现在我们把语音识别模型和数据库连接起来,创建一个完整的Web应用。这个应用会有个简单的网页界面,你可以上传音频文件,系统会自动识别并保存结果。
4.1 创建主应用文件
创建一个名为app.py的文件,这是我们的主应用:
import gradio as gr
import os
import tempfile
from datetime import datetime
from asr_model import Qwen3ASR
from database import TranscriptionDB
import warnings
warnings.filterwarnings("ignore")
# 初始化组件
print("正在初始化系统...")
asr_model = Qwen3ASR()
db = TranscriptionDB(
dbname="speech_recognition",
user="postgres",
password="你的密码", # 替换成你的密码
host="localhost",
port="5432"
)
def process_audio(audio_file, use_db=True):
"""
处理音频文件:识别语音并保存到数据库
audio_file: 上传的音频文件
use_db: 是否保存到数据库
"""
if audio_file is None:
return "请先上传或录制音频文件", ""
try:
# 获取文件名
filename = os.path.basename(audio_file)
print(f"开始处理音频文件: {filename}")
# 使用模型进行语音识别
transcription = asr_model.transcribe(audio_file)
# 简单判断语言(这里只是示例,实际可以更精确)
language = "未知"
if any(char in transcription for char in ["的", "是", "在", "了"]):
language = "中文"
elif any(word in transcription.lower() for word in ["the", "is", "and", "to"]):
language = "英文"
result_text = f"识别结果:\n{transcription}\n\n识别语言:{language}"
# 保存到数据库
db_result = ""
if use_db and db.connection:
success, message = db.save_transcription(
audio_filename=filename,
transcription=transcription,
language=language,
confidence=0.9 # 这里可以替换为实际的置信度
)
if success:
db_result = f"✅ 已保存到数据库({message})"
else:
db_result = f"⚠️ 数据库保存失败:{message}"
else:
db_result = "ℹ️ 未保存到数据库(功能已关闭)"
return result_text, db_result
except Exception as e:
error_msg = f"处理失败:{str(e)}"
print(error_msg)
return error_msg, ""
def query_records(filename_filter="", limit=10):
"""
查询数据库中的记录
"""
try:
if filename_filter:
records = db.get_transcription(audio_filename=filename_filter)
else:
records = db.get_transcription(limit=limit)
if not records:
return "未找到相关记录"
# 格式化显示结果
result = "查询结果:\n\n"
for i, record in enumerate(records, 1):
result += f"{i}. 文件:{record['audio_filename']}\n"
result += f" 识别内容:{record['transcription'][:50]}...\n"
result += f" 语言:{record['language']}\n"
result += f" 时间:{record['created_at']}\n"
result += " " + "-"*40 + "\n"
return result
except Exception as e:
return f"查询失败:{str(e)}"
# 创建Gradio界面
with gr.Blocks(title="语音识别与数据库同步系统") as demo:
gr.Markdown("# 🎤 Qwen3-ASR-0.6B 语音识别系统")
gr.Markdown("上传或录制音频,自动识别语音内容并保存到PostgreSQL数据库")
with gr.Tab("语音识别"):
with gr.Row():
with gr.Column():
audio_input = gr.Audio(
sources=["upload", "microphone"],
type="filepath",
label="上传或录制音频"
)
use_db_checkbox = gr.Checkbox(
label="保存到数据库",
value=True,
info="勾选后将识别结果自动保存到数据库"
)
process_btn = gr.Button("开始识别", variant="primary")
with gr.Column():
output_text = gr.Textbox(
label="识别结果",
lines=10,
placeholder="识别结果将显示在这里..."
)
db_status = gr.Textbox(
label="数据库状态",
lines=2,
placeholder="数据库操作状态..."
)
# 绑定按钮事件
process_btn.click(
fn=process_audio,
inputs=[audio_input, use_db_checkbox],
outputs=[output_text, db_status]
)
with gr.Tab("查询记录"):
with gr.Row():
with gr.Column():
filename_filter = gr.Textbox(
label="按文件名筛选(可选)",
placeholder="输入完整的文件名,如:meeting.wav"
)
limit_slider = gr.Slider(
minimum=1,
maximum=50,
value=10,
step=1,
label="显示记录数量"
)
query_btn = gr.Button("查询记录", variant="secondary")
with gr.Column():
query_result = gr.Textbox(
label="查询结果",
lines=15,
placeholder="查询结果将显示在这里..."
)
# 绑定查询事件
query_btn.click(
fn=query_records,
inputs=[filename_filter, limit_slider],
outputs=[query_result]
)
with gr.Tab("系统信息"):
gr.Markdown("### 系统配置信息")
info_text = f"""
**语音识别模型**:Qwen3-ASR-0.6B
**支持语言**:52种语言和方言
**数据库**:PostgreSQL
**运行设备**:{'GPU' if torch.cuda.is_available() else 'CPU'}
### 使用说明
1. 在"语音识别"标签页上传或录制音频
2. 点击"开始识别"按钮进行语音转文字
3. 识别结果会自动保存到数据库(如果开启该功能)
4. 在"查询记录"标签页可以查看历史记录
### 支持的音频格式
- WAV、MP3、M4A、FLAC等常见格式
- 建议使用16kHz采样率的音频以获得最佳效果
"""
gr.Markdown(info_text)
# 启动应用
if __name__ == "__main__":
print("应用启动中...")
print("请在浏览器中打开 http://localhost:7860 访问系统")
# 设置共享选项,允许局域网访问
demo.launch(
server_name="0.0.0.0", # 允许所有网络接口访问
server_port=7860, # 端口号
share=False, # 不创建公开链接
debug=False # 关闭调试模式
)
4.2 运行完整系统
现在一切准备就绪,让我们启动完整的系统:
python app.py
你会看到类似这样的输出:
正在初始化系统...
正在加载语音识别模型,这可能需要几分钟...
模型加载完成!
数据库连接成功!
应用启动中...
请在浏览器中打开 http://localhost:7860 访问系统
Running on local URL: http://0.0.0.0:7860
打开浏览器,访问 http://localhost:7860,你会看到一个漂亮的网页界面。
5. 使用你的语音识别系统
现在让我们来看看怎么使用这个系统。界面很简单,主要分为三个部分:
5.1 语音识别功能
在"语音识别"标签页,你可以:
- 上传音频文件:点击上传区域,选择你的音频文件(支持WAV、MP3、M4A等格式)
- 直接录制音频:点击麦克风图标,可以直接录制声音
- 开始识别:上传或录制完成后,点击"开始识别"按钮
- 查看结果:识别结果会显示在右侧文本框中
- 自动保存:如果勾选了"保存到数据库",结果会自动存入PostgreSQL
实际使用示例: 假设你有一个会议录音meeting.wav,上传这个文件后点击识别,系统会显示类似这样的结果:
识别结果:
今天我们讨论了第三季度的销售计划,需要在下周五前完成初步方案。技术部门表示新功能开发进度正常,预计能按时交付。
识别语言:中文
同时数据库状态会显示:
✅ 已保存到数据库(记录保存成功,ID: 42)
5.2 查询历史记录
在"查询记录"标签页,你可以:
- 查看所有记录:不输入任何筛选条件,直接点击"查询记录"
- 按文件名筛选:输入完整的文件名,如
meeting.wav,只查询该文件的记录 - 控制显示数量:通过滑块选择要显示多少条记录
查询结果会以清晰的格式显示,包括文件名、识别内容(前50个字符)、语言和时间戳。
5.3 实际应用场景
这个系统可以在很多实际场景中使用:
会议记录自动化:
- 会议结束后,上传录音文件
- 系统自动转成文字并保存
- 随时查询历史会议记录
采访转录:
- 记者采访后上传录音
- 快速获得文字稿
- 所有采访记录集中管理
学习笔记:
- 录制课堂内容或学习心得
- 自动转成文字笔记
- 建立个人知识库
客服录音分析:
- 上传客服通话录音
- 分析客户常见问题
- 优化客服话术
6. 系统优化与扩展建议
基本的系统已经搭建好了,但你可能还想让它更强大、更好用。这里给你一些优化和扩展的建议:
6.1 性能优化
如果你的音频文件很大或者很多,可以考虑这些优化:
# 在asr_model.py中添加批量处理功能
def transcribe_batch(self, audio_paths):
"""
批量处理多个音频文件
"""
results = []
for audio_path in audio_paths:
result = self.transcribe(audio_path)
results.append({
'filename': os.path.basename(audio_path),
'transcription': result
})
return results
# 在app.py中添加批量上传功能
def process_batch_audios(files, use_db=True):
"""
批量处理多个音频文件
"""
all_results = []
for file in files:
result, db_status = process_audio(file, use_db)
all_results.append(f"文件: {os.path.basename(file)}\n{result}\n")
return "\n".join(all_results)
6.2 功能扩展
你可以根据需要添加更多功能:
1. 支持更多音频格式:
# 添加音频格式转换功能
def convert_audio_format(input_path, output_format="wav"):
"""
将音频转换为标准格式
"""
import subprocess
output_path = input_path.replace(os.path.splitext(input_path)[1], f".{output_format}")
subprocess.run([
"ffmpeg", "-i", input_path,
"-ar", "16000", # 设置采样率
"-ac", "1", # 单声道
output_path
])
return output_path
2. 添加语言检测:
# 更精确的语言检测
def detect_language(text):
"""
检测文本语言
"""
# 这里可以使用专门的语言检测库
# 例如 langdetect 或 fasttext
from langdetect import detect
try:
lang = detect(text)
lang_map = {
'zh-cn': '中文',
'en': '英文',
'ja': '日文',
'ko': '韩文'
# 添加更多语言映射
}
return lang_map.get(lang, lang)
except:
return "未知"
3. 导出功能:
# 添加导出到文件的功能
def export_to_file(records, format="txt"):
"""
将记录导出为文件
"""
if format == "txt":
content = ""
for record in records:
content += f"文件: {record['audio_filename']}\n"
content += f"时间: {record['created_at']}\n"
content += f"内容: {record['transcription']}\n"
content += "="*50 + "\n"
with open("transcriptions.txt", "w", encoding="utf-8") as f:
f.write(content)
return "导出成功: transcriptions.txt"
elif format == "csv":
import csv
with open("transcriptions.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow(["文件名", "内容", "语言", "时间"])
for record in records:
writer.writerow([
record['audio_filename'],
record['transcription'],
record['language'],
record['created_at']
])
return "导出成功: transcriptions.csv"
6.3 错误处理与日志
为了让系统更稳定,可以添加更好的错误处理和日志:
import logging
from datetime import datetime
# 设置日志
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler(f"asr_system_{datetime.now().strftime('%Y%m%d')}.log"),
logging.StreamHandler()
]
)
logger = logging.getLogger(__name__)
# 在关键函数中添加日志记录
def process_audio_with_logging(audio_file, use_db=True):
logger.info(f"开始处理音频文件: {audio_file}")
try:
# ... 原有的处理逻辑 ...
logger.info(f"处理成功: {audio_file}")
return result_text, db_result
except Exception as e:
logger.error(f"处理失败 {audio_file}: {str(e)}")
return f"处理失败:{str(e)}", ""
7. 总结
通过这篇教程,我们完成了一个完整的语音识别与数据同步系统。让我们回顾一下主要步骤和收获:
7.1 我们完成了什么
- 部署了先进的语音识别模型:使用Qwen3-ASR-0.6B,它支持52种语言和方言,识别准确率高
- 搭建了数据库系统:使用PostgreSQL存储识别结果,方便管理和查询
- 创建了用户友好的界面:基于Gradio的Web界面,操作简单直观
- 实现了自动化流程:上传音频→自动识别→自动保存,一气呵成
7.2 这个系统的优势
- 易用性:不需要懂AI技术,网页界面操作简单
- 实用性:识别结果自动保存,建立可查询的语音资料库
- 扩展性:代码结构清晰,容易添加新功能
- 成本低:基于开源技术,没有使用费用
7.3 下一步可以做什么
如果你想让这个系统更加强大,可以考虑:
- 添加用户管理:支持多用户,每个人有自己的识别记录
- 集成云存储:把音频文件也保存到云存储(如AWS S3、阿里云OSS)
- 添加分析功能:对识别结果进行关键词提取、情感分析等
- 开发API接口:让其他系统也能调用你的语音识别服务
- 优化识别效果:针对特定场景(如会议、采访)进行模型微调
7.4 遇到问题怎么办
如果在使用过程中遇到问题,可以:
- 检查模型下载:第一次运行需要下载模型,确保网络通畅
- 检查数据库连接:确认PostgreSQL服务正在运行,密码正确
- 查看日志文件:系统会生成日志文件,里面有详细错误信息
- 调整音频格式:尝试将音频转换为WAV格式,16kHz采样率
这个系统只是一个起点,你可以根据自己的需求不断改进和扩展。无论是用于工作自动化,还是学习研究,它都能为你节省大量时间,让你的语音数据变得更有价值。
现在,你可以开始使用这个系统了。上传你的第一个音频文件,体验一下自动语音识别和保存的便利吧!
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐



所有评论(0)