HomePage | SiteMap | Refresh| EditPage| RenamePage| WikiHelp| LogIn

SoundSynthesizer

Goal

Create a parametric car-sound simulator based on principles of physics.

Target Application

A game that simulates the acoustic environment of the traffic on a street. Mobility Instructors can use this game to teach kids with visual impairments how to move around in a traffic environment.

Synopsis

In order to move around, a child with visual impairment has to learn and master the skill of crossing the streets. Recently, on some junctions and crossings an audio signal (e.g. a chirp sound) is provided along with the visual sign indicating when it is safe to cross the road. However, this enabling facility is nowhere near to be universal. One of the reasons behind this limitation is that if the audio-signal is provided at each and every junction of the street, it could be a frequently annoying sound for the local sighted population. So, in general, a child with visual impairment has to rely on the sounds emitted from the vehicles themselves to extract the information about when to cross the street. Interpreting the sounds in that way could be tricky especially in a very busy traffic environment. This provides motivation to develop a game which emulates acoustic environments of a street, a junction, or any other traffic condition – a Street Crossing Simulator. A variety of the simulated environments can be produced if the simulator is based on parametric models. Mobility Instructors can then use that simulator to teach and practice young kids how to cross the street. One approach would be to record the sounds of different cars, extract parametric models using signal processing techniques and then use that model to create a variety of acoustic environments. The main limitation of this approach would be the dependence of the extracted model on the relative orientation between the source of the sound and the sensor. This dependence may significantly undermine the potential utility of this approach, since orientation of the source is the most critical information that a person with visual impairment would like to extract from the sounds that he hears.

A better approach would be to develop a model of car-sounds purely based on principles of physics. A huge variety of car-sounds can be emulated by varying different parameters of the model (e.g. speed of the car, mass of the car, etc.), and since this model will not be based on any recordings there is no concept of sensor-location dependence. Once modeled and tested, the sound-sources can be spatially oriented directly relative to the listener and the resulting sounds from multiple sources can be merged at the location of listener. My project was to develop the building block of such simulator – a lumped-parametric model of a car sound or, as I call it, CarSoundSynthesizer

Overall Approach

Figure 1 depicts the conceptual interconnections between different parameters and different sources of sound. In ovals are the different input parameters that are being modeled and in boxes are the different sound sources that are being modeled.

As seen, there are three major sound sources that are being considered in this model – Wind, Engine, and Tires.

The most complicated model is of the sound of engine out of the muffler. This sound can be modeled to be dependent on velocity, mass of engine, and engine rpm. I considered only single cylinder engine to start with, and I modeled the muffler as a notch filter repressing the sound generated by the engine while running at 40 km/hours velocity. Also, though velocity and engine rpm are not completely dependent, I considered them as a one parameter in my model; thus assuming there is only one gear.

Wind sound or air-borne sound is modeled as a white noise with amplitude proportional to the cross-sectional are of the vehicle and square of the vehicle-velocity. Here, wind is assumed to be stationary relative to listener, so the velocity of vehicle relative to wind is same as velocity of vehicle relative to listener.

Tire sound, at first, was modeled to be a noise with amplitude higher at higher frequency. I could not find the justification for this model so later I changed it to be a white noise with amplitude proportional to the velocity.

Sounds from all three sources are then summed up, which gives the sound of a car as if the listener is right outside traveling with the car. To simulate the real condition where listener is standing and the car passes by, we have to use the amplitude attenuation, where we the amplitude of the sound at particular instant in time is a function of the distance between each of two ears and the vehicle at that time. This gives two different sound outputs, one for each ear; thus adding stereo effect to the output sound. Also, to make the output sound more realistic Doppler Effect is applied, where the frequency of the sound is shifted depending upon the velocity of the source relative to listener.

Engine

I considered single cylinder internal combustion engine with only one gear. From the very well established pressure-velocity curves of the 4-stroke cycle of an IC engine, a sound model for one combustion cycle was created, as shown in figure 2. (Later, I also found a paper using a very similar model for the engine sound – refer [2])

Later, I found a correction in this approach that, the transfer function of the piston and cylinder combined has to be applied to the impulse caused by the explosion at the start of the combustion phase; before the engine sound is fed to the muffler. Figure 3 depicts the corrected sound template for one cycle.

This sound is then damped by rest of the engine body and peripherals before going into the muffler. Note that the length of the sinusoid looking wave in the combustion phase depends on the engine rpm (and thus vehicle velocity).

Muffler

