零代码快速搭建档案音频管理系统:全流程实操手册

准备工作

需提前安装指定工具,所有下载/命令均为可直接执行内容:

  • 操作系统:任意Windows/macOS/Linux
  • Python 3.10+:Windows下载地址https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe;macOS执行brew install python@3.10;Linux执行apt install python3.10
  • FFmpeg:Windows下载地址https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-n6.0-latest-win64-gpl-6.0.zip,解压后将bin文件夹加入系统环境变量;macOS执行brew install ffmpeg;Linux执行apt install ffmpeg
  • Python依赖包:需安装fastapi、uvicorn、pydub、python-multipart

系统搭建步骤

步骤1:初始化项目环境

打开终端执行以下命令,创建项目并配置虚拟环境:

```bash mkdir archive_audio_system && cd archive_audio_system python -m venv venv Windows激活虚拟环境:venv\Scripts\activate macOS/Linux激活虚拟环境:source venv/bin/activate pip install fastapi uvicorn[standard] pydub python-multipart ```

步骤2:编写核心代码

在项目文件夹下创建main.py文件,复制以下完整代码(无需修改,直接运行):

```python from fastapi import FastAPI, UploadFile, File, HTTPException from pydantic import BaseModel import sqlite3 import os from datetime import datetime import shutil 初始化FastAPI应用 app = FastAPI(title="档案音频管理系统") 系统配置 UPLOAD_DIR = "./audio_files" 音频存储目录 DB_PATH = "./archive.db" 数据库文件路径 初始化存储目录和数据库 os.makedirs(UPLOAD_DIR, exist_ok=True) def init_db(): conn = sqlite3.connect(DB_PATH) cursor = conn.cursor() 创建音频档案表 cursor.execute(""" CREATE TABLE IF NOT EXISTS audio_files ( id INTEGER PRIMARY KEY AUTOINCREMENT, filename TEXT NOT NULL, file_path TEXT NOT NULL, duration REAL, upload_time DATETIME DEFAULT CURRENT_TIMESTAMP, tags TEXT ) """) conn.commit() conn.close() init_db() 上传请求参数模型 class AudioUploadRequest(BaseModel): tags: str = "" 音频标签,便于后续检索 音频上传接口 @app.post("/api/upload-audio") async def upload_audio(file: UploadFile = File(...), request: AudioUploadRequest): 验证音频格式(仅支持4种常用格式) if not file.filename.lower().endswith(('.mp3', '.wav', '.flac', '.m4a')): raise HTTPException(status_code=400, detail="仅支持mp3、wav、flac、m4a格式") 保存音频文件到本地 file_path = os.path.join(UPLOAD_DIR, file.filename) with open(file_path, "wb") as buffer: shutil.copyfileobj(file.file, buffer) 计算音频时长(单位:秒) try: from pydub import AudioSegment audio = AudioSegment.from_file(file_path) duration = round(len(audio) / 1000, 2) except Exception as e: raise HTTPException(status_code=500, detail=f"获取音频时长失败:{str(e)}") 写入数据库 conn = sqlite3.connect(DB_PATH) cursor = conn.cursor() cursor.execute(""" INSERT INTO audio_files (filename, file_path, duration, tags) VALUES (?, ?, ?, ?) """, (file.filename, file_path, duration, request.tags)) conn.commit() conn.close() return {"code": 200, "message": "上传成功", "data": {"id": cursor.lastrowid, "duration": duration}} 按标签查询音频接口 @app.get("/api/query-audio") async def query_audio(tag: str = None): conn = sqlite3.connect(DB_PATH) cursor = conn.cursor() 若提供标签则模糊检索,否则返回全部音频 if tag: cursor.execute("SELECT FROM audio_files WHERE tags LIKE ?", (f"%{tag}%",)) else: cursor.execute("SELECT FROM audio_files") 格式化查询结果 results = cursor.fetchall() audio_list = [] for row in results: audio_list.append({ "id": row[0], "filename": row[1], "duration": row[3], "upload_time": row[4], "tags": row[5] }) conn.close() return {"code": 200, "data": audio_list} 启动服务 if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8000, reload=True) ```

步骤3:启动系统并访问

激活虚拟环境后,执行以下命令启动服务:

```bash python main.py ```

服务启动成功后,终端会显示:Uvicorn running on http://0.0.0.0:8000,此时打开浏览器访问http://localhost:8000/docs,即可看到系统的交互式操作界面。

核心操作指南(必看)

① 上传音频档案

零代码快速搭建档案音频管理系统:全流程实操手册

在/docs页面找到/api/upload-audio接口,点击「Try it out」;点击「Choose File」选择本地音频,在「tags」输入框填写分类标签(如「会议录音」「培训音频」);点击「Execute」,等待返回code=200即为上传成功,单文件建议不超过100MB,避免上传超时。

② 按标签检索音频

找到/api/query-audio接口,点击「Try it out」;在「tag」输入框填写要检索的关键词(如「会议」);点击「Execute」,下方将返回所有匹配标签的音频档案,包含ID、文件名、时长、上传时间等信息。

③ 可选扩展配置

若需调整服务端口,修改启动代码中的port=8000为未被占用的端口(如8080);若需支持更多音频格式,在上传验证的后缀列表中添加对应格式;若需批量上传,可在upload接口中添加多文件处理逻辑。

局域网共享访问(可选)

若需让同局域网的其他设备访问,修改启动代码中的host为当前设备的局域网IP(如192.168.1.105):

```python uvicorn.run(app, host="192.168.1.105", port=8000, reload=True) ```

Windows需在防火墙中开放8000端口,macOS/Linux无需额外配置,局域网内其他设备通过http://192.168.1.105:8000/docs即可访问系统。

AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统