# Audio

The Audio API provided by HTML5 for JavaScript programming allows developers to directly operate the original audio stream data in the code, and conduct arbitrary generation, processing, and reconstruction of it, such as improving the voice color, changing the tone, audio segmentation, and other operations, which can even be called the web version of Adobe Audit.

AudioContext fingerprint principle:

1: generate audio information stream (triangular wave), perform FFT transform on it, and calculate SHA value as fingerprint.

2: generate audio information stream (sine wave), conduct dynamic compression processing, and calculate MD5 value.

Both methods are used to clear the audio before it is output to the audio device, and the user is not aware of the fingerprint.

Fundamentals of AudioContext fingerprint:

Slight differences in the hardware or software of the host or browser lead to differences in the processing of audio signals. The same browser on the same device produces the same audio output, and the audio output produced by different machines or browsers will vary.

The principle of AudioContext and Canvas fingerprint is very similar. They both use the difference of hardware or software. The former generates audio, the latter generates pictures, and then calculates different hash values as identification.

Source: <https://segmentfault.com/a/1190000023249147>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.bitbrowser.net/fingerprint/6.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
