Audio Query

Query audio moderation results. Supports results from the last 3 days.

Poll this endpoint to actively query audio moderation results. Results are available for up to 3 days.

Requirements

ItemSpecification
ProtocolHTTP or HTTPS
MethodPOST
EncodingUTF-8
FormatAll request and response parameters use JSON

Timeout

  • Recommended timeout: 5s
  • Response time depends on audio download time. Ensure the storage service hosting the audio is stable and reliable. Actual duration varies based on the request type and audio size.

Request

Request URL

ClusterRequest URLSupported Products
Shanghaihttp://api-audio-sh.fengkongcloud.com/query_audio/v4Chinese, Arabic
Silicon Valleyhttp://api-audio-sh.fengkongcloud.com/query_audio/v4Chinese, English, Arabic
Singaporehttp://api-audio-xjp.fengkongcloud.com/query_audio/v4Chinese, English, Arabic

Request Parameters

ParameterTypeRequiredDescription
accessKeystringYesCompany key, provided by ISHUMEI. See the onboarding email for details.
btIdstringYesUnique audio file identifier used to query the recognition result.

Response

Response Parameters

ℹ️

Parameters other than code, message, and requestId are only guaranteed to be returned when code is 1100.

ParameterTypeRequiredDescription
requestIdstringYesUnique request identifier.
btIdstringYesUnique audio identifier.
codeintYesResponse code. See Response Codes.
messagestringYesResponse message corresponding to the code.
riskLevelstringYesOverall disposition recommendation. PASS, REVIEW, or REJECT. During initial integration, it is recommended not to use results directly for blocking — adjust interception thresholds first.
audioTextstringYesFull audio-to-text transcription result.
audioTimeintYesTotal audio duration in seconds.
audioDetailjson_arrayYesAudio segment information. See audioDetail Array.
audioTagsjson_objectNoAudio tags including gender, timbre, and singing detection. Legacy compatibility field — use businessLabels instead. See audioTags Object.
requestParamsjson_objectYesPass-through field. Returns all fields under data.
auxInfojson_objectNoAuxiliary information. See auxInfo Object.

Response Codes

CodeDescription
1100Success
1101Processing
1901QPS limit exceeded
1902Invalid parameters
1903Service failure
1904Download failure
1905Decoding failure
9100Insufficient balance
9101Unauthorized operation

audioDetail Array

Each element represents an audio segment:

ParameterTypeRequiredDescription
requestIdstringYesUnique identifier for this audio segment.
audioStarttimefloatYesSegment start time relative to the audio beginning, in seconds.
audioEndtimefloatYesSegment end time relative to the audio beginning, in seconds.
audioUrlstringYesAudio segment URL (MP3 format).
riskLevelstringYesSegment risk level. PASS, REVIEW, or REJECT.
riskLabel1stringYesLevel 1 risk label.
riskLabel2stringYesLevel 2 risk label.
riskLabel3stringYesLevel 3 risk label.
riskDescriptionstringYesRisk description. For reference only — do not use for programmatic logic.
riskDetailjson_objectNoRisk detail information. See Segment riskDetail.
allLabelsjson_arrayNoAll risk labels. See Segment allLabels.
businessLabelsjson_arrayNoAll business labels. See Segment businessLabels.

Segment allLabels

Each element in the allLabels array:

ParameterTypeRequiredDescription
riskLabel1stringYesLevel 1 risk label.
riskLabel2stringYesLevel 2 risk label.
riskLabel3stringYesLevel 3 risk label.
riskDescriptionstringYesRisk description. For reference only — do not use for programmatic logic.
riskLevelstringYesRisk level: PASS, REVIEW, or REJECT.
probabilityfloatNoConfidence score (0–1). Higher values indicate higher risk probability.
riskDetailjson_objectNoRisk detail information. See Segment riskDetail.

Segment riskDetail

ParameterTypeRequiredDescription
audioTextstringNoAudio-to-text transcription result for this segment.
riskSourceintNoRisk source: 1000 (no risk), 1001 (text risk), 1003 (audio risk).
matchedListsjson_arrayNoMatched custom list information. Returned only when a custom list is hit.
matchedLists[].namestringYesName of the custom list.
matchedLists[].wordsjson_arrayYesSensitive word information from the matched list.
matchedLists[].words[].wordstringYesThe matched sensitive word.
matchedLists[].words[].positionint_arrayYesPosition of the sensitive word.
riskSegmentsjson_arrayNoHigh-risk content segments.
riskSegments[].segmentstringNoHigh-risk content segment text.
riskSegments[].positionint_arrayNoPosition of the high-risk segment.

