openAI开源语音识别项目whisper部署完整图文教程

openAI开源语音识别项目whisper部署完整图文教程

1. 引言

OpenAI及其项目Whisper简介

OpenAI,作为人工智能领域的先锋,一直致力于推动技术的创新和普及。Whisper是他们最新推出的一款强大的语音识别工具,它不仅能准确地转录语音,还能在多种语言之间进行实时翻译,这在当前的语音识别技术中是非常罕见的,支持大部分语言,支持中文。

2. Whisper项目概述

Whisper的功能和应用场景

Whisper是一种先进的语音识别工具,能够处理大量的音视频数据并将其转换为文本。它不仅适用于通用的语音转录任务,还能在多语言环境下工作,使其在全球化的应用场景下尤为重要。例如,在多国语言的会议记录、跨文化交流、甚至在自动字幕生成等方面都有巨大的应用潜力。

为什么选择Whisper

选择Whisper的理由包括它的高精度、多语言支持能力以及开源属性。作为一个开源项目,用户可以自由地定制和扩展Whisper,使其适应特定的需求和场景。此外,Whisper背后强大的AI算法保证了其在处理复杂和各种口音的语音数据方面的优秀性能。

本地部署Whisper,免去调用第三方语音识别接口的费用。

3. 环境准备和要求

推荐linux系统,采用docker方式部署。

配置要求

模型级别 参数 仅英文模型名称 多语言模型名称 机器内存要求 速度
tiny 39 M tiny.en tiny ~1 GB ~32x
base 74 M base.en base ~1 GB ~16x
small 244 M small.en small ~2 GB ~6x
medium 769 M medium.en medium ~5 GB ~2x
large 1550 M N/A large ~10 GB 1x

可根据实际情况,选择对应的模型。内存支持GPU、CPU两种。模型参数越高,识别率越高。

所需软件和工具

Docker: 对于容器化部署,Docker是一个很好的选择。

4.部署步骤

1.根据机器配置大小,选择对应的模型

根据3中的模型配置建议,选择对应的模型级别。

2.docker部署

cpu部署脚本:

docker pull onerahmet/openai-whisper-asr-webservice:latest
docker run -d -p 9000:9000 -e ASR_MODEL=base -e ASR_ENGINE=openai_whisper onerahmet/openai-whisper-asr-webservice:latest

gpu部署脚本:

docker pull onerahmet/openai-whisper-asr-webservice:latest-gpu
docker run -d --gpus all -p 9000:9000 -e ASR_MODEL=base -e ASR_ENGINE=openai_whisper onerahmet/openai-whisper-asr-webservice:latest-gpu

请注意将脚本中ASR_MODEL的值替换成1中选好的模型。

3.浏览器访问测试

部署成功后,浏览器打开http://{ip}:9000/docs#/Endpoints/asr_asr_post API测试地址,请将{ip}替换成真实服务器IP。如果地址无法访问,请在服务器防火墙中临时开放9000端口,或者配置nginx域名反向代理9000端口,直接使用域名访问。

openAI开源语音识别项目whisper部署完整图文教程

打开测试地址后,/asr地址点击“Try it out”。

调整测试参数:

(1)音频文件如果是中文,在language项选择”zh“。

(2)audio_file选择本地的一个音视频文件。支持音视频格式:amr、mp3、mp4、mpweg、mpga、m4a、wav、webm

(3)output选择输出格式,默认txt格式。支持格式:txt、srt、json、vtt等,能够输出字幕srt格式。

调整参数后点击【Execute】,返回响应response将输出结果

下面是我上传一个amr录音文件后返回的示例:

openAI开源语音识别项目whisper部署完整图文教程

以下是java程序调用录音转文字接口的一个示例代码:

    private String audioToTextByLocalWhisper(String fullPath) {
        HttpRequest request = new HttpRequest("http://127.0.0.1:9000/asr?encode=true&task=transcribe&language=zh&word_timestamps=false&output=txt");
        request.method(Method.POST);
        request.form("audio_file",new File(fullPath));
        String body = request.execute().body();
        return body;
    }

代码中调用参数fullPath改成音视频文件磁盘全路径,使用了hutool的工具包。

5.部署建议

如果机器配置较低,比如2核4G且无GPU,不建议部署该项目用于识别中文,识别率不高,经常会将识别成同音字。高配机器推荐部署此模型,large模型识别率高,大规模识别任务时可考虑部署,节省第三方接口费用。

6.小结

总的来说,Whisper是一个强大的工具,特别适合于那些需要高精度和多语言支持的复杂语音识别任务。

正文完