8

The idea is: every once in a while I use some imaginary smartphone app and record vehicle's engine sound. Then the app should interpret that sound and say OK/NOK. If NOK I drive to be further examined by a professional.

(e.g. when engine works OK it produces nice - steady - sound and when NOK the sound is like random noise)

Is it possible to detect defect of vehicle's engine by examining sound it makes?

BTW: recently I had car issue which fits perfectly as problem which could have been avoided if I had such system. When I started the engine, ignition key stayed in position "run engine starter" which I did not spot (normally there is a spring which moves the key back to neutral position, the spring failed). The engine was running a bit louder but I didn't care. About 1 km later engine starter had burned (because it's not supposed to run more than few seconds). Fixing ignition key socket + engine starter was about $250.

2
  • One complication might be sounds that only occur when things are actively switched on / changed,the diagnostics tool would have to be aware if you e.g. had the AC switched on, or you picked 2WD vs 4WD in a truck, or even stuff you have no active control over like if the fans are supposed to be running or not, etc.
    – Jason C
    Commented Jul 6, 2016 at 14:43
  • And even which car it is. That would make a huge difference. I think the answer is yes, but there would be a LOT of logic that would have to go into such a program to make it remotely viable. A human listening to such a vehicle could add other factors to make a more educated guess.
    – Cullub
    Commented Jul 7, 2016 at 19:48

5 Answers 5

9

It is absolutely possible to tell if an engine is unhealthy by the noise it makes. In many failures, an engine will start to emit unusual noises before any fault codes or warning lights are displayed. Additionally, certain ancillary equipment such as alternators can give out audible indications that it's failing.

I suppose it would be possible to use the kind of software that music finding services (where you play music and the software tells you the artists name) combined with the kind of software used to tune music instruments could potentially listen in a way that the human ear can't. If you combined it with some sort of OBD interface option so that the software knew RPM, ambient temperature, etc, etc you could probably do even more.

The issue would be that you would likely need a baseline sound for each engine. I guess you could "train" the software by allowing it to profile the engine several times so it could "learn" the sounds in a similar way to older voice dictation software does.

Personally, I know I can listen to an engine and hear certain faults such a lose belts, noisy bearings and pre-ignition (pinking). This is a skill I've honed over a number of years. There is therefore no theoretical reason why you couldn't write software to do that same. That said, it would be quite an involved piece of development work.

2
  • 2
    How much of your ability to identify engine problems by sound would you say relies on knowing where the sound is coming from (e.g. you open the hood and move your head around; or you're in the cab and notice it's coming from the right vs left)? A single mic wouldn't be able to identify the position of the sound source; do you think that would limit the ability significantly?
    – Jason C
    Commented Jul 6, 2016 at 14:40
  • 2
    That very much depends on the nature and severity of the problem @JasonC. For example, a blowing exhuast manifold or a lose belt can usually be heard from a distance. It is a good point that certain faults will only be audible in certain locations. Perhaps the app could specify placing the phone in certain locations whilst it takes a baseline sound or use the positioning and gyroscopic sensors in the phone to build up a picture as the phone is "waved" around the engine bay? Commented Jul 7, 2016 at 9:08
5

It's certainly possible, but probably only to the extent you're proposing: a go/no-go indication. Mechanics will use engine stethoscopes to determine exactly where a noise is coming from, which may tell them whether a rattle is a bad bearing or a loose bolt, or whether a knock is from a piston or a lifter. Some engines have "knock detectors" (actually tuned microphones) built in that send a signal to the ECU to retard the timing if knocking (a sign of detonation, a very harmful condition) is detected. As @Steve Matthews points out, it's likely you'll have to have to have different profiles for each car/engine combination, and any significant aftermarket upgrades may invalidate those.

1
  • Of course a "go/no-go" is only reasonable resolution I'd ask for. Any other is asking for not reliable/ complicated system. Commented Jul 6, 2016 at 14:47
4

I actually stumbled across this question because I was looking if this has already been done. The only thing I found yet is the mycarmakesnoise app, but you'll have to compare sounds yourself. I am not a mechanic, so I don't know much about sounds of a defect in a car.

I am however starting to learn about deep learning. To me it seems totally possible to use the spectrogram of an audio recording of a defect to identity problems using a convolutional neural network. Maybe even better than humans can, as images can already be classified more accurate by a computer than a human (~94% for humans vs ~95% for computers). There are major issues to overcome though.

First of all, you need a very large data set. That means gathering (at least) hundreds of audio recordings of the same defect in the same vehicle. Thousands of recordings would be even better (bigger data set = better results). Let's say we want to identify ten different defects and there's (total guess) 300 car types. You would need 300*10*100=300.000 recordings for ten defects alone. Also, you can't use the same car over and over again. That would mean you'll need 100 cars of the same type per defect for best results. Gathering these recordings would be a massive operation. A way to counter this problem would be to start of with one brand and type of car, I guess.

The next problem is the difference in sound per car type with the same defect. A Volvo with busted brakes will sound different from a Ford with the same problem. This problem can probably be overcome by having a really big data set, as mentioned before.

Also, the background noise will always be different. One person might be sitting in a real silent car, listening to nothing but his thoughts. The other person will be blasting metal in a shit car with stuff creaking and stuff in the trunk making a lot of noise. The same thing counts here. You need a large data set, so the background noise can be as random as possible.

The last problem I could think of now is the computational power needed. Neural networks need to be trained using the big data set we collected. This takes a lot of computational power. Without access to a super computer or at least a real good videocard, training would take days up to weeks.

In short: Yes, it is probably possible to detect defects in cars by using the sound it makes, but it's probably really hard to do.

[edit] An option could be to train a neural network per car brand and model, but still. I can imagine for example a part breaking could produce very different sounds depending on where it broke. Again, I am no mechanic, so I might be full of shit when it comes to cars.

I don't think a generic problem-detection tool is next to impossible. I think it is very plausible a tool like this could be built using a neural network. Gathering enough sound data to train the network would be a hell of a job though.

Also, if we are working with newer cars we can add all kinds of information from the OBD system to the input tensors of the neural network. That extra information could be very helpful for the neural network to figure out what's going on.

2
  • I'll offer this answer as an example of what could be done. This very specific example should also highlight why attempting to create a generic problem-detection tool is next to impossible. A CNN or FFT-analysis might work for a given car under extremely-specific circumstances, but that severely limits its usefulness.
    – Zaid
    Commented Mar 22, 2017 at 13:04
  • @Zaid I was reading this question and thinking of posting a link to my question, but you beat me to it :-) Commented Apr 4, 2017 at 15:40
2

I must agree there are definitely a few faults which you could identify just by installing a specially created app that would use a microphone, maybe camera, and maybe that sensor which indicates the position of your phone (rotation, shaking). Could help with a few faults, but unfortunately it couldn't be your definite verdict for an engine condition. That could be possible whining bearings, worn v-belt or tensioner, cam-belt, cam-chain, chain/belt tensioner, valve clearance, misfire, etc.. AND NOT FAULTY HORN!!! :D But it won't read thing like high fuel pressure, low oil pressure, blown head gasket, leaking water pipe, missing rear left wheel or burning passenger seat :D

0
0

I know of some research work that was done measuring vibrations in gearboxes to detect patterns leading to failure, but developing the initial values takes months and it was constant analysis...

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .