API 文档
ISO 27001SOC 2 CertifiedGDPR Compliant

AI 音频检测 API

用于将 TruthScan AI 音频检测 API 集成到您的应用中的完整文档。

无需编写代码即可体验,请访问我们的 FastAPI 接口: https://detect-audio.truthscan.com/docs

认证

TruthScan 使用 API 密钥进行认证,您可以在 开发者门户页面顶部.

所有 API 请求必须在请求体中包含 API 密钥,如下所示:

{
  "key": "YOUR API KEY GOES HERE"
}

请将 YOUR API KEY GOES HERE 替换为您的 API 密钥。

AI 音频检测

检测流程(3 步)

AI 音频检测流程包括:

  • 获取上传 URL
  • 上传音频
  • 提交检测

1. 获取预签名上传 URL

通过 API 请求预签名 URL,用于安全上传音频文件。

支持格式

MP3, WAV, M4A, FLAC, OGG, MP4

重要提示

获取 URL 时文件名不能包含空格。

GET https://detect-audio.truthscan.com/get-presigned-url?file_name=example.mp3

示例请求

curl -X GET 'https://detect-audio.truthscan.com/get-presigned-url?file_name=example.mp3' \
--header 'apikey: YOUR API KEY GOES HERE'

示例响应

{
  "status": "success",
  "presigned_url": "https://audio-presigned-upload.ai-assets-cdn.com?file_name=581d47c7-3ef4-42af-88d9-6dab6bf69389_20250611-121955_example.mp3...",
  "file_path": "/uploads/581d47c7-3ef4-42af-88d9-6dab6bf69389_20250901-090201_example.mp3"
}

2. 上传音频

使用 presigned_url 通过 PUT 请求上传音频文件,并确保 Content-Type 正确。

重要提示

上传时文件名不能包含空格。

示例请求

curl -X PUT 'https://audio-presigned-upload.ai-assets-cdn.com?file_name=581d47c7-3ef4-42af-88d9-6dab6bf69389_20250611-121955_example.mp3...' \
  --header 'Content-Type: audio/<FILE_FORMAT - mp3, wav, m4a, flac, ogg, mp4>' \
  --header 'x-amz-acl: private' \
  --data-binary '@example.mp3' # Attachment

文件大小限制

  • 最小 1KB
  • 最大 100MB

上传过程中必须保持文件格式一致,成功上传将返回状态码 200。

3. 提交检测

上传完成后,使用 file_path 提交音频进行 AI 检测。

POST https://detect-audio.truthscan.com/detect

示例请求

curl -X 'POST' \
  'https://detect-audio.truthscan.com/detect' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "key": "YOUR-API-KEY-GOES-HERE",
  "url": "<FILE_PATH>",
  "document_type": "Audio",
  "analyzeUpToSeconds": 60
}'

FILE_PATH 来自第一步返回的路径。

可选参数

  • analyzeUpToSeconds: 分析前 N 秒(默认 60)
  • document_type: 文档类型(默认 Audio)
  • email: 处理通知邮箱(可选)

示例响应

{
    "id": "77565038-9e3d-4e6a-8c80-e20785be5ee9",
    "status": "pending"
}

响应中包含唯一 ID,用于查询检测状态。

查询检测状态与结果

通过 /query 接口使用 ID 查询检测状态与结果。

POST https://detect-audio.truthscan.com/query

示例请求

curl -X 'POST' \
  'https://detect-audio.truthscan.com/query' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "id": "ID-GOES-HERE"
}'

示例响应

{
    "id": "00fee5ff-a55b-42fb-b7c7-d14f05ae0769",
    "status": "done",
    "result": 0.873,
    "result_details": {
        "is_valid": true,
        "message": "processed",
        "original_duration": 123.45,
        "is_truncated": true,
        "truncated_duration": 60.0,
        "mean_ai_prob": 0.873,
        "individual_chunks_ai_prob": [0.81, 0.90, 0.91]
    }
}

结果说明

  • is_valid: 音频是否有效
  • message: 处理状态信息
  • original_duration: 音频时长(秒)
  • is_truncated: 是否被截断
  • truncated_duration: 实际分析时长
  • mean_ai_prob: 整体 AI 概率评分
  • individual_chunks_ai_prob: 分段 AI 概率评分

状态包括:"pending"(排队中)、"analyzing"(分析中)、"done"(完成)、"failed"(失败)。

查询用户积分

通过请求头传入 API Key,返回用户积分信息。

GET https://detect-audio.truthscan.com/check-user-credits

示例请求

curl -X 'GET' \
  'https://detect-audio.truthscan.com/check-user-credits' \
  -H 'apikey: YOUR API KEY GOES HERE' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json'

示例响应

{
    "baseCredits": 10000,
    "boostCredits": 1000,
    "credits": 11000
}

健康检查

检查 API 服务状态。

GET https://detect-audio.truthscan.com/health

示例请求

curl -X 'GET' \
  'https://detect-audio.truthscan.com/health' \
  -H 'accept: application/json'

示例响应

{
    "status": "healthy"
}

错误说明

大多数错误来自参数错误,请检查请求格式。

错误码遵循 REST 标准:

错误码说明
400请求错误
403权限不足或积分不足
404资源不存在
405请求方法错误
406不支持的格式(需 JSON)
410资源已删除
422请求体错误或缺少参数
429请求过多
500服务器错误
503服务不可用

常见问题与解决方案

认证相关问题

"User verification failed" (403)

原因: API 密钥无效或已过期

解决方案:

  1. 确认 API 密钥正确
  2. 在账户中检查密钥是否有效
  3. 必要时重新生成 API 密钥

"Not enough credits" (403)

原因: 音频处理积分不足

解决方案:

  1. 使用 /check-user-credits 查询剩余积分
  2. 按需购买额外积分
  3. 使用 analyzeUpToSeconds 仅分析部分时长以降低消耗

输入校验问题

"Unsupported file format" (400)

原因: 提交了不支持或无效的音频格式

解决方案:

  1. 确认格式受支持(MP3、WAV、M4A、FLAC、OGG、MP4)
  2. 确认文件未损坏
  3. 上传时检查 Content-Type 是否正确

"File too large" (400)

原因: 文件超过 100MB 限制

解决方案:

  1. 将音频压缩或转换至 100MB 以下
  2. 上传前检查文件大小
  3. 可尝试使用 MP3 等更高效格式

处理问题

"Audio processing took too long"

原因: 音频处理耗时过长或发生超时

解决方案:

  1. 尝试更短或更小的音频文件
  2. 使用 analyzeUpToSeconds 仅分析前几秒
  3. 检查服务是否负载较高
  4. 数分钟后重试

/query 响应中状态为 "failed"

原因: 因多种原因处理失败

解决方案:

  1. 确认音频满足大小要求(1KB–100MB)
  2. 确认格式受支持
  3. 确认上传完成后再提交检测
  4. 若仍失败请联系支持

上传问题

"Audio upload failed" (403/400)

原因: 预签名 URL 无效或过期,或存储服务异常

解决方案:

  1. 获取预签名 URL 后尽快使用(可能过期)
  2. 确认 Content-Type 与音频格式一致
  3. 上传前移除文件名中的空格
  4. 必要时重新获取预签名 URL

"Invalid pre-signed URL" (400)

原因: 文件名含空格,或预签名 URL 过期/损坏

解决方案:

  1. 请求预签名 URL 前移除文件名中所有空格
  2. 文件名仅使用字母数字、连字符和下划线
  3. 必要时重新生成预签名 URL

需要帮助?

如需技术支持,请联系我们。

API 常见问题

关于 AI 音频检测 API 的常见问题。