diff --git a/.DS_Store b/.DS_Store index 4dbf4df..debd41f 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/README.md b/README.md index 3ac1ebc..c985a00 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,83 @@ -# tiangai100-sensevoice-funasr -# tiangai100-whisper +# tiangai100-sensevoice-funasr & tiangai100-whisper -【语音识别】 +## 天数智芯 天垓100 语音识别 +该模型测试框架在天垓100加速卡上,适配 sensevoice 和 whisper 大类下的模型,将语音信号转换为文本。 -funasr可正常照nvidia方式使用。 +SenseVoice 是由 FunAudioLLM 开发的一款开源音频处理模型,是阿里巴巴通义实验室推出的语音技术框架的核心模型之一,为高效、准确的多语言语音识别和音频分析工具。 +该 sensevoice 测试框架支持 Sensevoice-Small 和 Sensevoice-Large 模型。 -sensevoice测试框架支持Sensevoice-Small和Sensevoice-Large模型 +whisper 模型是 OpenAI 发布的一个通用语音识别模型,具有多语言支持、多任务学习等特点,采用编码器 - 解码器的 Transformer 结构。 +该whisper测试框架支持tiny、base、small、medium、large、large-v2、large-v3等。 -【天垓100上模型测试情况】 -| 模型大类 | 模型名称 | 天垓100运行时间/s | Nvidia A100运行时间/s | +## sensevoice 模型测试服务原理 +通过 AutoModel (funasr 库提供的一个自动模型加载工具)加载 SenseVoice 模型,然后用 model.generate(...) 调用模型进行语音识别,其中 generate 是模型封装好的接口,内部实现了完整的语音识别流程。 + +## whisper 模型测试服务原理 +pipeline 为 Hugging Face transformers 库提供的高层 API ,用于快速构建特定任务的处理管道。pipeline 内部封装了语音预处理(如特征提取)、模型推理、结果后处理(如文本解码)等步骤,简化了语音识别的调用流程。代码中调用 pipeline 自动完成从音频数据到文本的转换。 + +## 如何使用 sensevoice 和 whisper 测试框架 +代码实现了一个接收音频数据并返回识别文本的语音识别 HTTP 服务,并基于 corex:3.2.1 基础镜像,将该 HTTP 服务重新打包成 docker 镜像,通过 k8s 集群sut容器去请求这个 HTTP 服务。 + +## sensevoice 和 whisper 语音识别模型测试服务请求示例 +```python +import requests + +# 服务健康检查 +response = requests.get(f"{sut_url}/health") +print(response.status_code, response.text) + +# 服务地址(根据实际部署情况修改IP和端口,端口为80) +url = f"{sut_url}/recognition" +#url = "http://localhost:80/recognition" + +# 读取音频文件(需是服务支持的格式,如wav等) +with open("audio.wav", "rb") as f: + audio_data = f.read() + +# 请求参数(可选,指定语言,如中文为'zh') +params = { + "language": "zh" # 支持的语言代码需参考whisper模型的支持列表 +} + +# 发送POST请求 +response = requests.post( + url, + data=audio_data, # 音频数据放在请求体中 + params=params # 参数放在URL查询字符串中 +) +# 请求体(data 参数)需要传入二进制音频数据 +# 语言参数(language)是可选的,默认值为 en(英语) +# 支持的语言代码可参考 whisper 模型的官方文档(如中文是 zh,日语是 ja 等) +# 确保音频文件格式被模型支持(whisper 通常支持 wav、mp3 等常见格式) + +# 解析响应结果 +if response.status_code == 200: + result = response.json() + print("识别状态:", result["RecognitionStatus"]) + print("识别结果:", result["DisplayText"]) +else: + print("请求失败,状态码:", response.status_code) + +``` +成功时返回 JSON 格式的响应 +```json +{ + "RecognitionStatus": "Success", + "DisplayText": "识别到的文本内容" +} +``` + +## 天垓100 SenseVoiceSmall 模型测试结果 +测试方式为在 天垓100 加速卡和 Nvidia A100 上对同一段音频(约10s)进行语音识别任务,获取运行时间 +| 模型类型 | 模型名称 | 天垓100运行时间/s | Nvidia A100运行时间/s | |------------|----------------|-------------------|-----------------------| | sensevoice | SenseVoiceSmall | 0.2 | 0.06 | + + +## 天垓100 whisper-tiny 模型测试结果 +测试方式为在 天垓100 加速卡和 CPU 上对同一段长音频(约9120s)进行语音识别任务,获取运行时间,1-cer指标 +| 模型类型 | 模型名称 | 天垓 A100对比CPU加速比 | 天垓 A100 1-cer | CPU 1-cer | +|----------|-------------|------------------------|-----------------|-----------| +| whisper | whisper-tiny | 3.24x | 0.792 | 0.794 | + + diff --git a/Dockerfile_sensevoice b/bi_v100-sensevoice/Dockerfile_sensevoice similarity index 100% rename from Dockerfile_sensevoice rename to bi_v100-sensevoice/Dockerfile_sensevoice diff --git a/bi_v100-sensevoice/README.md b/bi_v100-sensevoice/README.md new file mode 100644 index 0000000..a4ef1d3 --- /dev/null +++ b/bi_v100-sensevoice/README.md @@ -0,0 +1,5 @@ +# tiangai100-sensevoice-funasr + +【语音识别】 + +funasr可正常照nvidia方式使用。 diff --git a/constraints_sensevoice.txt b/bi_v100-sensevoice/constraints_sensevoice.txt similarity index 100% rename from constraints_sensevoice.txt rename to bi_v100-sensevoice/constraints_sensevoice.txt diff --git a/launch_sensevoice.sh b/bi_v100-sensevoice/launch_sensevoice.sh similarity index 100% rename from launch_sensevoice.sh rename to bi_v100-sensevoice/launch_sensevoice.sh diff --git a/requirements_sensevoice.txt b/bi_v100-sensevoice/requirements_sensevoice.txt similarity index 100% rename from requirements_sensevoice.txt rename to bi_v100-sensevoice/requirements_sensevoice.txt diff --git a/server_sensevoice.py b/bi_v100-sensevoice/server_sensevoice.py similarity index 100% rename from server_sensevoice.py rename to bi_v100-sensevoice/server_sensevoice.py diff --git a/bi_v100-whisper/.DS_Store b/bi_v100-whisper/.DS_Store new file mode 100644 index 0000000..4dbf4df Binary files /dev/null and b/bi_v100-whisper/.DS_Store differ diff --git a/Dockerfile_whisper b/bi_v100-whisper/Dockerfile_whisper similarity index 100% rename from Dockerfile_whisper rename to bi_v100-whisper/Dockerfile_whisper diff --git a/asr_server_whisper.py b/bi_v100-whisper/asr_server_whisper.py similarity index 100% rename from asr_server_whisper.py rename to bi_v100-whisper/asr_server_whisper.py diff --git a/launch_service b/bi_v100-whisper/launch_service similarity index 100% rename from launch_service rename to bi_v100-whisper/launch_service diff --git a/whisper-tiny/.msc b/bi_v100-whisper/whisper-tiny/.msc similarity index 100% rename from whisper-tiny/.msc rename to bi_v100-whisper/whisper-tiny/.msc diff --git a/whisper-tiny/.mv b/bi_v100-whisper/whisper-tiny/.mv similarity index 100% rename from whisper-tiny/.mv rename to bi_v100-whisper/whisper-tiny/.mv