Segment businessLabels

Each element in the businessLabels array:

ParameterTypeRequiredDescription
businessLabel1stringYesLevel 1 business label.
businessLabel2stringYesLevel 2 business label.
businessLabel3stringYesLevel 3 business label.
businessDescriptionstringYesBusiness label description. Format: "Level 1: Level 2: Level 3".
confidenceLevelintNoConfidence level (0–2). Higher values indicate greater confidence.
probabilityfloatNoConfidence score (0–1).
businessDetailjson_objectNoDetailed information. Reserved field.

audioTags Object

⚠️

This is a legacy compatibility field. Use businessLabels in audioDetail instead for new integrations.

ParameterTypeRequiredDescription
genderobjectNoGender detection result.
gender.labelstringYesGender label name (e.g., "Male", "Female").
gender.probabilityintNoGender probability (0–100). Higher values indicate greater likelihood.
timbrearrayNoVoice timbre detection results. Each element contains label and probability. Possible label values: Uncle, Young Man, Boy, Elderly Man, Queen, Mature Woman, Young Woman, Loli, Middle-aged Woman, Male, Female, No Voice.
languagearrayNoLanguage detection results. Each element contains label and probability/confidence.

Language Labels

LabelDescription
0Mandarin Chinese
1English
2Cantonese
3Tibetan
4Uyghur
5Mongolian
6Korean
-1Other languages

auxInfo Object

ParameterTypeRequiredDescription
errorCodeintYesStatus code. 2003: audio download failure. 2007: no valid data.

Examples

Request Example

{
  "accessKey": "YOUR_ACCESS_KEY",
  "btId": "1604311839040"
}

Response Example

{
  "requestId": "6a9cb980346dfea41111656a514e9109",
  "btId": "1604311839040",
  "code": 1100,
  "message": "Success",
  "riskLevel": "PASS",
  "audioDetail": [
    {
      "requestId": "6a9cb980346dfea41111656a514e9109_a0000",
      "audioStarttime": 0,
      "audioEndtime": 10,
      "audioUrl": "http://example.com/audio_segment_a0000.mp3",
      "businessLabels": [
        {
          "businessDescription": "Singing: Singing: Singing",
          "businessLabel1": "sing",
          "businessLabel2": "changge",
          "businessLabel3": "changge",
          "confidenceLevel": 2,
          "probability": 0.858334402569294
        }
      ],
      "allLabels": [],
      "riskLevel": "PASS",
      "riskLabel1": "normal",
      "riskLabel2": "",
      "riskLabel3": "",
      "riskDescription": "Normal",
      "riskDetail": {
        "audioText": ""
      }
    },
    {
      "requestId": "6a9cb980346dfea41111656a514e9109_a0001",
      "audioStarttime": 10,
      "audioEndtime": 20,
      "audioUrl": "http://example.com/audio_segment_a0001.mp3",
      "riskLevel": "PASS",
      "riskLabel1": "normal",
      "riskLabel2": "",
      "riskLabel3": "",
      "riskDescription": "Normal",
      "riskDetail": {
        "audioText": ""
      }
    },
    {
      "requestId": "6a9cb980346dfea41111656a514e9109_a0002",
      "audioStarttime": 20,
      "audioEndtime": 30,
      "audioUrl": "http://example.com/audio_segment_a0002.mp3",
      "riskLevel": "PASS",
      "riskLabel1": "normal",
      "riskLabel2": "",
      "riskLabel3": "",
      "riskDescription": "Normal",
      "riskDetail": {
        "audioText": ""
      }
    }
  ],
  "audioTags": {
    "gender": {
      "label": "Female",
      "probability": 95
    },
    "language": [
      {
        "confidence": 0,
        "label": 2
      },
      {
        "confidence": 99,
        "label": 0
      },
      {
        "confidence": 0,
        "label": 1
      }
    ],
    "song": 0,
    "timbre": [
      {
        "label": "Female",
        "probability": 95
      },
      {
        "label": "Queen",
        "probability": 12
      },
      {
        "label": "Mature Woman",
        "probability": 37
      },
      {
        "label": "Young Woman",
        "probability": 56
      },
      {
        "label": "Middle-aged Woman",
        "probability": 67
      },
      {
        "label": "Loli",
        "probability": 24
      }
    ]
  }
}