AudioTensor
docarray.typing.tensor.audio.audio_ndarray
AudioNdArray
Bases: AbstractAudioTensor
, NdArray
Subclass of NdArray
, to represent an audio tensor.
Adds audio-specific features to the tensor.
from typing import Optional
from docarray import BaseDoc
from docarray.typing import AudioBytes, AudioNdArray, AudioUrl
import numpy as np
class MyAudioDoc(BaseDoc):
title: str
audio_tensor: Optional[AudioNdArray]
url: Optional[AudioUrl]
bytes_: Optional[AudioBytes]
# from tensor
doc_1 = MyAudioDoc(
title='my_first_audio_doc',
audio_tensor=np.random.rand(1000, 2),
)
# doc_1.audio_tensor.save(file_path='/tmp/file_1.wav')
doc_1.bytes_ = doc_1.audio_tensor.to_bytes()
# from url
doc_2 = MyAudioDoc(
title='my_second_audio_doc',
url='https://www.kozco.com/tech/piano2.wav',
)
doc_2.audio_tensor, _ = doc_2.url.load()
# doc_2.audio_tensor.save(file_path='/tmp/file_2.wav')
doc_2.bytes_ = doc_1.audio_tensor.to_bytes()
Source code in docarray/typing/tensor/audio/audio_ndarray.py
docarray.typing.tensor.audio.abstract_audio_tensor
AbstractAudioTensor
Bases: AbstractTensor
, ABC
Source code in docarray/typing/tensor/audio/abstract_audio_tensor.py
display(rate=44100)
Play audio data from tensor in notebook.
Source code in docarray/typing/tensor/audio/abstract_audio_tensor.py
save(file_path, format='wav', frame_rate=44100, sample_width=2, pydub_args={})
Save audio tensor to an audio file. Mono/stereo is preserved.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
file_path |
Union[str, BinaryIO]
|
path to an audio file. If file is a string, open the file by that name, otherwise treat it as a file-like object. |
required |
format |
str
|
format for the audio file ('mp3', 'wav', 'raw', 'ogg' or other ffmpeg/avconv supported files) |
'wav'
|
frame_rate |
int
|
sampling frequency |
44100
|
sample_width |
int
|
sample width in bytes |
2
|
pydub_args |
Dict[str, Any]
|
dictionary of additional arguments for pydub.AudioSegment.export function |
{}
|
Source code in docarray/typing/tensor/audio/abstract_audio_tensor.py
to_bytes()
Convert audio tensor to AudioBytes
.
Source code in docarray/typing/tensor/audio/abstract_audio_tensor.py
docarray.typing.tensor.audio.audio_tensorflow_tensor
AudioTensorFlowTensor
Bases: AbstractAudioTensor
, TensorFlowTensor
Subclass of TensorFlowTensor
,
to represent an audio tensor. Adds audio-specific features to the tensor.
from typing import Optional
import tensorflow as tf
from docarray import BaseDoc
from docarray.typing import AudioBytes, AudioTensorFlowTensor, AudioUrl
class MyAudioDoc(BaseDoc):
title: str
audio_tensor: Optional[AudioTensorFlowTensor]
url: Optional[AudioUrl]
bytes_: Optional[AudioBytes]
doc_1 = MyAudioDoc(
title='my_first_audio_doc',
audio_tensor=tf.random.normal((1000, 2)),
)
# doc_1.audio_tensor.save(file_path='file_1.wav')
doc_1.bytes_ = doc_1.audio_tensor.to_bytes()
doc_2 = MyAudioDoc(
title='my_second_audio_doc',
url='https://www.kozco.com/tech/piano2.wav',
)
doc_2.audio_tensor, _ = doc_2.url.load()
doc_2.bytes_ = doc_1.audio_tensor.to_bytes()
Source code in docarray/typing/tensor/audio/audio_tensorflow_tensor.py
docarray.typing.tensor.audio.audio_torch_tensor
AudioTorchTensor
Bases: AbstractAudioTensor
, TorchTensor
Subclass of TorchTensor
, to represent an audio tensor.
Adds audio-specific features to the tensor.
from typing import Optional
import torch
from docarray import BaseDoc
from docarray.typing import AudioBytes, AudioTorchTensor, AudioUrl
class MyAudioDoc(BaseDoc):
title: str
audio_tensor: Optional[AudioTorchTensor]
url: Optional[AudioUrl]
bytes_: Optional[AudioBytes]
doc_1 = MyAudioDoc(
title='my_first_audio_doc',
audio_tensor=torch.zeros(1000, 2),
)
# doc_1.audio_tensor.save(file_path='/tmp/file_1.wav')
doc_1.bytes_ = doc_1.audio_tensor.to_bytes()
doc_2 = MyAudioDoc(
title='my_second_audio_doc',
url='https://www.kozco.com/tech/piano2.wav',
)
doc_2.audio_tensor, _ = doc_2.url.load()
# doc_2.audio_tensor.save(file_path='/tmp/file_2.wav')
doc_2.bytes_ = doc_1.audio_tensor.to_bytes()