A muffler is modeled as a band-stop filter attenuating most of the frequencies that the engine would produce when car is running at 40 km/Hr. Figure 4 is the bode plot of the muffler.

The output of the muffler is then added to the sounds generated from wind and tires (as described above using white noise model).

Motion of the car

Motion of the car relative to user causes two different effects: One, Doppler Effect; two, phase delay and amplitude attenuation. Now the implementation of both of this would be described.

Doppler Effect

Doppler effect causes a frequency shift in the sound that is being heard by a listener when there is a relative motion between source and the listener. Below is a cute picture summarizing how the pitch of the siren of a police car changes as it passes by a stationary listener.

(courtesy:http://gs.fanshawec.ca/phys1028/p1028n02.htm)

The doppler shift in the frequencies can be calculated as:

Fd = Velocity of Sound/(Velocity of Sound – Velocity of Source) if the source is moving closer to the listener and

Fd = Velocity of Sound/(Velocity of Sound + Velocity of Source) if the source is moving farther from the listener.

This will give two scaling factors, one for the period when car is moving closer to the listener and the other for the period when the car is moving farther from the listener; so the total length of sound was divided into two windows corresponding to each scaling factor. Then, Doppler effect was implemented by first taking the Fourier transform of the sound then scaling each frequency by the calculated scaling factor as described above, and then taking inverse Fourier transform.

Stereo

Stereo effect was implemented by calculating the distance of source from each ear, and then applying amplitude attenuation and phase delay according to the distance at each instant of time. The amplitude is inversely proportional to the distance, while the delay is the ratio of distance to velocity. This gives two different sounds, one for each ear; which when applied to the corresponding units of the headphone, creates a stereo sound.

Overall Progress

Initial phase of figuring out the engine sound model took a bit longer than expected, and thus the project was incomplete on the day of in-class demo. However once the engine sound model was satisfactory, implementing Doppler effect and stereo effect was straight forward.

Driven by the curiosity, I did an informal user-study while giving the demo of the project on the MazeDay. The user-study involved just keeping a record of the response from the visually impaired subjects. Responses of 11 subjects (including one instructor who was sighted) were recorded and below is the summary of the results.

Overall: everyone was pleased to use the tool, though there was a common complaint (sometimes unvoiced) that the sound was not realistic (9/11). I think the white noise model for the tire noise may not be accurate. Also, it is counted as a mystery in the fluid-mechanics literature that the major component of noise emitted from a car traveling beyond 40Km/Hour is the air-borne noise and not the engine sound. [http://research.imb.uq.edu.au/~m.gagen/research/vel_sing.html]. I could not simulate that behavior using principles of physics. As a result, most of the subjects thought the sound represents more of a motorcycle than a car, especially at low velocities (7/11). A potential solution would be to fudge the model by adding one more low-pass filter.

Everybody agreed that the final tool, Street Crossing Simulator, would be very helpful. Two subjects suggested that for the project that I did, stereo effect was probably the feature they liked the most and would like it to have a capability to create ahead/behind distinction in addition of the left-right distinction. This tool can then be used to simulate road junctions.

References and further readings:

  1. A source decomposition approach for using pre-recorded sounds: http://www.mts.com/nvd/pdf/source_decomp4veh_soundsim.pdf
  2. Modal Synthesis for vibrating objects:
    http://www.cs.ubc.ca/~kvdoel/publications/modalpaper.pdf
  3. A huge collection of interesting articles about physics-based sound-synthesis:
    http://www.soundobject.org/
  4. A comprehensive guide to sound-sythesis:
    http://www.soundobject.org/SObBook/SObBook_JUL03.pdf
  5. A collection of tutorials/papers on sound-synthesis
    http://www.dei.unipd.it/~avanzini/stuff.html
  6. An abstract of a journal issue on Model-based sound synthesis:
    http://www.ph.tn.tudelft.nl/PRInfo/journals/msg00288.html
  7. A SIGGRAPH course on sound-synthesis (really good one):
    http://www.cs.princeton.edu/~prc/CookSig00.pdf
  8. A stochastic approach using wavelets:
    http://www.icad.org/websiteV2.0/Conferences/ICAD97/Miner.pdf

Project report can be found at: files/CarSoundSynthesizer.doc

A presentation of the partially complete project can be found at: files/CarSoundSynthesizer.ppt

The matlab script of the simulator can be downloaded at: files/CarSoundSynthesizerFinal.m

Here is a zip file containing couple of simulated sounds in .wav format: The name of each file indicates the velocity and direction in which the car was moving files/simulated_sounds.zip