| | --- |
| | language: fr |
| | license: mit |
| | library_name: transformers |
| | tags: |
| | - audio |
| | - audio-to-audio |
| | - speech |
| | datasets: |
| | - Cnam-LMSSC/vibravox |
| | model-index: |
| | - name: EBEN(M=4,P=4,Q=4) |
| | results: |
| | - task: |
| | name: Bandwidth Extension |
| | type: speech-enhancement |
| | dataset: |
| | name: Vibravox["headset_microphone"] to Vibravox["temple_vibration_pickup"] |
| | type: Cnam-LMSSC/vibravox |
| | args: fr |
| | metrics: |
| | - name: Test STOI, in-domain training |
| | type: stoi |
| | value: 0.4351 |
| | --- |
| | |
| | <p align="center"> |
| | <img src="https://cdn-uploads.huggingface.co/production/uploads/65302a613ecbe51d6a6ddcec/zhB1fh-c0pjlj-Tr4Vpmr.png" style="object-fit:contain; width:280px; height:280px;" > |
| | </p> |
| |
|
| | # Model Card |
| |
|
| | - **Developed by:** [Cnam-LMSSC](https://huggingface.co/Cnam-LMSSC) |
| | - **Model:** [EBEN(M=4,P=4,Q=4)](https://github.com/jhauret/vibravox/blob/main/vibravox/torch_modules/dnn/eben_generator.py) (see [publication in IEEE TASLP](https://ieeexplore.ieee.org/document/10244161) - [arXiv link](https://arxiv.org/abs/2303.10008)) |
| | - **Language:** French |
| | - **License:** MIT |
| | - **Training dataset:** `speech_clean` subset of [Cnam-LMSSC/vibravox](https://huggingface.co/datasets/Cnam-LMSSC/vibravox) (see [VibraVox paper on arXiV](https://arxiv.org/abs/2407.11828)) |
| | - **Testing dataset:** `speech_clean` subset of [Cnam-LMSSC/vibravox](https://huggingface.co/datasets/Cnam-LMSSC/vibravox) |
| | - **Samplerate for usage:** 16kHz |
| |
|
| | ## Overview |
| |
|
| | This model, trained on [Vibravox](https://huggingface.co/datasets/Cnam-LMSSC/vibravox) body conduction sensor data, maps clean speech to body-conducted speech. |
| |
|
| | ## Inference script : |
| |
|
| | ```python |
| | import torch, torchaudio |
| | from vibravox.torch_modules.dnn.eben_generator import EBENGenerator |
| | from datasets import load_dataset |
| | |
| | model = EBENGenerator.from_pretrained("Cnam-LMSSC/EBEN_reverse_temple_vibration_pickup") |
| | test_dataset = load_dataset("Cnam-LMSSC/vibravox", "speech_clean", split="test", streaming=True) |
| | |
| | audio_48kHz = torch.Tensor(next(iter(test_dataset))["audio.headset_microphone"]["array"]) |
| | audio_16kHz = torchaudio.functional.resample(audio_48kHz, orig_freq=48_000, new_freq=16_000) |
| | |
| | cut_audio_16kHz = model.cut_to_valid_length(audio_16kHz[None, None, :]) |
| | degraded_audio_16kHz, _ = model(cut_audio_16kHz) |
| | ``` |