@@ -12,13 +12,13 @@ Detect AI-generated music.
1212
1313| Name | Type | Required | Description |
1414| :--- | :--- | :--- | :--- |
15- | ` model_name ` | string | Yes | Model to use: ` lite ` , ` standard ` , ` pro ` |
15+ | ` model_name ` | string | Yes | Model to use: ` lite ` , ` standard ` , ` pro ` , ` pro-v2 ` |
1616
1717### Request Body
1818
19- | Field | Type | Required | Description |
20- | :----------- | :--- | :--- | :--- |
21- | ` musicId ` | string | Unique music identifier | uploaded via ` [POST] /api/v1/music ` endpoint |
19+ | Field | Type | Required | Description |
20+ | :--- | :--- | :--- | :--- |
21+ | ` file ` | binary | Yes | Audio file to analyze (mp3, wav, flac, m4a, aac, ogg) |
2222
2323---
2424
@@ -29,6 +29,7 @@ Detect AI-generated music.
2929| ` lite ` | 30-40 seconds | Single model, fast detection |
3030| ` standard ` | 30-40 seconds | Model ensemble, balanced accuracy |
3131| ` pro ` | ~ 1 minute | Model ensemble with detailed classification |
32+ | ` pro-v2 ` | ~ 15 seconds | AI tracking with role-based detection |
3233
3334---
3435
@@ -38,10 +39,9 @@ Detect AI-generated music.
3839
3940``` bash
4041curl https://platform.mippia.com/api/v1/ai-detection/standard \
41- -X POST \
4242 -H " Authorization: Bearer YOUR_API_KEY" \
43- -H " Content-Type: application/json " \
44- -d ' {"musicId": "YOUR_MUSIC_ID"} '
43+ -X POST \
44+ -F " file=@/path/to/audio.mp3 "
4545```
4646
4747### Python
@@ -51,16 +51,14 @@ import requests
5151
5252url = " https://platform.mippia.com/api/v1/ai-detection/standard"
5353headers = {
54- " Authorization" : " Bearer YOUR_API_KEY" ,
55- " Content-Type" : " application/json"
54+ " Authorization" : " Bearer YOUR_API_KEY"
5655}
57- data = {
58- " musicId " : " YOUR_MUSIC_ID "
56+ files = {
57+ " file " : open ( " /path/to/audio.mp3 " , " rb " )
5958}
6059
61- response = requests.post(url, headers = headers, json = data )
60+ response = requests.post(url, headers = headers, files = files )
6261print (response.json())
63-
6462```
6563
6664## Response (Initial)
@@ -258,6 +256,117 @@ Pro model includes additional classifiers for detailed analysis:
258256}
259257```
260258
259+ ## Callback Response (Completed - Pro-V2)
260+
261+ Pro-V2 model includes role-based AI detection with separate 2-label and 5-label classifiers:
262+
263+ ``` json
264+ {
265+ "task_id" : " task_20251204052920_J8uNdq5z" ,
266+ "status" : " success" ,
267+ "model_type" : " pro-v2" ,
268+ "completed_at" : " 2025-12-04T05:30:20Z" ,
269+ "result" : {
270+ "audio_filename.mp3" : {
271+ "final_result" : {
272+ "prediction" : " fake" ,
273+ "confidence" : 0.8234
274+ },
275+ "model_results" : [
276+ {
277+ "segment_analysis" : {
278+ "prediction" : [" real" , " fake" , " real" , " fake" ],
279+ "confidence" : [0.912 , 0.834 , 0.901 , 0.823 ]
280+ },
281+ "overall_analysis" : {
282+ "prediction" : " fake" ,
283+ "confidence" : 0.8775
284+ },
285+ "config" : {
286+ "model_id" : " 2label_stage1" ,
287+ "analysis_focus" : " Waveform & Melody Pattern" ,
288+ "task" : " Real/Fake Binary Classification" ,
289+ "num_classes" : 2 ,
290+ "labels" : [" real" , " fake" ]
291+ }
292+ },
293+ {
294+ "overall_analysis" : {
295+ "prediction" : " fake" ,
296+ "confidence" : 0.8654
297+ },
298+ "config" : {
299+ "model_id" : " 2label_stage2" ,
300+ "analysis_focus" : " Waveform & Melody Pattern" ,
301+ "task" : " Real/Fake Binary Classification" ,
302+ "num_classes" : 2 ,
303+ "labels" : [" real" , " fake" ]
304+ }
305+ },
306+ {
307+ "segment_analysis" : {
308+ "prediction" : [[" tracker" , " engineer" ], [" topliner" ], [" real" ], [" vocalist" , " tracker" ]],
309+ "confidence" : [
310+ {"real" : 0.05 , "tracker" : 0.62 , "topliner" : 0.12 , "lyricist" : 0.08 , "vocalist" : 0.08 , "engineer" : 0.65 },
311+ {"real" : 0.10 , "tracker" : 0.15 , "topliner" : 0.78 , "lyricist" : 0.05 , "vocalist" : 0.12 , "engineer" : 0.10 },
312+ {"real" : 0.92 , "tracker" : 0.03 , "topliner" : 0.02 , "lyricist" : 0.01 , "vocalist" : 0.02 , "engineer" : 0.03 },
313+ {"real" : 0.08 , "tracker" : 0.71 , "topliner" : 0.05 , "lyricist" : 0.03 , "vocalist" : 0.56 , "engineer" : 0.12 }
314+ ]
315+ },
316+ "overall_analysis" : {
317+ "prediction" : [" tracker" , " topliner" , " vocalist" , " engineer" ],
318+ "confidence" : {
319+ "real" : 0.06 ,
320+ "tracker" : 0.62 ,
321+ "topliner" : 0.48 ,
322+ "lyricist" : 0.04 ,
323+ "vocalist" : 0.45 ,
324+ "engineer" : 0.58
325+ }
326+ },
327+ "config" : {
328+ "model_id" : " 5label_stage1" ,
329+ "analysis_focus" : " Role-based AI Detection" ,
330+ "task" : " Multi-role AI Detection" ,
331+ "num_classes" : 6 ,
332+ "labels" : [" real" , " tracker" , " topliner" , " lyricist" , " vocalist" , " engineer" ]
333+ }
334+ },
335+ {
336+ "segment_analysis" : {
337+ "prediction" : [[" tracker" , " engineer" ], [" topliner" ], [" real" ], [" vocalist" , " tracker" ]],
338+ "confidence" : [
339+ {"real" : 0.04 , "tracker" : 0.65 , "topliner" : 0.10 , "lyricist" : 0.07 , "vocalist" : 0.09 , "engineer" : 0.68 },
340+ {"real" : 0.09 , "tracker" : 0.14 , "topliner" : 0.80 , "lyricist" : 0.04 , "vocalist" : 0.11 , "engineer" : 0.09 },
341+ {"real" : 0.94 , "tracker" : 0.02 , "topliner" : 0.01 , "lyricist" : 0.01 , "vocalist" : 0.01 , "engineer" : 0.02 },
342+ {"real" : 0.07 , "tracker" : 0.73 , "topliner" : 0.04 , "lyricist" : 0.02 , "vocalist" : 0.59 , "engineer" : 0.13 }
343+ ]
344+ },
345+ "overall_analysis" : {
346+ "prediction" : [" tracker" , " topliner" , " vocalist" , " engineer" ],
347+ "confidence" : {
348+ "real" : 0.04 ,
349+ "tracker" : 0.64 ,
350+ "topliner" : 0.50 ,
351+ "lyricist" : 0.03 ,
352+ "vocalist" : 0.47 ,
353+ "engineer" : 0.60
354+ }
355+ },
356+ "config" : {
357+ "model_id" : " 5label_stage2" ,
358+ "analysis_focus" : " Role-based AI Detection" ,
359+ "task" : " Multi-role AI Detection" ,
360+ "num_classes" : 6 ,
361+ "labels" : [" real" , " tracker" , " topliner" , " lyricist" , " vocalist" , " engineer" ]
362+ }
363+ }
364+ ]
365+ }
366+ }
367+ }
368+ ```
369+
261370## Result Fields
262371
263372| Field | Type | Description |
@@ -310,6 +419,7 @@ The result is an object where:
310419| :--- | :--- |
311420| Waveform & Melody Pattern | Analyzes audio waveform characteristics and melodic patterns |
312421| Mixing & Audio Effects | Analyzes mixing techniques and audio effect signatures |
422+ | Role-based AI Detection | Analyzes AI involvement by musical role (tracking, toplining, lyrics, vocals, engineering) |
313423
314424### Analysis Result Fields
315425
@@ -329,11 +439,13 @@ The result is an object where:
329439| Real/Fake Binary | ` real ` , ` fake ` |
330440| 3-Class | ` real ` , ` ai_cover ` , ` fake ` |
331441| Detailed Fake Source | ` real ` , ` suno_v4 ` , ` suno_v4_5 ` , ` suno_v4_5_plus ` , ` suno_v5 ` , ` other ` |
442+ | Multi-role AI | ` real ` , ` tracker ` , ` topliner ` , ` lyricist ` , ` vocalist ` , ` engineer ` |
332443
333444## Notes
334445
335446- ** Supported formats** : mp3, wav, flac, m4a, aac, ogg
336447- ** Final Result** : Weighted average of all Real/Fake binary classification models for a single consolidated prediction
337448- ** Segment Analysis** : Analyzes each segment of the audio independently to detect localized AI artifacts
338449- ** Overall Analysis** : Considers the entire song structure and aggregates segment results for final prediction
339- - ** Model Results** : Each element in the ` model_results ` array represents one model's analysis
450+ - ** Model Results** : Each element in the ` model_results ` array represents one model's analysis
451+ - ** Pro-V2 Role Detection** : The 5-label models detect AI involvement by musical role. For segment-level analysis, prediction is an array of arrays where each segment contains detected roles (or ` ["real"] ` if no AI detected). Confidence provides per-role probabilities for each segment. At the overall level, prediction lists all detected roles, and confidence aggregates role probabilities across segments.
0 commit comments