Thisis an experimental tool for listening to, analysing and decoding International Morse code. No information from the microphone is transmitted to the server, but the connection to the server is encrypted nonetheless.
To re-enable the microphone, you need to change your web browser's settings. For Chrome click on the video-camera icon with a red cross in the address bar. For Firefox click on the microphone icon in the address bar, or if it's not there, click on the globe icon instead.
The decoder will analyse sound coming from the microphone or from an audio file. The spectrogram of the sound is shown in the main graph along with a pink region showing the frequency being analysed. If the volume in the chosen frequency is louder than the "Volume threshold" then it is treated as being part of a dit or dah, and otherwise it records a gap (this is shown in the lower graph that looks like a barcode). From these timings it determines if something is a dit, dah, or a sort of space and then converts it into a letter shown in the message box.
In fully automatic mode, the decoder selects the loudest frequency and adjusts the Morse code speed to fit the data. If you want to fix the frequency or speed then click on the "Manual" checkboxes and type in your chosen values. The frequency can only be certain values and the closest allowed value will be chosen.
There are three parameters which are not automatic: the minimum and maximum volume filter settings and the volume threshold setting. The volume filter (which uses dB) discards very quiet (very negative) or very loud (close to zero) sounds and scales the size of the remaining data. The volume threshold is the value (0-255) which the measured volume in the analysed frequency must exceed to be counted as a dit or dah.
This is an experimental tool for listening to, analysing and decoding International Morse code all done in Javascript using the Web Audio API. I know it works in the latest Chrome and Firefox browsers on Windows, it might work in Safari and it just can't work in Internet Explorer. No information from the microphone is transmitted to the server, but the connection to the server is encrypted nonetheless.
If you choose to use the microphone then your web browser will prompt you to confirm that it is okay. If you have several microphones you will also need to choose which microphone to use: to do this in Chrome first allow access and then click on the video-camera icon in the right-hand end of the address bar; in Firefox you can choose which microphone to use at the point of permitting access. Of course this is all subject to change as it is not a common feature to use yet.
The following table lists some pre-recorded samples along with audio filter parameters that work well. The first three samples have been saved from the translator and are therefore very clean sounds. "Fox" was recorded through a microphone by a someone actually sending Morse code. "Inspector Morse" is the start of a British TV drama where "MORSE" was spelt out in very approximate Morse code (the decoder can't manage it). The last two are both the same sound file, first listening at 300Hz and then at 700Hz to give two different messages! Sounds processed via the microphone will not work so well as the clean samples.
The minimum measurable frequency is 0Hz and the maximum in this web browser is Hz (half the sampling rate of Hz). You can select the FFT size in the form: a small FFT size will give a small time resolution (good for fast Morse code) and a large FFT size will give a small frequency resolution (good for eliminating background noise) but you can't have both at once.
You can zoom in on a frequency range by adjusting the minimum and maximum frequencies. By adjusting the minimum and maximum volumes you may be able to filter out unwanted background noise (for instance, try increasing the minimum volume to -60dB).
The live spectrogram below is showing the (quantised) frequencies from Hz (at the bottom) to Hz (at the top). The pink region highlights the area that is being analysed (see below). Time progresses left to right.
We need to extract the Morse code signal tones from the sound entering the microphone. Hopefully the Morse tones will be the loudest sounds being received. Here we plot the average volume in each frequency bin over time. The chart is only displayed when the sound stops because otherwise it slows down the sound processing.
We need to set a frequency range to filter the frequency-domain data (i.e. choose which frequencies we want to focus on). We also need to set a threshold volume above which we take to mean that a signal is present. Use the button to automatically select the frequency range with the maximum average volume and to use the average volume in that range as the threshold (you may find a higher volume works better though).
The actual (quantised) frequency band which includes all of the specified range is - Hz ( frequency bins of sizeHz) and is highlighted in pink on the spectrogram above. The volume threshold is (of 255).
Given the cleaned up signal above we now need to take the timings of the "ons" and "offs", translate into dits and dahs and finally into text. The decoder does some further signal processing by asuming that if an "on" or "off" element was only 1 measurement long then it was probably due to noise and so the previous timed element is just extended.
The final stage of the decoder currently needs a clue about the speed of the Morse code: use the input box to set the speed. Given the chosen speed of wpm, the length of a dit is ms, a dah is ms and a word-space is ms.
The chart below shows the frequency of the different time intervals that are measured. Each on or off period is a multiple of the time resolution (ms). The chart updates when the sound stops because otherwise it slows down the sound processing. Turn sets on and off by clicking on the legend.
If the chart shows a clean clustering of timings then it's likely that the decoder will have made sense of the timings and you'll have a sensible message shown below. If it didn't quite work, try looking at the debugging information by hovering over each letter.
The variation in the timings used in the last message are summarised in the following table. Note that even when a "perfect" downloaded signal is analysed, the measured variation in the durations is quite significant. This is because, relative to the speed of the Morse code, the measurements are quite infrequent.
I'm working on a project that need to decode AC3 audio to PCM codec. I'm using ffmpeg - libavcodec to decode this AC3 audio but the result is always in PCM Signed 16bit Floating Point. Since I need the result to be PCM Signed 16 Bit Big Endian, what I do now is using libswscale to change it to PCM Signed `16 Bit Little Endian and encode it to PCM Signed 16 Bit Big Endian. This is not acceptable in my case since I'm working in embedded linux environment with low CPU.
Beginning at version 1.1, you have no choice: decoding is done in AV_SAMPLE_FMT_FLTP format (Floating point, but planar: each channel is in its own buffer). If you want S16 data, you have to create a SwrContext and call swr_convert().
This new decoder decodes AC3 into AV_SAMPLE_FMT_S16P format. I am not sure on how you can activate if: maybe you have to force the decoding codec, or maybe there is a .configure option (I see a lot of #if (USE_FIXED) in the source code). You may check in this direction.
Opus can handle a wide range of audio applications, including Voice over IP, videoconferencing,in-game chat, and even remote live music performances. It can scale from low bitrate narrowbandspeech to very high quality stereo music. Supported features are:
Additionally, we have begun experiments on upcoming neural packet loss concealment anddeep redundancy (DRED) features.Although not included in this release, you can see two IETF drafts describing the proposedextensionand redundancy mechanisms.The code is also available on this development branch.
An audio codec, or audio decoder is a device or computer program capable of encoding or decoding a digital data stream (a codec) that encodes or decodes audio.[1][2][3][4] In software, an audio codec is a computer program implementing an algorithm that compresses and decompresses digital audio data according to a given audio file or streaming media audio coding format. The objective of the algorithm is to represent the high-fidelity audio signal with a minimum number of bits while retaining quality. This can effectively reduce the storage space and the bandwidth required for transmission of the stored audio file. Most software codecs are implemented as libraries which interface to one or more multimedia players. Most modern audio compression algorithms are based on modified discrete cosine transform (MDCT) coding and linear predictive coding (LPC).
In hardware, audio codec refers to a single device that encodes analog audio as digital signals and decodes digital back into analog. In other words, it contains both an analog-to-digital converter (ADC) and digital-to-analog converter (DAC) running off the same clock signal. This is used in sound cards that support both audio in and out, for instance. Hardware audio codecs send and receive digital data using buses such as AC-Link, IS, SPI, IC, etc. Most commonly the digital data is linear PCM, and this is the only format that most codecs support, but some legacy codecs support other formats such as G.711 for telephony.
When I opened a project I had been working on earlier today that has some .ac3 tracks on some of the sequences, those tracks are redded out and I now get an error message "Missing Dolby Audio Encoder." I get the same message when I try to import .ac3 files into the updated Audition program.
3a8082e126