Views
No views yet
audio_conv_layers × (Conv1d → BatchNorm1d → ReLU)audio_conv_channels (input channels = 64, kernel size = kernel_size, stride = stride, padding = padding)audio_conv_channelsembed_dim (vocab_size = vocab_size, padding_idx = pad_token_id)lstm_hidden, layers = lstm_layers2 * lstm_hidden[audio_emb, text_emb] → combined_dim = audio_conv_channels + 2 * lstm_hiddenhead_hidden) → ReLU → Dropout(dropout)head_hidden → head_hidden) → ReLUhead_hidden → 1) → Sigmoid| Parameter | Value |
|---|---|
audio_conv_layers | 3 |
audio_conv_channels | 128 |
kernel_size | 5 |
stride | 1 |
padding | 2 |
embed_dim | 128 |
vocab_size | 2048 |
lstm_hidden | 128 |
lstm_layers | 1 |
head_hidden | 256 |
dropout | 0.1 |
pad_token_id | 1 |
| Training Loss | Epoch | Step | Validation Loss | Mse | R2 | Pearson |
|---|---|---|---|---|---|---|
| 0.1237 | 0.8 | 100 | 0.1100 | 0.1100 | 0.1781 | 0.5916 |
| 0.0675 | 1.6 | 200 | 0.0723 | 0.0723 | 0.4597 | 0.6906 |
| 0.0562 | 2.4 | 300 | 0.0684 | 0.0684 | 0.4890 | 0.7094 |
| 0.0625 | 3.2 | 400 | 0.0650 | 0.0650 | 0.5145 | 0.7175 |
| 0.0563 | 4.0 | 500 | 0.0662 | 0.0662 | 0.5055 | 0.7120 |
| 0.0478 | 4.8 | 600 | 0.0616 | 0.0616 | 0.5396 | 0.7398 |
| 0.0454 | 5.6 | 700 | 0.0634 | 0.0634 | 0.5266 | 0.7264 |
| 0.0429 | 6.4 | 800 | 0.0607 | 0.0607 | 0.5467 | 0.7404 |
| 0.0422 | 7.2 | 900 | 0.0615 | 0.0615 | 0.5405 | 0.7429 |
| 0.0421 | 8.0 | 1000 | 0.0622 | 0.0622 | 0.5353 | 0.7338 |
| 0.0423 | 8.8 | 1100 | 0.0610 | 0.0610 | 0.5446 | 0.7424 |
| 0.0485 | 9.6 | 1200 | 0.0610 | 0.0610 | 0.5445 | 0.7416 |
pip install git+https://github.com/diarray-hub/bambara-asr.git@rlnf-v2-gpu1import torch
2from RLNF.Rewards.reward_model import RewardModel
3from RLNF.Rewards.reward_processor import RewardModelProcessor
4from RLNF.Rewards.reward_feature_extraction import RewardFeatureExtractor
5from transformers import T5Tokenizer
6from nemo.collections.asr.models import EncDecCTCModel
7
8audios = ["1.wav", "2.wav"]
9texts = ["kelen", "fila."]
10
11device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
12
13tokenizer : T5Tokenizer = T5Tokenizer.from_pretrained("RobotsMali/reward-model")
14asr_model : EncDecCTCModel= EncDecCTCModel.from_pretrained("RobotsMali/stt-bm-quartznet15x5-V0")
15feature_extractor : RewardFeatureExtractor = RewardFeatureExtractor(asr_model)
16
17processor : RewardModelProcessor = RewardModelProcessor(feature_extractor, tokenizer)
18
19model : RewardModel = RewardModel.from_pretrained("RobotsMali/reward-model")
20
21model.eval()
22model.to(device)
23
24out = processor(audios=audios, texts=texts)
25out = {k: v.to(device) if torch.is_tensor(v) else v for k, v in out.items()}
26
27
28with torch.no_grad() :
29 preds = model(**out).logits
30
31
32for i, (t, val) in enumerate(zip(texts, preds)):
33 print(f"Audio : {audios[i]:<10} | Text: {t:<10} | Score: {val.item() * 100:.4f}")