copied
Readme
Files and versions
Updated 2 years ago
audio-embedding
Audio Embedding with CLMR
Author: Jael Gu
Description
The audio embedding operator converts an input audio into a dense vector which can be used to represent the audio clip's semantics. Each vector represents for an audio clip with a fixed length of around 2s. This operator is built on top of the original implementation of CLMR. The default model weight provided is pretrained on Magnatagatune Dataset with SampleCNN.
Code Example
Generate embeddings for the audio "test.wav".
Write the pipeline in simplified style:
import towhee
(
towhee.glob('test.wav')
.audio_decode.ffmpeg()
.runas_op(func=lambda x:[y[0] for y in x])
.audio_embedding.clmr()
.show()
)
| [-2.1045141, 0.55381, 0.4537212, ...] shape=(6, 512) |
Write a same pipeline with explicit inputs/outputs name specifications:
import towhee
(
towhee.glob['path']('test.wav')
.audio_decode.ffmpeg['path', 'frames']()
.runas_op['frames', 'frames'](func=lambda x:[y[0] for y in x])
.audio_embedding.clmr['frames', 'vecs']()
.select['path', 'vecs']()
.show()
)
[array([[-2.1045141 , 0.55381 , 0.4537212 , ..., 0.18805158,
0.3079657 , -1.216063 ],
[-2.1045141 , 0.55381036, 0.45372102, ..., 0.18805173,
0.3079657 , -1.216063 ],
[-2.0874703 , 0.5511826 , 0.46051833, ..., 0.18650496,
0.33218473, -1.2182183 ],
[-2.0874703 , 0.55118287, 0.4605182 , ..., 0.18650502,
0.3321851 , -1.2182183 ],
[-2.0771544 , 0.5641223 , 0.43814823, ..., 0.18220925,
0.33022994, -1.2070589 ],
[-2.0771549 , 0.5641221 , 0.43814805, ..., 0.1822092 ,
0.33022994, -1.2070588 ]], dtype=float32)]
Factory Constructor
Create the operator via the following factory method
audio_embedding.clmr(framework="pytorch")
Parameters:
framework: str
The framework of model implementation. Default value is "pytorch" since the model is implemented in Pytorch.
Interface
An audio embedding operator generates vectors in numpy.ndarray given towhee audio frames.
Parameters:
data: List[towhee.types.audio_frame.AudioFrame]
Input audio data is a list of towhee audio frames. The input data should represent for an audio longer than 2s.
Returns:
numpy.ndarray
Audio embeddings in shape (num_clips, 512). Each embedding stands for features of an audio clip with length of 2s.
Jael Gu
ae9d5cb6eb
| 16 Commits | ||
---|---|---|---|
.gitattributes |
1.1 KiB
|
3 years ago | |
README.md |
2.6 KiB
|
2 years ago | |
__init__.py |
688 B
|
3 years ago | |
clmr_checkpoint.py |
1.2 KiB
|
3 years ago | |
clmr_checkpoint_10000.pt |
10 MiB
|
3 years ago | |
clmr_magnatagatune.py |
4.7 KiB
|
3 years ago | |
clmr_model.py |
1.0 KiB
|
3 years ago | |
requirements.txt |
53 B
|
2 years ago | |
sample_cnn.py |
2.5 KiB
|
3 years ago |