最近尽调项目较多, 而且因为疫情原因而转至腾讯电话会议进行访谈,为了节省会议记录的时间,我将会议内容进行了录音(合法的情况下)并转换为文字的形式方便整理笔记。 我试过不同的现成产品,要么是收费贼贵,要么转换质量慎忧,于是乎,还是自己弄一个比较直接。
终端下直接输入以下命令即可
docker-compose up -d --build

注意:首次运行需要初始化,可能会转换失败。
database.py用于初始化sqlalchemy,sqlite3models.py用于数据字段的创建,我最开始是先创建了Audio数据表用于记录上传文件的信息,Data数据表是后来要实现paddlespeech的转换功能才添加进去的,然后以audio_id作为两个数据表的关联字段。
schemas.py里面是用到了pydantic的, 这里主要是数据的输入、输出都希望遵循到pydantic的格式,这是fastapi独有的crud.py用于数据库的写入和读取(最开始是不清楚需要什么写入和读取function的,后续慢慢地添加进去)dropzone.js 实现了drag&drop上传文件的功能,然后后端利用FastAPI post响应,这里后端是通过FastAPI BackgroundTasks来实现后台FFmpeg分割音频文件的功能。 但音频转文字的功能非常好耗时,所以不能用BackgroundTasks来实现,所以后续引入了Celery来解决。 (Celery这里有个大坑,就是传递的任务参数中不能有object类型的,我试传递了sqlalchemy Session 和 Path路径都是失败)docker-compose.yml文件$ claude mcp add FastAPI-PaddleSpeech-Audio-To-Text \
-- python -m otcore.mcp_server <graph>