mirror of
https://github.com/HumanAIGC-Engineering/gradio-webrtc.git
synced 2026-02-05 01:49:23 +08:00
* Add code * add code * add code * Rename messages * rename * add code * Add demo * docs + demos + bug fixes * add code * styles * user guide * Styles * Add code * misc docs updates * print nit * whisper + pr * url for images * whsiper update * Fix bugs * remove demo files * version number * Fix pypi readme * Fix * demos * Add llama code editor * Update llama code editor and object detection cookbook * Add more cookbook demos * add code * Fix links for PR deploys * add code * Fix the install * add tts * TTS docs * Typo * Pending bubbles for reply on pause * Stream redesign (#63) * better error handling * Websocket error handling * add code --------- Co-authored-by: Freddy Boulton <freddyboulton@hf-freddy.local> * remove docs from dist * Some docs typos * more typos * upload changes + docs * docs * better phone * update docs * add code * Make demos better * fix docs + websocket start_up * remove mention of FastAPI app * fastphone tweaks * add code * ReplyOnStopWord fixes * Fix cookbook * Fix pypi readme * add code * bump versions * sambanova cookbook * Fix tags * Llm voice chat * kyutai tag * Add error message to all index.html * STT module uses Moonshine * Not required from typing extensions * fix llm voice chat * Add vpn warning * demo fixes * demos * Add more ui args and gemini audio-video * update cookbook * version 9 --------- Co-authored-by: Freddy Boulton <freddyboulton@hf-freddy.local>
101 lines
2.2 KiB
Markdown
101 lines
2.2 KiB
Markdown
# Utils
|
|
|
|
## `audio_to_bytes`
|
|
|
|
Convert an audio tuple containing sample rate and numpy array data into bytes.
|
|
Useful for sending data to external APIs from `ReplyOnPause` handler.
|
|
|
|
Parameters
|
|
```
|
|
audio : tuple[int, np.ndarray]
|
|
A tuple containing:
|
|
- sample_rate (int): The audio sample rate in Hz
|
|
- data (np.ndarray): The audio data as a numpy array
|
|
```
|
|
|
|
Returns
|
|
```
|
|
bytes
|
|
The audio data encoded as bytes, suitable for transmission or storage
|
|
```
|
|
|
|
Example
|
|
```python
|
|
>>> sample_rate = 44100
|
|
>>> audio_data = np.array([0.1, -0.2, 0.3]) # Example audio samples
|
|
>>> audio_tuple = (sample_rate, audio_data)
|
|
>>> audio_bytes = audio_to_bytes(audio_tuple)
|
|
```
|
|
|
|
## `audio_to_file`
|
|
|
|
Save an audio tuple containing sample rate and numpy array data to a file.
|
|
|
|
Parameters
|
|
```
|
|
audio : tuple[int, np.ndarray]
|
|
A tuple containing:
|
|
- sample_rate (int): The audio sample rate in Hz
|
|
- data (np.ndarray): The audio data as a numpy array
|
|
```
|
|
Returns
|
|
```
|
|
str
|
|
The path to the saved audio file
|
|
```
|
|
Example
|
|
```
|
|
```python
|
|
>>> sample_rate = 44100
|
|
>>> audio_data = np.array([0.1, -0.2, 0.3]) # Example audio samples
|
|
>>> audio_tuple = (sample_rate, audio_data)
|
|
>>> file_path = audio_to_file(audio_tuple)
|
|
>>> print(f"Audio saved to: {file_path}")
|
|
```
|
|
|
|
## `aggregate_bytes_to_16bit`
|
|
Aggregate bytes to 16-bit audio samples.
|
|
|
|
This function takes an iterator of chunks and aggregates them into 16-bit audio samples.
|
|
It handles incomplete samples and combines them with the next chunk.
|
|
|
|
Parameters
|
|
```
|
|
chunks_iterator : Iterator[bytes]
|
|
An iterator of byte chunks to aggregate
|
|
```
|
|
Returns
|
|
```
|
|
Iterator[NDArray[np.int16]]
|
|
An iterator of 16-bit audio samples
|
|
```
|
|
Example
|
|
```python
|
|
>>> chunks_iterator = [b'\x00\x01', b'\x02\x03', b'\x04\x05']
|
|
>>> for chunk in aggregate_bytes_to_16bit(chunks_iterator):
|
|
>>> print(chunk)
|
|
```
|
|
|
|
## `async_aggregate_bytes_to_16bit`
|
|
|
|
Aggregate bytes to 16-bit audio samples asynchronously.
|
|
|
|
Parameters
|
|
```
|
|
chunks_iterator : Iterator[bytes]
|
|
An iterator of byte chunks to aggregate
|
|
```
|
|
Returns
|
|
```
|
|
Iterator[NDArray[np.int16]]
|
|
An iterator of 16-bit audio samples
|
|
```
|
|
Example
|
|
```python
|
|
>>> chunks_iterator = [b'\x00\x01', b'\x02\x03', b'\x04\x05']
|
|
>>> for chunk in async_aggregate_bytes_to_16bit(chunks_iterator):
|
|
>>> print(chunk)
|
|
```
|
|
|
|
|