Blog · November 8, 2026

Machine Fault Detection from Sound

Technicians have always listened to machines. A phone recording and a model can now do a first pass of that listening on request. This guide covers where acoustic screening fits next to vibration analysis, what Saina's mechanical specialist covers and where it does not, how to record, and what the published evaluation does and does not show.

Saina · November 8, 2026 · 7 min read

An experienced maintenance technician can walk past a compressor and say "that doesn't sound right". The skill is real, but it doesn't scale: the technician has to be there, the plant has more machines than rounds, and the knowledge leaves when the person does. Machine fault detection from sound tries to capture part of that first judgement from a recording, so that someone who isn't an expert can collect it and a model can do the first listen.

This guide is the hub for that topic. It covers where acoustic screening sits among the other condition-monitoring methods, what Saina's mechanical specialist covers, a real example comparing the base model and the specialist, how to record, how to write the request, and the published evaluation with every limit that comes with it.

Where sound fits among the methods

Acoustic screening is one of several ways to watch a machine's condition, and it is the cheapest to start. Each method has a place:

Sound from a phone is a cheap first check. It does not replace vibration analysis on critical assets, and it should not be the last word on any machine that matters.

What the mechanical specialist covers

A specialist is a version of a model trained further for one domain, selected per request with one field (Introducing Saina specialists explains the mechanism). The mechanical specialist runs on Saina Helm 2 Omni 0.8B: add "specialist": "mechanical" to a request that names "model": "saina-helm-2-omni-0.8b". It reads text and audio, not images.

It was trained on seven CC BY 4.0 datasets: rolling-element bearings (the University of Ottawa UORED set and a stethoscope-on-phone bearing set), a rotating-machine test rig (KAIST), induction motors (lab microphone and smartphones), one 3D printer (a VORON 0.2) and one industrial air compressor in a factory.

What it can name:

A real example: base model against specialist

The home page's Machine fault example uses a 10-second recording of an industrial air compressor (CC BY 4.0, Shaikh, Jawarkar, Ahmed), with a Model and Specialist menu so you can compare both. The state is "The clip is a recording of an industrial air compressor in its working factory environment." These are the real scores, recorded 2026-10-16 on the revisions in production, rounded:

Question Option Base Omni With mechanical
Is the machine operating normally? yes 0.77 0.00
no 0.23 1.00
What should maintenance do? Keep it running 0.54 0.02
Schedule an inspection 0.43 0.64
Stop it now 0.04 0.34

The base model hears a compressor and calls it normal. The specialist hears the fault. On the second question it leans towards an inspection, but with 0.64 against 0.34 it is not sure between inspecting and stopping. In decision mode with the default threshold of 0.8, that answer would come back with no selection and reason: "below_threshold", which is the right outcome: a person decides between those two.

Two caveats. This clip comes from the same public compressor dataset the specialist was trained on, so it is a favourable case, not evidence about your compressor. And it is one example, not a benchmark result.

How to record

From the specialist's card:

Practices that help comparison over time: the same spot on the housing each time (mark it), the same phone if you can, and a note of the operating state. Files go in the request as base64 data URLs: WAV, FLAC, MP3, Ogg or WebM, up to 10 MiB.

How to write the state and options

The card's advice is to name the machine and how it runs in the state, and to offer a healthy option plus only the conditions possible for that machine.

curl https://api.saina.run/v1/ask \
  -H "Authorization: Bearer $SAINA_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "saina-helm-2-omni-0.8b",
    "specialist": "mechanical",
    "mode": "decision",
    "threshold": 0.8,
    "state": "The clip is a recording of a rolling-element bearing on a conveyor drive shaft running at constant speed, recorded with a phone held against the bearing housing.",
    "audios": ["data:audio/wav;base64,UklGRi..."],
    "questions": {
      "normal": {"type": "yes_no",
                 "question": "Is the machine operating normally (no fault or anomaly audible)?"},
      "condition": {"type": "single_choice",
                    "question": "Which condition does the machine in this clip have?",
                    "options": {"healthy": null,
                                "inner": "Inner race bearing fault",
                                "outer": "Outer race bearing fault",
                                "ball": "Ball (rolling element) fault"}}
    }
  }'

Illustrative; the shape follows the API docs, and the base64 string is cut short. For a motor, ask only the normal question: the specialist doesn't name motor faults, and offering them invites a guess. For a compressor, normal or abnormal is all the data supports. "healthy": null is a valid option with no description; the key is the label.

What to do with the answers: an accepted "no" goes to a technician check, an answer below threshold goes to a person (re-record, or listen), and an accepted "yes" is logged. How to flag uncertain AI decisions covers that branch.

The published evaluation, and its limits

The specialist's card reports 1,165 held-out clips (2,274 questions) from the seven training sources, each source counted once in the average: 88% for the specialist against 30% for the base model. By source:

Source Machine Normal or faulty? Which condition?
FSTF bearing sounds bearing, stethoscope on a phone 100% 100%
Industrial air compressor sounds one compressor in a factory 98% 98%
KAIST rotating-machine test rig 100% 69%
UORED-VAFCLS rolling-element bearings, 20 units 91% 64%
ASD3DP one 3D printer 76% 60%
UOEMD-VAFCVS induction motors, lab microphone 94% not asked
IM-VACD induction motors, smartphones 100% not asked

These figures come with limits that matter as much as the numbers:

Running it on site

The specialist is published as a complete model on Hugging Face (run-saina/saina-helm-2-omni-0.8b-mechanical, Apache 2.0) and loads on its own with saina 0.6.0 or later. A self-hosted server lists it in SAINA_MODELS beside or instead of the base model, pinned to a revision, so recordings stay on your network. Because a specialist is deployed separately from its model, a base model update doesn't change the specialist you tested.

Try it

Open the live demo, pick Machine fault, and switch the Specialist menu between none and Mechanical to hear the difference yourself (no account; 5 free runs). In the console, the Compressor fault preset takes your own recording. For other audio, such as speech, sound events and instruments, see the audio classification API guide.