https://github.com/ryoha000/librosapp
A C++ implementation of stft, melspectrogram and mel_to_stft
https://github.com/ryoha000/librosapp
librosa melspectrogram spectrogram stft
Last synced: 3 months ago
JSON representation
A C++ implementation of stft, melspectrogram and mel_to_stft
- Host: GitHub
- URL: https://github.com/ryoha000/librosapp
- Owner: ryoha000
- License: unlicense
- Created: 2022-05-29T21:49:42.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-06-02T00:12:11.000Z (over 3 years ago)
- Last Synced: 2025-10-14T11:35:20.682Z (3 months ago)
- Topics: librosa, melspectrogram, spectrogram, stft
- Language: C++
- Homepage:
- Size: 1.13 MB
- Stars: 10
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# librosapp
## About
This repository is a transplant of librosa by C++.
The following functions are supported in this repository after end-to-end testing.
- librosa::stft
- librosa::filters::mel
- librosa::feature::melspectrogram
- librosa::feature::inverse::mel_to_stft
## Requirement
### 1. install submodules
`$ git submodule update --init`
### 2. build kissfft
This is done to build kissfft. If you want to build by other methods, skip this step.
**NOTE: If you are a Windows user, use an absolute path for `-v`option.**
`$ docker run -v C:\workspace\librosapp:/app -it gcc:12.1 bash /app/build_kissfft.sh`
### 3. Run sample code
You can run the sample code by executing `$ ./run_test.sh` or `$ docker-compose up --build`
## Usage
### stft
```
librosa::stft_arg stft_arg;
stft_arg.y = audio;
auto result = librosa::stft(&stft_arg);
```
### _spectgram
```
librosa::core::spectrum::_spectrogram_arg spec_arg;
spec_arg.y = audio;
auto result = librosa::core::spectrum::_spectrogram(&spec_arg);
```
### filters::mel
```
librosa::filters::mel_arg mel_arg;
auto mel_basis = librosa::filters::mel(&mel_arg);
```
### melspectrogram
```
librosa::feature::melspectrogram_arg melspec_arg;
melspec_arg.y = audio;
auto melspec = librosa::feature::melspectrogram(&melspec_arg);
```
### mel_to_stft
```
librosa::feature::melspectrogram_arg melspec_arg;
melspec_arg.y = audio;
auto melspec = librosa::feature::melspectrogram(&melspec_arg);
librosa::feature::inverse::mel_to_stft_arg arg;
arg.M = melspec;
arg.n_fft = melspec_arg.n_fft;
arg.power = 2.0;
arg.sr = melspec_arg.sr;
auto spec = librosa::feature::inverse::mel_to_stft(&arg);
```
## related project
[librosa](https://github.com/librosa/librosa)
[kissfft](https://github.com/mborgerding/kissfft)
[Eigen](https://gitlab.com/libeigen/eigen)
[LBFGSpp](https://github.com/yixuan/LBFGSpp)