Release merged NotebookLM full FT + rank-64 final 652
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +9 -0
- CLI_INFERENCE_VERIFIED.json +8 -0
- LICENSE +4 -0
- MERGE_VERIFICATION.json +28 -0
- NOTICE.md +6 -0
- PODCAST_PROMPTING.md +41 -0
- PROMPT_PREFIX_VERIFIED.json +5 -0
- PUBLICATION_ID.json +5 -0
- README.md +61 -0
- TRAINING.md +11 -0
- __init__.py +9 -0
- adapter/README.txt +1 -0
- adapter/READY.json +8 -0
- adapter/adapter.safetensors +3 -0
- added_tokens.json +31 -0
- base_runtime.py +144 -0
- config.json +267 -0
- configuration_moss_tts.py +158 -0
- examples/all_dialogues.json +1292 -0
- examples/de-S1.wav +3 -0
- examples/de-S2.wav +3 -0
- examples/dialogue.json +23 -0
- examples/en-S1.wav +3 -0
- examples/en-S2.wav +3 -0
- examples/es-S1.wav +3 -0
- examples/es-S2.wav +3 -0
- examples/fr-S1.wav +3 -0
- examples/fr-S2.wav +3 -0
- examples/reference-provenance.json +1754 -0
- generation_config.json +7 -0
- gpt2_decoder.py +721 -0
- model-00001-of-00003.safetensors +3 -0
- model-00002-of-00003.safetensors +3 -0
- model-00003-of-00003.safetensors +3 -0
- model.safetensors.index.json +433 -0
- modeling_moss_tts.py +623 -0
- podcast_infer.py +84 -0
- processing_moss_tts.py +914 -0
- processor_config.json +7 -0
- qwen3_decoder.py +582 -0
- requirements.txt +11 -0
- special_tokens_map.json +21 -0
- stats/DATA_READY.json +218 -0
- stats/fullft-DONE.json +6 -0
- stats/fullft-RUN_CONTRACT.json +93 -0
- stats/fullft-STATUS.json +11 -0
- stats/fullft-steps.jsonl +284 -0
- stats/fullft-validation.jsonl +1 -0
- stats/rank64-CONTRACT.json +27 -0
- stats/rank64-FINISHED.json +5 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,12 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
examples/de-S1.wav filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
examples/de-S2.wav filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
examples/en-S1.wav filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
examples/en-S2.wav filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
examples/es-S1.wav filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
examples/es-S2.wav filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
examples/fr-S1.wav filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
examples/fr-S2.wav filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
CLI_INFERENCE_VERIFIED.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"passed": true,
|
| 3 |
+
"input": "actual original-media WAV references encoded by portable CLI",
|
| 4 |
+
"output": "/e/scratch/laionize/schuhmann1/hv_notebooklm_edition_20261103/release/cli-canary.wav",
|
| 5 |
+
"duration_s": 18.0,
|
| 6 |
+
"sample_rate": 48000,
|
| 7 |
+
"job": "2658385"
|
| 8 |
+
}
|
LICENSE
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Creative Commons Attribution 4.0 International (CC BY 4.0)
|
| 2 |
+
Copyright 2026 LAION and contributors.
|
| 3 |
+
https://creativecommons.org/licenses/by/4.0/legalcode
|
| 4 |
+
Fine-tuned weights are released under CC BY 4.0. Third-party components retain their own licenses.
|
MERGE_VERIFICATION.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"passed": true,
|
| 3 |
+
"parent_step": 5613,
|
| 4 |
+
"adapter_step": 652,
|
| 5 |
+
"rank": 64,
|
| 6 |
+
"alpha": 64,
|
| 7 |
+
"scale": 1.0,
|
| 8 |
+
"modules": 146,
|
| 9 |
+
"merged": true,
|
| 10 |
+
"linear_max_relative_error": 0.007352941176470588,
|
| 11 |
+
"export_reload_semantic_prefix_exact": true,
|
| 12 |
+
"weights": {
|
| 13 |
+
"model-00001-of-00003.safetensors": {
|
| 14 |
+
"bytes": 3994689160,
|
| 15 |
+
"sha256": "3c8b9d4e555370073a298b34d65927b7956752de969aade484f05544c9d4acaa"
|
| 16 |
+
},
|
| 17 |
+
"model-00003-of-00003.safetensors": {
|
| 18 |
+
"bytes": 304110936,
|
| 19 |
+
"sha256": "b87a011a7f1e37373e5a4489e9dbbffbb298c4760505e94474bfc63f37d1660c"
|
| 20 |
+
},
|
| 21 |
+
"model-00002-of-00003.safetensors": {
|
| 22 |
+
"bytes": 3961231200,
|
| 23 |
+
"sha256": "a9d4328d7b8a2f7e677f3e9aa35568f14de8f4e0fb7df615fc36adc5cfb8c2a0"
|
| 24 |
+
}
|
| 25 |
+
},
|
| 26 |
+
"adapter_sha256": "844cf1707ab8e3980e9aab09131132de955be68fc0eab62dd933d24a810744e0",
|
| 27 |
+
"time": 1793662358.5163062
|
| 28 |
+
}
|
NOTICE.md
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Parent: https://huggingface.co/laion/Humaneness-Voice-Large-1.3-Alpha
|
| 2 |
+
Architecture lineage: https://huggingface.co/laion/moss-tts-local-transformer-4.55b-voice-acting-v2-sft3
|
| 3 |
+
External codec: https://huggingface.co/OpenMOSS-Team/MOSS-Audio-Tokenizer-v2
|
| 4 |
+
Podcast source: https://huggingface.co/datasets/TTS-AGI/NotebookLM-Podcasts
|
| 5 |
+
Prepared data: https://huggingface.co/datasets/laion/NotebookLM-Podcasts-Humaneness-Prepared
|
| 6 |
+
Original code attribution is retained in implementation files. This release does not relicense third-party software or grant identity rights.
|
PODCAST_PROMPTING.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Podcast prompting and input contract
|
| 2 |
+
|
| 3 |
+
Use podcast_infer.py with a dialogue JSON. Directions remain English; the words spoken stay in their original language. The CLI supplies the two voice recordings separately. Never insert a filename, audio placeholder or speaker identity into the literal spoken text.
|
| 4 |
+
|
| 5 |
+
## Minimal dialogue
|
| 6 |
+
|
| 7 |
+
{
|
| 8 |
+
"language": "en",
|
| 9 |
+
"general": "Two friends chatting naturally in a quiet studio.",
|
| 10 |
+
"pause_s": 0.24,
|
| 11 |
+
"turns": [
|
| 12 |
+
{"speaker": "S1", "text": "Did you try the new walking route?", "seconds": 3.0, "direction": "warm, curious, conversational"},
|
| 13 |
+
{"speaker": "S2", "text": "I did... and I found a lovely little bookshop.", "seconds": 4.4, "direction": "friendly, amused, spontaneous"}
|
| 14 |
+
]
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
## The rendered performance prompt
|
| 18 |
+
|
| 19 |
+
GENERAL: Two friends chatting naturally in a quiet studio.
|
| 20 |
+
SCRIPT:
|
| 21 |
+
(speaker=S1, warm, curious, conversational) [3.00 seconds duration] Did you try the new walking route?
|
| 22 |
+
[0.24 seconds pause]
|
| 23 |
+
(speaker=S2, friendly, amused, spontaneous) [4.40 seconds duration] I did... and I found a lovely little bookshop.
|
| 24 |
+
|
| 25 |
+
GENERAL may be empty. SCRIPT's speaker= syntax, parentheses, square timing cues and ordering are part of the trained input. Directions are not literal words. Keep the transcript itself free of speaker labels. Ellipses can suggest a hesitation, but do not guarantee a precise pause; square pause cues are clearer. Requested turn durations include the speech in that turn; separate pause cues add to the total. Do not count the same pause twice.
|
| 26 |
+
|
| 27 |
+
## Reference audio
|
| 28 |
+
|
| 29 |
+
Supply one clean voice per file, preferably 6–12 seconds, with no music, clipping or competing speaker. The allowed range after codec quantization is 63–187 frames (5.04–14.96 seconds). The old 2.96-second reference limit is not used. S1 maps to --reference-s1, and S2 maps to --reference-s2. The two files may be independent authorized voices. The new demo uses clean original HQ training-source crops; do not judge the older codec-reconstructed players as untouched reference recordings.
|
| 30 |
+
|
| 31 |
+
## Optional conversation history
|
| 32 |
+
|
| 33 |
+
Use --context previous.wav --context-description "S1: 0.0–5.0 seconds; S2: 5.2–11.0 seconds" only for genuinely earlier audio. Keep chronological context and a truthful speaker timeline; maximum 60 seconds. Identity references and dialogue history are distinct inputs. Never include the desired future target in previous.wav. The new HQ demonstration deliberately tests a fresh dialogue with two identity references and no earlier conversation.
|
| 34 |
+
|
| 35 |
+
## Longer conversations
|
| 36 |
+
|
| 37 |
+
The test matrix requests 2 turns at 18 seconds, 6 turns at 38.4 seconds and 8 turns at 59.2 seconds. These are requested durations; the measured generated durations are shown separately. The model generates a whole continuation jointly. Do not claim that requested labels prove it actually changed speakers; listen to each transition. For longer sessions, retain recent chronological output as context and request the next part, keeping identity labels consistent.
|
| 38 |
+
|
| 39 |
+
## Reproducibility
|
| 40 |
+
|
| 41 |
+
The examples use seed 20261103 plus topic index, temperature 1, top-p .95, top-k 50 and CFG 1. Prompt files, sampling and source-reference provenance are included. A fixed seed does not promise bit-identical outputs across different GPU hardware, software versions, precision or kernel choices.
|
PROMPT_PREFIX_VERIFIED.json
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"passed": true,
|
| 3 |
+
"tasks": 30,
|
| 4 |
+
"method": "Actual tokenizer/processor; portable helper input_ids and attention_mask match frozen podcast training packer exactly for every new dialogue. No neural inference in this CPU-only format test."
|
| 5 |
+
}
|
PUBLICATION_ID.json
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project": "notebooklm-edition-20261103",
|
| 3 |
+
"parent_step": 5613,
|
| 4 |
+
"adapter_step": 652
|
| 5 |
+
}
|
README.md
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: cc-by-4.0
|
| 3 |
+
language:
|
| 4 |
+
- en
|
| 5 |
+
- de
|
| 6 |
+
- fr
|
| 7 |
+
- es
|
| 8 |
+
pipeline_tag: text-to-speech
|
| 9 |
+
base_model: laion/Humaneness-Voice-Large-1.3-Alpha
|
| 10 |
+
tags:
|
| 11 |
+
- podcast
|
| 12 |
+
- multi-speaker
|
| 13 |
+
- moss-tts
|
| 14 |
+
- notebooklm
|
| 15 |
+
- merged-lora
|
| 16 |
+
---
|
| 17 |
+
|
| 18 |
+
# Humaneness Voice Large — NotebookLM Edition
|
| 19 |
+
|
| 20 |
+
Generate a two-person podcast conversation from a written dialogue and two clean voice references. This is the user's listening-selected **NotebookLM + rank 64 · final 652**, with its adapter already merged at scale 1. Download the root weights and run inference directly; do not apply the included adapter a second time.
|
| 21 |
+
|
| 22 |
+
The model begins with [Humaneness Voice Large 1.3 Alpha](https://huggingface.co/laion/Humaneness-Voice-Large-1.3-Alpha), receives a three-epoch full fine-tune on filtered two-speaker podcasts, and then a small rank-64 quality-ladder fine-tune. It produces the entire requested exchange as one acoustic sequence. It is not a pipeline that separately synthesizes each turn and joins files.
|
| 23 |
+
|
| 24 |
+
**Start here:** [Podcast prompting guide](PODCAST_PROMPTING.md) · [Inference script](podcast_infer.py) · [Training and lineage](TRAINING.md) · [Existing held-out comparison](https://laion-humaneness-voice-large-podcast-listening.static.hf.space/lora-comparison.html)
|
| 25 |
+
|
| 26 |
+
## Install and generate
|
| 27 |
+
|
| 28 |
+
Use a CUDA GPU with sufficient memory, a recent compatible PyTorch installation, and Python 3.11 or newer. The tested JUPITER environment used PyTorch 2.9.1 and Transformers 5.14.1. CPU-only inference and other precision modes are not validated here.
|
| 29 |
+
|
| 30 |
+
```bash
|
| 31 |
+
hf download laion/Humaneness-Voice-Large-NotebookLM-Edition --local-dir notebooklm-edition
|
| 32 |
+
cd notebooklm-edition
|
| 33 |
+
pip install -r requirements.txt
|
| 34 |
+
python podcast_infer.py --model . --dialogue examples/dialogue.json \
|
| 35 |
+
--reference-s1 examples/en-S1.wav --reference-s2 examples/en-S2.wav \
|
| 36 |
+
--seed 20261103 --output conversation.wav
|
| 37 |
+
```
|
| 38 |
+
|
| 39 |
+
The first invocation also downloads the separately licensed [MOSS Audio Tokenizer v2](https://huggingface.co/OpenMOSS-Team/MOSS-Audio-Tokenizer-v2). The model's custom implementation requires trust_remote_code; inspect the supplied code before running it. Supply your own authorized clean single-speaker WAV references to change the voices. The provided reference files are original-media crops with source provenance in examples/reference-provenance.json.
|
| 40 |
+
|
| 41 |
+
## What the model receives
|
| 42 |
+
|
| 43 |
+
Two distinct S1/S2 identity-reference blocks precede the prompt. Each reference must cover 5.04–14.96 seconds; longer input files are cropped before encoding. Optional strictly earlier conversation may supply up to 60 seconds of context. The GENERAL block describes the overall performance. SCRIPT contains alternating speaker labels, English delivery directions, literal words in the requested language, and duration/pause cues. The CLI builds the exact trained ChatML serialization and preserves all audio placeholders. The generic base-model single-speaker helper does not implement this podcast contract.
|
| 44 |
+
|
| 45 |
+
S1 and S2 are local routing labels for the two recordings, not global identities, registered personal names or spoken words. English, German, French and Spanish are the focus of the HQ demonstrations. Dutch was present in the first full fine-tune but excluded from the quality adapter because publisher labels were unreliable; Dutch performance is not advertised.
|
| 46 |
+
|
| 47 |
+
## Architecture and sampling
|
| 48 |
+
|
| 49 |
+
The architecture is the Large MOSS Local Transformer family: a 36-layer Qwen3-family semantic transformer with 2,560-dimensional states and a one-layer local acoustic transformer using the same width. Twelve codebooks are generated at each 80-ms acoustic frame, or 150 codec indices per second. MOSS-v2 decodes the result to 48-kHz mono audio. The tokenizer and network architecture were not expanded for speaker routing.
|
| 50 |
+
|
| 51 |
+
The reference command uses audio temperature 1, top-p 0.95, top-k 50, repetition penalty 1, and CFG 1. Whole-dialogue generation is stochastic. Requested durations and speaker switches are learned instructions, not hard constraints or forced waveform edits. Start with two short turns, then try longer dialogues.
|
| 52 |
+
|
| 53 |
+
## Evidence and limits
|
| 54 |
+
|
| 55 |
+
The user selected this checkpoint after listening. The earlier frozen 50-task comparison gave this adapter CE 6.079, genuineness 3.959 and mean per-clip ASR WER 11.44%; its NotebookLM full-fine-tuned parent gave 6.084, 3.943 and 7.76%. Those metrics do not establish an overall automatic improvement. They also do not measure speaker-switch correctness. The HQ reference study uses new text and training-domain identities; it is a demonstration, not a held-out-speaker benchmark. All raw model-predicted scores and prompts are preserved.
|
| 56 |
+
|
| 57 |
+
## License and intended use
|
| 58 |
+
|
| 59 |
+
The released fine-tuned weights are CC BY 4.0; see LICENSE and NOTICE.md. Upstream code, tokenizer assets, the external codec, and source recordings retain their own terms. Research and authorized dataset augmentation are recommended uses. Use only voices for which you have appropriate permission; do not use the model for deceptive impersonation. Test quality, language accuracy and speaker stability before any production use. LAION does not endorse generated statements or speaker identities.
|
| 60 |
+
|
| 61 |
+
The new 30-dialogue HQ-reference study is running. Its page will be linked here automatically after public HTML and audio publication.
|
TRAINING.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Training lineage and reproducibility
|
| 2 |
+
|
| 3 |
+
1. Start from Humaneness Voice Large 1.3 Alpha, final step 9,799. This is already an extensively supervised Large model, not random initialization or the original SFT3 checkpoint.
|
| 4 |
+
2. Full fine-tune all parameters on the prepared two-speaker podcast corpus for three shuffled epochs. Starting and middle 30-second windows each require predicted DNSMOS background >=4.0. Five publisher-language pools were prepared. Episode-disjoint heldouts and duplicate-audio checks precede training. Use 64 GPUs, accumulation 2, peak semantic LR 2e-5 and Talker LR 4e-5, 5% warmup and one cosine schedule to a 10% floor. Final checkpoint: step 5,613. Audio-only target labels exclude reference and conversation-prefix audio.
|
| 5 |
+
3. Attach rank-64, alpha-64 adapters to 146 attention projections across semantic and local transformers. Use the same two-speaker prefix and strict-past-context contract. The clean quality ladder contains 732 unique examples in EN/DE/FR/ES; Dutch is excluded. The six nominal hourly caps are 5,4,3,2,1,1, but actual selected data are much smaller. Presented target audio is 50.56+43.23+35.87+25.46+11.66+11.66 minutes, about 2.97 hours including repetitions. This must not be described as 50–100 hours of unique training audio.
|
| 6 |
+
4. Four GPUs, effective batch four, 652 total updates. Phase lengths are 183,160,132,91,43,43. Linear warmup reaches peak 3e-5 at the end of phase 1; one cosine decay spans the remaining phases to 3e-6. Optimizer is AdamW, betas .9/.95, epsilon 1e-8, no weight decay. Fresh-process optimizer/RNG/adapter replay smoke passed before production. Final update 652 is the release adapter.
|
| 7 |
+
5. Merge the rank-64 residual B@A at scale 1 into its actual full-fine-tuned podcast parent. Root weights are BF16 for inference. Every adapted Linear is checked against the trained residual definition, followed by exact export/reload equality for the merged model's semantic prefix. BF16 merging is not claimed bit-identical to evaluating separate FP32 residual adapters. The unmerged original adapter is retained under adapter/ for provenance and must not be applied again to root weights.
|
| 8 |
+
|
| 9 |
+
Original training scripts and run statistics are included under training/ and stats/. They preserve exact JUPITER paths and environment entrypoints as historical evidence; relocate those paths and stage their dependencies before rerunning on another cluster. They are not falsely advertised as a standalone one-command portable training pipeline. The root inference script is portable and is tested against the merged export on allocated compute. External codec and scorer weights are separate dependencies, not silently bundled.
|
| 10 |
+
|
| 11 |
+
The held-out evaluation and the new-text HQ-reference demonstration answer different questions. The latter intentionally uses in-domain training-source voices. Full outputs are EARS-scored in <=30-second windows, weighted by duration; ASR chunks are concatenated for mean per-clip WER. Chunk boundaries may introduce errors. Speaker-switch correctness is not computed from the requested script. Inspect actual speaker changes by listening.
|
__init__.py
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from .configuration_moss_tts import MossTTSLocalConfig
|
| 2 |
+
from .modeling_moss_tts import MossTTSLocalModel
|
| 3 |
+
from .processing_moss_tts import MossTTSLocalProcessor
|
| 4 |
+
|
| 5 |
+
__all__ = [
|
| 6 |
+
"MossTTSLocalConfig",
|
| 7 |
+
"MossTTSLocalModel",
|
| 8 |
+
"MossTTSLocalProcessor",
|
| 9 |
+
]
|
adapter/README.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
Rank 64, alpha 64, scale 1, final update 652. Already merged in root weights. Do not apply twice. Original parent is NotebookLM full FT step 5613, not unmodified Large 1.3.
|
adapter/READY.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"step": 652,
|
| 3 |
+
"reason": "final",
|
| 4 |
+
"contract_sha256": "88d1284099df084d941f8274e953612a864c607e9ae4380af738280ef9dfc517",
|
| 5 |
+
"training_sha256": "86a8fa8f5ff1c3054278e0ea4f4fbb41b5060c7fe900bd5d46ab1f2dce65a99a",
|
| 6 |
+
"adapter_sha256": "844cf1707ab8e3980e9aab09131132de955be68fc0eab62dd933d24a810744e0",
|
| 7 |
+
"optimizer_rng_sampler_schedule_saved": true
|
| 8 |
+
}
|
adapter/adapter.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:844cf1707ab8e3980e9aab09131132de955be68fc0eab62dd933d24a810744e0
|
| 3 |
+
size 192708704
|
added_tokens.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"</think>": 151668,
|
| 3 |
+
"</tool_call>": 151658,
|
| 4 |
+
"</tool_response>": 151666,
|
| 5 |
+
"<think>": 151667,
|
| 6 |
+
"<tool_call>": 151657,
|
| 7 |
+
"<tool_response>": 151665,
|
| 8 |
+
"<|audio_end|>": 151670,
|
| 9 |
+
"<|audio_pad|>": 151671,
|
| 10 |
+
"<|audio_start|>": 151669,
|
| 11 |
+
"<|box_end|>": 151649,
|
| 12 |
+
"<|box_start|>": 151648,
|
| 13 |
+
"<|endoftext|>": 151643,
|
| 14 |
+
"<|file_sep|>": 151664,
|
| 15 |
+
"<|fim_middle|>": 151660,
|
| 16 |
+
"<|fim_pad|>": 151662,
|
| 17 |
+
"<|fim_prefix|>": 151659,
|
| 18 |
+
"<|fim_suffix|>": 151661,
|
| 19 |
+
"<|im_end|>": 151645,
|
| 20 |
+
"<|im_start|>": 151644,
|
| 21 |
+
"<|image_pad|>": 151655,
|
| 22 |
+
"<|object_ref_end|>": 151647,
|
| 23 |
+
"<|object_ref_start|>": 151646,
|
| 24 |
+
"<|quad_end|>": 151651,
|
| 25 |
+
"<|quad_start|>": 151650,
|
| 26 |
+
"<|repo_name|>": 151663,
|
| 27 |
+
"<|video_pad|>": 151656,
|
| 28 |
+
"<|vision_end|>": 151653,
|
| 29 |
+
"<|vision_pad|>": 151654,
|
| 30 |
+
"<|vision_start|>": 151652
|
| 31 |
+
}
|
base_runtime.py
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Humaneness Voice Large 1.3 Alpha: portable full-model inference.
|
| 2 |
+
|
| 3 |
+
Use a downloaded model directory, or a Hugging Face model ID. This file has no
|
| 4 |
+
JUPITER-specific runtime dependency. Twelve MOSS-v2 codebooks,48kHz mono.
|
| 5 |
+
"""
|
| 6 |
+
import argparse
|
| 7 |
+
import json
|
| 8 |
+
from pathlib import Path
|
| 9 |
+
|
| 10 |
+
LANGUAGES = {'en': 'English', 'de': 'German', 'nl': 'Dutch', 'fr': 'French', 'es': 'Spanish'}
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
def load_model(directory, device='cuda:0'):
|
| 14 |
+
import torch
|
| 15 |
+
from transformers import AutoModel, AutoTokenizer
|
| 16 |
+
from transformers.dynamic_module_utils import get_class_from_dynamic_module
|
| 17 |
+
model = AutoModel.from_pretrained(str(directory), trust_remote_code=True,
|
| 18 |
+
dtype=torch.bfloat16, attn_implementation='sdpa').to(device).eval()
|
| 19 |
+
Processor = get_class_from_dynamic_module('processing_moss_tts.MossTTSLocalProcessor', str(directory))
|
| 20 |
+
tokenizer = AutoTokenizer.from_pretrained(str(directory), trust_remote_code=True)
|
| 21 |
+
proc = Processor(tokenizer=tokenizer, audio_tokenizer=None, model_config=model.config)
|
| 22 |
+
return model, proc
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
def load_codec(proc, path, device='cuda:0'):
|
| 26 |
+
from transformers import AutoModel
|
| 27 |
+
codec = AutoModel.from_pretrained(str(path), trust_remote_code=True, codec_weight_dtype='fp32')
|
| 28 |
+
if hasattr(codec, 'set_compute_dtype'):
|
| 29 |
+
codec.set_compute_dtype('bf16')
|
| 30 |
+
proc.audio_tokenizer = codec.to(device).eval()
|
| 31 |
+
return proc
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
def build_user(proc, *, text, prompt, frames, language, reference=None, alias=None):
|
| 35 |
+
if not text.strip() or not prompt.strip() or language not in LANGUAGES:
|
| 36 |
+
raise ValueError('Nonempty literal text, English directions and a supported language required')
|
| 37 |
+
if reference is not None and (reference.ndim != 2 or reference.shape[1] != 12
|
| 38 |
+
or not 63 <= len(reference) <= 187):
|
| 39 |
+
raise ValueError('Reference codes must contain12codebooks over5.04–14.96seconds')
|
| 40 |
+
if alias is not None:
|
| 41 |
+
if reference is not None:
|
| 42 |
+
raise ValueError('Choose either a reference recording or a registered voice name, not both')
|
| 43 |
+
catalog = json.loads(Path(__file__).with_name('voices.json').read_text())
|
| 44 |
+
names = {v['speaker_alias'] for v in catalog['voices']}
|
| 45 |
+
if alias not in names:
|
| 46 |
+
raise ValueError('Unknown voice name; see VOICE_ALIASES.md and voices.json')
|
| 47 |
+
user = proc.build_user_message(text=text, instruction=prompt, tokens=int(frames),
|
| 48 |
+
language=LANGUAGES[language], reference=[reference] if reference is not None else None)
|
| 49 |
+
if alias is not None:
|
| 50 |
+
# Exact alias representation used by training/legacy/acting_data.py.
|
| 51 |
+
# It is not an invented prefix in the spoken text or a new special token.
|
| 52 |
+
marker = '- Reference(s):\nNone\n'
|
| 53 |
+
if user['content'].count(marker) != 1 or user.get('audio_codes_list'):
|
| 54 |
+
raise RuntimeError('Processor wrapper no longer matches the trained voice-name format')
|
| 55 |
+
user['content'] = user['content'].replace(marker, f'- Reference(s):\nSpeaker: {alias}\n', 1)
|
| 56 |
+
return user
|
| 57 |
+
|
| 58 |
+
|
| 59 |
+
def generate(model, proc, user, *, seed=777, max_frames=625, device='cuda:0'):
|
| 60 |
+
import torch
|
| 61 |
+
batch = proc([[user]], mode='generation')
|
| 62 |
+
torch.manual_seed(seed)
|
| 63 |
+
torch.cuda.manual_seed_all(seed)
|
| 64 |
+
with torch.inference_mode(), torch.autocast('cuda', dtype=torch.bfloat16):
|
| 65 |
+
output = model.generate(input_ids=batch['input_ids'].to(device),
|
| 66 |
+
attention_mask=batch['attention_mask'].to(device), max_new_frames=max_frames,
|
| 67 |
+
do_sample=True, audio_temperature=1., audio_top_p=.95, audio_top_k=50,
|
| 68 |
+
audio_repetition_penalty=1., use_kv_cache=True)
|
| 69 |
+
prefix, sequence = output[0]
|
| 70 |
+
if prefix != 0 or sequence.ndim != 2 or sequence.shape[1] != 13:
|
| 71 |
+
raise RuntimeError('Unexpected MOSS frame layout')
|
| 72 |
+
codes = sequence[1:, 1:]
|
| 73 |
+
codes = codes[(codes[:, 0] >= 0) & (codes[:, 0] != model.config.audio_pad_token_id)]
|
| 74 |
+
if len(codes) < 2 or int(codes.min()) < 0 or int(codes.max()) > 1023:
|
| 75 |
+
raise RuntimeError('Too few frames or corrupt codec indices')
|
| 76 |
+
return codes.cpu()
|
| 77 |
+
|
| 78 |
+
|
| 79 |
+
def decode(proc, codes, device='cuda:0'):
|
| 80 |
+
import numpy as np
|
| 81 |
+
import torch
|
| 82 |
+
with torch.inference_mode():
|
| 83 |
+
wave = proc.decode_audio_codes([codes.to(device)], return_stereo=False)[0]
|
| 84 |
+
wave = wave.float().cpu().numpy().reshape(-1)
|
| 85 |
+
rate = int(proc.model_config.sampling_rate)
|
| 86 |
+
if not np.isfinite(wave).all() or abs(len(wave) / len(codes) - rate / 12.5) > .01 * rate / 12.5:
|
| 87 |
+
raise RuntimeError('Codec frame-rate/sample-rate canary failed')
|
| 88 |
+
return wave, rate
|
| 89 |
+
|
| 90 |
+
|
| 91 |
+
def main():
|
| 92 |
+
p = argparse.ArgumentParser(description=__doc__)
|
| 93 |
+
p.add_argument('--model', default='laion/Humaneness-Voice-Large-1.3-Alpha')
|
| 94 |
+
p.add_argument('--codec', default='OpenMOSS-Team/MOSS-Audio-Tokenizer-v2')
|
| 95 |
+
p.add_argument('--text', required=True, help='Literal spoken words, without directing tags')
|
| 96 |
+
p.add_argument('--prompt', help='GENERAL/SCRIPT directions; literal \\n accepted')
|
| 97 |
+
p.add_argument('--prompt-file', type=Path)
|
| 98 |
+
p.add_argument('--language', choices=LANGUAGES, default='en')
|
| 99 |
+
voice = p.add_mutually_exclusive_group()
|
| 100 |
+
voice.add_argument('--reference-wav', type=Path)
|
| 101 |
+
voice.add_argument('--voice-name', help='Registered fictional voice alias; see VOICE_ALIASES.md')
|
| 102 |
+
p.add_argument('--seconds', type=float, default=8.)
|
| 103 |
+
p.add_argument('--seed', type=int, default=777)
|
| 104 |
+
p.add_argument('--output', type=Path, required=True)
|
| 105 |
+
args = p.parse_args()
|
| 106 |
+
if bool(args.prompt) == bool(args.prompt_file):
|
| 107 |
+
p.error('Supply exactly one of --prompt or --prompt-file')
|
| 108 |
+
if not 1 <= args.seconds <= 60:
|
| 109 |
+
p.error('Target seconds must be between1and60')
|
| 110 |
+
import numpy as np
|
| 111 |
+
import soundfile as sf
|
| 112 |
+
import torch
|
| 113 |
+
if not torch.cuda.is_available():
|
| 114 |
+
raise RuntimeError('The tested path requires a CUDA GPU')
|
| 115 |
+
device = 'cuda:0'
|
| 116 |
+
model, proc = load_model(args.model, device)
|
| 117 |
+
load_codec(proc, args.codec, device)
|
| 118 |
+
reference = None
|
| 119 |
+
if args.reference_wav:
|
| 120 |
+
wave, sr = sf.read(args.reference_wav, dtype='float32', always_2d=True)
|
| 121 |
+
if not np.isfinite(wave).all() or len(wave) / sr < 5.04:
|
| 122 |
+
raise ValueError('Use at least5.04seconds of clean single-speaker reference speech')
|
| 123 |
+
# Never reinstate37frames/2.96s. Crop waveform BEFORE encoding.
|
| 124 |
+
wave = wave[:int(sr * 14.96)]
|
| 125 |
+
with torch.inference_mode():
|
| 126 |
+
reference = proc.encode_audios_from_wav([torch.from_numpy(wave.T.copy())], int(sr), n_vq=12)[0][:187]
|
| 127 |
+
prompt = args.prompt_file.read_text() if args.prompt_file else args.prompt.replace('\\n', '\n')
|
| 128 |
+
frames = round(args.seconds * 12.5)
|
| 129 |
+
user = build_user(proc, text=args.text, prompt=prompt, frames=frames,
|
| 130 |
+
language=args.language, reference=reference, alias=args.voice_name)
|
| 131 |
+
codes = generate(model, proc, user, seed=args.seed, max_frames=min(1000, frames + 190))
|
| 132 |
+
wave, sr = decode(proc, codes)
|
| 133 |
+
args.output.parent.mkdir(parents=True, exist_ok=True)
|
| 134 |
+
if args.output.exists():
|
| 135 |
+
raise FileExistsError('Refusing to overwrite ' + str(args.output))
|
| 136 |
+
sf.write(args.output, wave, sr, subtype='PCM_16')
|
| 137 |
+
print(json.dumps({'output': str(args.output), 'duration_s': len(wave) / sr,
|
| 138 |
+
'requested_s': args.seconds, 'frames': len(codes), 'language': args.language,
|
| 139 |
+
'reference_frames': len(reference) if reference is not None else 0,
|
| 140 |
+
'voice_name': args.voice_name, 'seed': args.seed}))
|
| 141 |
+
|
| 142 |
+
|
| 143 |
+
if __name__ == '__main__':
|
| 144 |
+
main()
|
config.json
ADDED
|
@@ -0,0 +1,267 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architectures": [
|
| 3 |
+
"MossTTSLocalModel"
|
| 4 |
+
],
|
| 5 |
+
"attn_implementation": "sdpa",
|
| 6 |
+
"audio_assistant_gen_slot_token_id": 151656,
|
| 7 |
+
"audio_assistant_slot_token_id": 151656,
|
| 8 |
+
"audio_codebook_sizes": [
|
| 9 |
+
1024,
|
| 10 |
+
1024,
|
| 11 |
+
1024,
|
| 12 |
+
1024,
|
| 13 |
+
1024,
|
| 14 |
+
1024,
|
| 15 |
+
1024,
|
| 16 |
+
1024,
|
| 17 |
+
1024,
|
| 18 |
+
1024,
|
| 19 |
+
1024,
|
| 20 |
+
1024
|
| 21 |
+
],
|
| 22 |
+
"audio_end_token_id": 151670,
|
| 23 |
+
"audio_pad_code": 1024,
|
| 24 |
+
"audio_pad_token_id": 1024,
|
| 25 |
+
"audio_start_token_id": 151669,
|
| 26 |
+
"audio_tokenizer_name_or_path": "OpenMOSS-Team/MOSS-Audio-Tokenizer-v2",
|
| 27 |
+
"audio_user_slot_token_id": 151654,
|
| 28 |
+
"audio_vocab_size": 1024,
|
| 29 |
+
"auto_map": {
|
| 30 |
+
"AutoConfig": "configuration_moss_tts.MossTTSLocalConfig",
|
| 31 |
+
"AutoModel": "modeling_moss_tts.MossTTSLocalModel",
|
| 32 |
+
"AutoProcessor": "processing_moss_tts.MossTTSLocalProcessor"
|
| 33 |
+
},
|
| 34 |
+
"dtype": "bfloat16",
|
| 35 |
+
"gpt2_config": {
|
| 36 |
+
"activation_function": "silu",
|
| 37 |
+
"add_cross_attention": false,
|
| 38 |
+
"attn_pdrop": 0.0,
|
| 39 |
+
"bos_token_id": null,
|
| 40 |
+
"cross_attention_hidden_size": null,
|
| 41 |
+
"decoder_start_token_id": null,
|
| 42 |
+
"embd_pdrop": 0.0,
|
| 43 |
+
"eos_token_id": 151645,
|
| 44 |
+
"finetuning_task": null,
|
| 45 |
+
"initializer_range": 0.02,
|
| 46 |
+
"is_decoder": false,
|
| 47 |
+
"layer_norm_epsilon": 1e-06,
|
| 48 |
+
"model_type": "gpt2",
|
| 49 |
+
"n_ctx": 10240,
|
| 50 |
+
"n_embd": 2560,
|
| 51 |
+
"n_head": 32,
|
| 52 |
+
"n_inner": 9728,
|
| 53 |
+
"n_layer": 1,
|
| 54 |
+
"n_positions": 10240,
|
| 55 |
+
"pad_token_id": null,
|
| 56 |
+
"position_embedding_type": "rope",
|
| 57 |
+
"prefix": null,
|
| 58 |
+
"pruned_heads": {},
|
| 59 |
+
"reorder_and_upcast_attn": false,
|
| 60 |
+
"resid_pdrop": 0.0,
|
| 61 |
+
"rope_base": 1000000.0,
|
| 62 |
+
"scale_attn_by_inverse_layer_idx": false,
|
| 63 |
+
"scale_attn_weights": true,
|
| 64 |
+
"sep_token_id": null,
|
| 65 |
+
"summary_activation": null,
|
| 66 |
+
"summary_first_dropout": 0.1,
|
| 67 |
+
"summary_proj_to_labels": true,
|
| 68 |
+
"summary_type": "cls_index",
|
| 69 |
+
"summary_use_proj": true,
|
| 70 |
+
"task_specific_params": null,
|
| 71 |
+
"tf_legacy_loss": false,
|
| 72 |
+
"tie_encoder_decoder": false,
|
| 73 |
+
"tie_word_embeddings": true,
|
| 74 |
+
"tokenizer_class": null,
|
| 75 |
+
"torchscript": false,
|
| 76 |
+
"use_bfloat16": false,
|
| 77 |
+
"use_cache": true,
|
| 78 |
+
"vocab_size": 151936
|
| 79 |
+
},
|
| 80 |
+
"hidden_size": 2560,
|
| 81 |
+
"im_end_token_id": 151645,
|
| 82 |
+
"im_start_token_id": 151644,
|
| 83 |
+
"initializer_range": 0.02,
|
| 84 |
+
"language_config": {
|
| 85 |
+
"add_cross_attention": false,
|
| 86 |
+
"architectures": [
|
| 87 |
+
"Qwen3ForCausalLM"
|
| 88 |
+
],
|
| 89 |
+
"attention_bias": false,
|
| 90 |
+
"attention_dropout": 0.0,
|
| 91 |
+
"bos_token_id": 151643,
|
| 92 |
+
"cross_attention_hidden_size": null,
|
| 93 |
+
"decoder_start_token_id": null,
|
| 94 |
+
"dtype": "bfloat16",
|
| 95 |
+
"eos_token_id": 151643,
|
| 96 |
+
"finetuning_task": null,
|
| 97 |
+
"gradient_checkpointing_use_reentrant": false,
|
| 98 |
+
"head_dim": 128,
|
| 99 |
+
"hidden_act": "silu",
|
| 100 |
+
"hidden_size": 2560,
|
| 101 |
+
"initializer_range": 0.02,
|
| 102 |
+
"intermediate_size": 9728,
|
| 103 |
+
"is_decoder": false,
|
| 104 |
+
"layer_types": [
|
| 105 |
+
"full_attention",
|
| 106 |
+
"full_attention",
|
| 107 |
+
"full_attention",
|
| 108 |
+
"full_attention",
|
| 109 |
+
"full_attention",
|
| 110 |
+
"full_attention",
|
| 111 |
+
"full_attention",
|
| 112 |
+
"full_attention",
|
| 113 |
+
"full_attention",
|
| 114 |
+
"full_attention",
|
| 115 |
+
"full_attention",
|
| 116 |
+
"full_attention",
|
| 117 |
+
"full_attention",
|
| 118 |
+
"full_attention",
|
| 119 |
+
"full_attention",
|
| 120 |
+
"full_attention",
|
| 121 |
+
"full_attention",
|
| 122 |
+
"full_attention",
|
| 123 |
+
"full_attention",
|
| 124 |
+
"full_attention",
|
| 125 |
+
"full_attention",
|
| 126 |
+
"full_attention",
|
| 127 |
+
"full_attention",
|
| 128 |
+
"full_attention",
|
| 129 |
+
"full_attention",
|
| 130 |
+
"full_attention",
|
| 131 |
+
"full_attention",
|
| 132 |
+
"full_attention",
|
| 133 |
+
"full_attention",
|
| 134 |
+
"full_attention",
|
| 135 |
+
"full_attention",
|
| 136 |
+
"full_attention",
|
| 137 |
+
"full_attention",
|
| 138 |
+
"full_attention",
|
| 139 |
+
"full_attention",
|
| 140 |
+
"full_attention"
|
| 141 |
+
],
|
| 142 |
+
"max_position_embeddings": 32768,
|
| 143 |
+
"max_window_layers": 36,
|
| 144 |
+
"model_type": "qwen3",
|
| 145 |
+
"num_attention_heads": 32,
|
| 146 |
+
"num_hidden_layers": 36,
|
| 147 |
+
"num_key_value_heads": 8,
|
| 148 |
+
"pad_token_id": 151643,
|
| 149 |
+
"prefix": null,
|
| 150 |
+
"pruned_heads": {},
|
| 151 |
+
"rms_norm_eps": 1e-06,
|
| 152 |
+
"rope_parameters": {
|
| 153 |
+
"rope_theta": 1000000,
|
| 154 |
+
"rope_type": "default"
|
| 155 |
+
},
|
| 156 |
+
"sep_token_id": null,
|
| 157 |
+
"sliding_window": null,
|
| 158 |
+
"task_specific_params": null,
|
| 159 |
+
"tf_legacy_loss": false,
|
| 160 |
+
"tie_encoder_decoder": false,
|
| 161 |
+
"tie_word_embeddings": true,
|
| 162 |
+
"tokenizer_class": null,
|
| 163 |
+
"torchscript": false,
|
| 164 |
+
"use_bfloat16": false,
|
| 165 |
+
"use_cache": false,
|
| 166 |
+
"use_sliding_window": false,
|
| 167 |
+
"vocab_size": 151936
|
| 168 |
+
},
|
| 169 |
+
"local_hidden_size": 2560,
|
| 170 |
+
"local_text_head_mode": "binary",
|
| 171 |
+
"local_transformer_attn_implementation": "sdpa",
|
| 172 |
+
"local_transformer_layers": 1,
|
| 173 |
+
"model_type": "moss_tts_local",
|
| 174 |
+
"n_vq": 12,
|
| 175 |
+
"pad_token_id": 151643,
|
| 176 |
+
"processor_class": "MossTTSLocalProcessor",
|
| 177 |
+
"qwen3_config": {
|
| 178 |
+
"add_cross_attention": false,
|
| 179 |
+
"architectures": [
|
| 180 |
+
"Qwen3ForCausalLM"
|
| 181 |
+
],
|
| 182 |
+
"attention_bias": false,
|
| 183 |
+
"attention_dropout": 0.0,
|
| 184 |
+
"bos_token_id": 151643,
|
| 185 |
+
"cross_attention_hidden_size": null,
|
| 186 |
+
"decoder_start_token_id": null,
|
| 187 |
+
"dtype": "bfloat16",
|
| 188 |
+
"eos_token_id": 151643,
|
| 189 |
+
"finetuning_task": null,
|
| 190 |
+
"gradient_checkpointing_use_reentrant": false,
|
| 191 |
+
"head_dim": 128,
|
| 192 |
+
"hidden_act": "silu",
|
| 193 |
+
"hidden_size": 2560,
|
| 194 |
+
"initializer_range": 0.02,
|
| 195 |
+
"intermediate_size": 9728,
|
| 196 |
+
"is_decoder": false,
|
| 197 |
+
"layer_types": [
|
| 198 |
+
"full_attention",
|
| 199 |
+
"full_attention",
|
| 200 |
+
"full_attention",
|
| 201 |
+
"full_attention",
|
| 202 |
+
"full_attention",
|
| 203 |
+
"full_attention",
|
| 204 |
+
"full_attention",
|
| 205 |
+
"full_attention",
|
| 206 |
+
"full_attention",
|
| 207 |
+
"full_attention",
|
| 208 |
+
"full_attention",
|
| 209 |
+
"full_attention",
|
| 210 |
+
"full_attention",
|
| 211 |
+
"full_attention",
|
| 212 |
+
"full_attention",
|
| 213 |
+
"full_attention",
|
| 214 |
+
"full_attention",
|
| 215 |
+
"full_attention",
|
| 216 |
+
"full_attention",
|
| 217 |
+
"full_attention",
|
| 218 |
+
"full_attention",
|
| 219 |
+
"full_attention",
|
| 220 |
+
"full_attention",
|
| 221 |
+
"full_attention",
|
| 222 |
+
"full_attention",
|
| 223 |
+
"full_attention",
|
| 224 |
+
"full_attention",
|
| 225 |
+
"full_attention",
|
| 226 |
+
"full_attention",
|
| 227 |
+
"full_attention",
|
| 228 |
+
"full_attention",
|
| 229 |
+
"full_attention",
|
| 230 |
+
"full_attention",
|
| 231 |
+
"full_attention",
|
| 232 |
+
"full_attention",
|
| 233 |
+
"full_attention"
|
| 234 |
+
],
|
| 235 |
+
"max_position_embeddings": 32768,
|
| 236 |
+
"max_window_layers": 36,
|
| 237 |
+
"model_type": "qwen3",
|
| 238 |
+
"num_attention_heads": 32,
|
| 239 |
+
"num_hidden_layers": 36,
|
| 240 |
+
"num_key_value_heads": 8,
|
| 241 |
+
"pad_token_id": 151643,
|
| 242 |
+
"prefix": null,
|
| 243 |
+
"pruned_heads": {},
|
| 244 |
+
"rms_norm_eps": 1e-06,
|
| 245 |
+
"rope_parameters": {
|
| 246 |
+
"rope_theta": 1000000,
|
| 247 |
+
"rope_type": "default"
|
| 248 |
+
},
|
| 249 |
+
"sep_token_id": null,
|
| 250 |
+
"sliding_window": null,
|
| 251 |
+
"task_specific_params": null,
|
| 252 |
+
"tf_legacy_loss": false,
|
| 253 |
+
"tie_encoder_decoder": false,
|
| 254 |
+
"tie_word_embeddings": true,
|
| 255 |
+
"tokenizer_class": null,
|
| 256 |
+
"torchscript": false,
|
| 257 |
+
"use_bfloat16": false,
|
| 258 |
+
"use_cache": false,
|
| 259 |
+
"use_sliding_window": false,
|
| 260 |
+
"vocab_size": 151936
|
| 261 |
+
},
|
| 262 |
+
"sampling_rate": 48000,
|
| 263 |
+
"tie_word_embeddings": true,
|
| 264 |
+
"transformers_version": "5.14.1",
|
| 265 |
+
"use_static_local_kv_cache": true,
|
| 266 |
+
"vocab_size": 151936
|
| 267 |
+
}
|
configuration_moss_tts.py
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# coding=utf-8
|
| 2 |
+
"""Configuration for the MOSS-TTS-Local-Transformer-v1.5 release."""
|
| 3 |
+
|
| 4 |
+
from __future__ import annotations
|
| 5 |
+
|
| 6 |
+
from typing import Any, Dict, Optional, Union
|
| 7 |
+
|
| 8 |
+
from transformers.configuration_utils import PretrainedConfig
|
| 9 |
+
from transformers.models.gpt2.configuration_gpt2 import GPT2Config
|
| 10 |
+
from transformers.models.qwen3.configuration_qwen3 import Qwen3Config
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
SUPPORTED_ATTENTION_IMPLEMENTATIONS = {"flash_attention_2", "sdpa", "eager"}
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
def _normalize_attention_implementation(value: Optional[str], default: str = "flash_attention_2") -> str:
|
| 17 |
+
normalized = str(value or default).strip().lower()
|
| 18 |
+
if normalized in {"flash", "flash_attn", "flash-attn", "flash_attention"}:
|
| 19 |
+
normalized = "flash_attention_2"
|
| 20 |
+
if normalized not in SUPPORTED_ATTENTION_IMPLEMENTATIONS:
|
| 21 |
+
raise ValueError(
|
| 22 |
+
"attn_implementation must be one of "
|
| 23 |
+
f"{sorted(SUPPORTED_ATTENTION_IMPLEMENTATIONS)}, got {value!r}."
|
| 24 |
+
)
|
| 25 |
+
return normalized
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
class MossTTSLocalConfig(PretrainedConfig):
|
| 29 |
+
model_type = "moss_tts_local"
|
| 30 |
+
keys_to_ignore_at_inference = ["past_key_values"]
|
| 31 |
+
|
| 32 |
+
def __init__(
|
| 33 |
+
self,
|
| 34 |
+
qwen3_config: Optional[Union[Qwen3Config, Dict[str, Any]]] = None,
|
| 35 |
+
gpt2_config: Optional[Union[GPT2Config, Dict[str, Any]]] = None,
|
| 36 |
+
language_config: Optional[Union[Qwen3Config, Dict[str, Any]]] = None,
|
| 37 |
+
n_vq: int = 12,
|
| 38 |
+
audio_vocab_size: int = 1024,
|
| 39 |
+
audio_codebook_sizes: Optional[list[int]] = None,
|
| 40 |
+
audio_pad_token_id: int = 1024,
|
| 41 |
+
audio_pad_code: Optional[int] = None,
|
| 42 |
+
pad_token_id: int = 151643,
|
| 43 |
+
im_start_token_id: int = 151644,
|
| 44 |
+
im_end_token_id: int = 151645,
|
| 45 |
+
audio_start_token_id: int = 151669,
|
| 46 |
+
audio_end_token_id: int = 151670,
|
| 47 |
+
audio_user_slot_token_id: int = 151654,
|
| 48 |
+
audio_assistant_slot_token_id: int = 151656,
|
| 49 |
+
audio_assistant_gen_slot_token_id: Optional[int] = None,
|
| 50 |
+
sampling_rate: int = 48000,
|
| 51 |
+
audio_tokenizer_name_or_path: Optional[str] = None,
|
| 52 |
+
attn_implementation: str = "flash_attention_2",
|
| 53 |
+
local_transformer_attn_implementation: Optional[str] = None,
|
| 54 |
+
local_text_head_mode: str = "binary",
|
| 55 |
+
initializer_range: float = 0.02,
|
| 56 |
+
**kwargs: Any,
|
| 57 |
+
) -> None:
|
| 58 |
+
if qwen3_config is None and language_config is not None:
|
| 59 |
+
qwen3_config = language_config
|
| 60 |
+
if isinstance(qwen3_config, dict):
|
| 61 |
+
self.qwen3_config = Qwen3Config(**qwen3_config)
|
| 62 |
+
elif qwen3_config is None:
|
| 63 |
+
self.qwen3_config = Qwen3Config()
|
| 64 |
+
else:
|
| 65 |
+
self.qwen3_config = qwen3_config
|
| 66 |
+
|
| 67 |
+
if isinstance(gpt2_config, dict):
|
| 68 |
+
self.gpt2_config = GPT2Config(**gpt2_config)
|
| 69 |
+
elif gpt2_config is None:
|
| 70 |
+
self.gpt2_config = GPT2Config(
|
| 71 |
+
vocab_size=int(self.qwen3_config.vocab_size),
|
| 72 |
+
n_embd=int(self.qwen3_config.hidden_size),
|
| 73 |
+
n_layer=1,
|
| 74 |
+
n_head=max(1, int(self.qwen3_config.hidden_size) // 80),
|
| 75 |
+
n_positions=int(n_vq) + 1,
|
| 76 |
+
n_ctx=int(n_vq) + 1,
|
| 77 |
+
activation_function="silu",
|
| 78 |
+
layer_norm_epsilon=1e-6,
|
| 79 |
+
resid_pdrop=0.0,
|
| 80 |
+
embd_pdrop=0.0,
|
| 81 |
+
attn_pdrop=0.0,
|
| 82 |
+
)
|
| 83 |
+
else:
|
| 84 |
+
self.gpt2_config = gpt2_config
|
| 85 |
+
|
| 86 |
+
self.n_vq = int(n_vq)
|
| 87 |
+
if self.n_vq <= 0:
|
| 88 |
+
raise ValueError("n_vq must be positive.")
|
| 89 |
+
if audio_codebook_sizes is None:
|
| 90 |
+
self.audio_codebook_sizes = [int(audio_vocab_size)] * self.n_vq
|
| 91 |
+
else:
|
| 92 |
+
self.audio_codebook_sizes = [int(size) for size in audio_codebook_sizes]
|
| 93 |
+
if len(self.audio_codebook_sizes) != self.n_vq:
|
| 94 |
+
raise ValueError(
|
| 95 |
+
f"audio_codebook_sizes must have length n_vq={self.n_vq}, "
|
| 96 |
+
f"got {len(self.audio_codebook_sizes)}."
|
| 97 |
+
)
|
| 98 |
+
if any(size <= 0 for size in self.audio_codebook_sizes):
|
| 99 |
+
raise ValueError("audio_codebook_sizes must contain positive integers.")
|
| 100 |
+
self.audio_vocab_size = int(max(int(audio_vocab_size), max(self.audio_codebook_sizes)))
|
| 101 |
+
self.audio_pad_token_id = int(audio_pad_code if audio_pad_code is not None else audio_pad_token_id)
|
| 102 |
+
self.audio_pad_code = self.audio_pad_token_id
|
| 103 |
+
if self.audio_pad_token_id < self.audio_vocab_size:
|
| 104 |
+
raise ValueError("audio_pad_token_id/audio_pad_code must be outside the audio vocab.")
|
| 105 |
+
|
| 106 |
+
self.pad_token_id = int(pad_token_id)
|
| 107 |
+
self.im_start_token_id = int(im_start_token_id)
|
| 108 |
+
self.im_end_token_id = int(im_end_token_id)
|
| 109 |
+
self.audio_start_token_id = int(audio_start_token_id)
|
| 110 |
+
self.audio_end_token_id = int(audio_end_token_id)
|
| 111 |
+
self.audio_user_slot_token_id = int(audio_user_slot_token_id)
|
| 112 |
+
self.audio_assistant_slot_token_id = int(
|
| 113 |
+
audio_assistant_slot_token_id
|
| 114 |
+
if audio_assistant_gen_slot_token_id is None
|
| 115 |
+
else audio_assistant_gen_slot_token_id
|
| 116 |
+
)
|
| 117 |
+
self.audio_assistant_gen_slot_token_id = self.audio_assistant_slot_token_id
|
| 118 |
+
|
| 119 |
+
self.sampling_rate = int(sampling_rate)
|
| 120 |
+
self.audio_tokenizer_name_or_path = audio_tokenizer_name_or_path
|
| 121 |
+
self.attn_implementation = _normalize_attention_implementation(attn_implementation)
|
| 122 |
+
self.local_transformer_attn_implementation = _normalize_attention_implementation(
|
| 123 |
+
local_transformer_attn_implementation,
|
| 124 |
+
default=self.attn_implementation,
|
| 125 |
+
)
|
| 126 |
+
self.initializer_range = float(initializer_range)
|
| 127 |
+
|
| 128 |
+
self.hidden_size = int(self.qwen3_config.hidden_size)
|
| 129 |
+
self.vocab_size = int(self.qwen3_config.vocab_size)
|
| 130 |
+
self.local_hidden_size = int(self.gpt2_config.hidden_size)
|
| 131 |
+
if self.local_hidden_size != self.hidden_size:
|
| 132 |
+
raise ValueError(
|
| 133 |
+
"This MOSS-TTS-Local-Transformer-v1.5 release expects local hidden size to "
|
| 134 |
+
"match Qwen3 hidden size so audio embeddings and heads are tied."
|
| 135 |
+
)
|
| 136 |
+
|
| 137 |
+
normalized_text_head_mode = str(local_text_head_mode or "full_vocab").strip().lower()
|
| 138 |
+
if normalized_text_head_mode in {"full", "full-vocab", "vocab"}:
|
| 139 |
+
normalized_text_head_mode = "full_vocab"
|
| 140 |
+
if normalized_text_head_mode not in {"full_vocab", "binary"}:
|
| 141 |
+
raise ValueError("local_text_head_mode must be 'full_vocab' or 'binary'.")
|
| 142 |
+
self.local_text_head_mode = normalized_text_head_mode
|
| 143 |
+
|
| 144 |
+
kwargs.setdefault("tie_word_embeddings", True)
|
| 145 |
+
super().__init__(pad_token_id=self.pad_token_id, **kwargs)
|
| 146 |
+
|
| 147 |
+
@property
|
| 148 |
+
def language_config(self) -> Qwen3Config:
|
| 149 |
+
return self.qwen3_config
|
| 150 |
+
|
| 151 |
+
def to_dict(self) -> Dict[str, Any]:
|
| 152 |
+
output = super().to_dict()
|
| 153 |
+
output["qwen3_config"] = self.qwen3_config.to_dict()
|
| 154 |
+
output["language_config"] = self.qwen3_config.to_dict()
|
| 155 |
+
output["gpt2_config"] = self.gpt2_config.to_dict()
|
| 156 |
+
output["audio_pad_code"] = self.audio_pad_token_id
|
| 157 |
+
output["audio_assistant_gen_slot_token_id"] = self.audio_assistant_slot_token_id
|
| 158 |
+
return output
|
examples/all_dialogues.json
ADDED
|
@@ -0,0 +1,1292 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"task_id": "short-en-coffee",
|
| 4 |
+
"group": "short",
|
| 5 |
+
"language": "en",
|
| 6 |
+
"topic": "coffee",
|
| 7 |
+
"seed": 20261103,
|
| 8 |
+
"pause_s": 0.24,
|
| 9 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 10 |
+
"turns": [
|
| 11 |
+
{
|
| 12 |
+
"speaker": "S1",
|
| 13 |
+
"text": "I tried making coffee without looking at my phone this morning. It felt oddly peaceful, actually.",
|
| 14 |
+
"seconds": 8.88,
|
| 15 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 16 |
+
},
|
| 17 |
+
{
|
| 18 |
+
"speaker": "S2",
|
| 19 |
+
"text": "That sounds lovely. Although I would probably spend the whole time wondering whether the kettle was taking longer.",
|
| 20 |
+
"seconds": 8.88,
|
| 21 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 22 |
+
}
|
| 23 |
+
]
|
| 24 |
+
},
|
| 25 |
+
{
|
| 26 |
+
"task_id": "short-en-walking",
|
| 27 |
+
"group": "short",
|
| 28 |
+
"language": "en",
|
| 29 |
+
"topic": "walking",
|
| 30 |
+
"seed": 20261104,
|
| 31 |
+
"pause_s": 0.24,
|
| 32 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 33 |
+
"turns": [
|
| 34 |
+
{
|
| 35 |
+
"speaker": "S1",
|
| 36 |
+
"text": "Do you ever take a different route home just because the usual one has started to feel invisible?",
|
| 37 |
+
"seconds": 8.88,
|
| 38 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 39 |
+
},
|
| 40 |
+
{
|
| 41 |
+
"speaker": "S2",
|
| 42 |
+
"text": "Yes, and then I discover a tiny shop that has apparently been there for about twenty years.",
|
| 43 |
+
"seconds": 8.88,
|
| 44 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 45 |
+
}
|
| 46 |
+
]
|
| 47 |
+
},
|
| 48 |
+
{
|
| 49 |
+
"task_id": "short-en-learning",
|
| 50 |
+
"group": "short",
|
| 51 |
+
"language": "en",
|
| 52 |
+
"topic": "learning",
|
| 53 |
+
"seed": 20261105,
|
| 54 |
+
"pause_s": 0.24,
|
| 55 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 56 |
+
"turns": [
|
| 57 |
+
{
|
| 58 |
+
"speaker": "S1",
|
| 59 |
+
"text": "I finally played that difficult passage on the piano without stopping. Only once, but I am counting it.",
|
| 60 |
+
"seconds": 8.88,
|
| 61 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 62 |
+
},
|
| 63 |
+
{
|
| 64 |
+
"speaker": "S2",
|
| 65 |
+
"text": "You absolutely should. One good attempt means your hands have discovered that the thing is possible.",
|
| 66 |
+
"seconds": 8.88,
|
| 67 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 68 |
+
}
|
| 69 |
+
]
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"task_id": "short-de-cooking",
|
| 73 |
+
"group": "short",
|
| 74 |
+
"language": "de",
|
| 75 |
+
"topic": "cooking",
|
| 76 |
+
"seed": 20261106,
|
| 77 |
+
"pause_s": 0.24,
|
| 78 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 79 |
+
"turns": [
|
| 80 |
+
{
|
| 81 |
+
"speaker": "S1",
|
| 82 |
+
"text": "Ich habe gestern endlich das Brot selbst gebacken. Die Küche sah danach allerdings ziemlich abenteuerlich aus.",
|
| 83 |
+
"seconds": 8.88,
|
| 84 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 85 |
+
},
|
| 86 |
+
{
|
| 87 |
+
"speaker": "S2",
|
| 88 |
+
"text": "Das gehört dazu. Die entscheidende Frage ist doch: Hat es gut geschmeckt, oder war es eher ein Türstopper?",
|
| 89 |
+
"seconds": 8.88,
|
| 90 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 91 |
+
}
|
| 92 |
+
]
|
| 93 |
+
},
|
| 94 |
+
{
|
| 95 |
+
"task_id": "short-de-train",
|
| 96 |
+
"group": "short",
|
| 97 |
+
"language": "de",
|
| 98 |
+
"topic": "train",
|
| 99 |
+
"seed": 20261107,
|
| 100 |
+
"pause_s": 0.24,
|
| 101 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 102 |
+
"turns": [
|
| 103 |
+
{
|
| 104 |
+
"speaker": "S1",
|
| 105 |
+
"text": "Im Zug hat mich heute ein Kind gefragt, warum die Wolken eigentlich nicht einfach vom Himmel fallen.",
|
| 106 |
+
"seconds": 8.88,
|
| 107 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 108 |
+
},
|
| 109 |
+
{
|
| 110 |
+
"speaker": "S2",
|
| 111 |
+
"text": "Das ist eine ausgezeichnete Frage. Hast du wissenschaftlich geantwortet oder erst einmal sehr lange aus dem Fenster geschaut?",
|
| 112 |
+
"seconds": 8.88,
|
| 113 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 114 |
+
}
|
| 115 |
+
]
|
| 116 |
+
},
|
| 117 |
+
{
|
| 118 |
+
"task_id": "short-de-garden",
|
| 119 |
+
"group": "short",
|
| 120 |
+
"language": "de",
|
| 121 |
+
"topic": "garden",
|
| 122 |
+
"seed": 20261108,
|
| 123 |
+
"pause_s": 0.24,
|
| 124 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 125 |
+
"turns": [
|
| 126 |
+
{
|
| 127 |
+
"speaker": "S1",
|
| 128 |
+
"text": "Auf meinem Balkon wächst jetzt tatsächlich etwas Grünes. Ich hätte nicht gedacht, dass mich so ein kleiner Trieb so freut.",
|
| 129 |
+
"seconds": 8.88,
|
| 130 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 131 |
+
},
|
| 132 |
+
{
|
| 133 |
+
"speaker": "S2",
|
| 134 |
+
"text": "Was hast du gepflanzt? Und bitte sag mir, dass du diesmal noch weißt, in welchen Topf die Samen gekommen sind.",
|
| 135 |
+
"seconds": 8.88,
|
| 136 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 137 |
+
}
|
| 138 |
+
]
|
| 139 |
+
},
|
| 140 |
+
{
|
| 141 |
+
"task_id": "short-fr-jardin",
|
| 142 |
+
"group": "short",
|
| 143 |
+
"language": "fr",
|
| 144 |
+
"topic": "jardin",
|
| 145 |
+
"seed": 20261109,
|
| 146 |
+
"pause_s": 0.24,
|
| 147 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 148 |
+
"turns": [
|
| 149 |
+
{
|
| 150 |
+
"speaker": "S1",
|
| 151 |
+
"text": "Ce matin, j’ai découvert une petite fleur sur mon balcon. Je pensais vraiment que cette plante avait abandonné.",
|
| 152 |
+
"seconds": 8.88,
|
| 153 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 154 |
+
},
|
| 155 |
+
{
|
| 156 |
+
"speaker": "S2",
|
| 157 |
+
"text": "Comme quoi, elle préparait peut-être sa surprise en silence. Tu lui as donné un peu plus de lumière ?",
|
| 158 |
+
"seconds": 8.88,
|
| 159 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 160 |
+
}
|
| 161 |
+
]
|
| 162 |
+
},
|
| 163 |
+
{
|
| 164 |
+
"task_id": "short-fr-chance",
|
| 165 |
+
"group": "short",
|
| 166 |
+
"language": "fr",
|
| 167 |
+
"topic": "chance",
|
| 168 |
+
"seed": 20261110,
|
| 169 |
+
"pause_s": 0.24,
|
| 170 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 171 |
+
"turns": [
|
| 172 |
+
{
|
| 173 |
+
"speaker": "S1",
|
| 174 |
+
"text": "J’ai retrouvé un vieux carnet dans une boîte. Il était rempli de projets que j’avais complètement oubliés.",
|
| 175 |
+
"seconds": 8.88,
|
| 176 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 177 |
+
},
|
| 178 |
+
{
|
| 179 |
+
"speaker": "S2",
|
| 180 |
+
"text": "Et alors, tu as eu envie de les reprendre, ou surtout de remercier ton ancien toi de ne pas avoir tout essayé ?",
|
| 181 |
+
"seconds": 8.88,
|
| 182 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 183 |
+
}
|
| 184 |
+
]
|
| 185 |
+
},
|
| 186 |
+
{
|
| 187 |
+
"task_id": "short-es-radio",
|
| 188 |
+
"group": "short",
|
| 189 |
+
"language": "es",
|
| 190 |
+
"topic": "radio",
|
| 191 |
+
"seed": 20261111,
|
| 192 |
+
"pause_s": 0.24,
|
| 193 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 194 |
+
"turns": [
|
| 195 |
+
{
|
| 196 |
+
"speaker": "S1",
|
| 197 |
+
"text": "Esta mañana escuché una canción que no oía desde el colegio. De repente recordé hasta el camino de vuelta a casa.",
|
| 198 |
+
"seconds": 8.88,
|
| 199 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 200 |
+
},
|
| 201 |
+
{
|
| 202 |
+
"speaker": "S2",
|
| 203 |
+
"text": "Es increíble cómo pasa eso. A veces una melodía guarda recuerdos que ni siquiera sabíamos que seguían allí.",
|
| 204 |
+
"seconds": 8.88,
|
| 205 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 206 |
+
}
|
| 207 |
+
]
|
| 208 |
+
},
|
| 209 |
+
{
|
| 210 |
+
"task_id": "short-es-friends",
|
| 211 |
+
"group": "short",
|
| 212 |
+
"language": "es",
|
| 213 |
+
"topic": "friends",
|
| 214 |
+
"seed": 20261112,
|
| 215 |
+
"pause_s": 0.24,
|
| 216 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 217 |
+
"turns": [
|
| 218 |
+
{
|
| 219 |
+
"speaker": "S1",
|
| 220 |
+
"text": "Ayer cociné para unos amigos y olvidé poner sal. Me di cuenta cuando todos estaban intentando ser demasiado amables.",
|
| 221 |
+
"seconds": 8.88,
|
| 222 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 223 |
+
},
|
| 224 |
+
{
|
| 225 |
+
"speaker": "S2",
|
| 226 |
+
"text": "Ese silencio tan educado lo dice todo. ¿Alguien pidió el salero o decidiste presentar el plato como una experiencia delicada?",
|
| 227 |
+
"seconds": 8.88,
|
| 228 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 229 |
+
}
|
| 230 |
+
]
|
| 231 |
+
},
|
| 232 |
+
{
|
| 233 |
+
"task_id": "medium-en-coffee",
|
| 234 |
+
"group": "medium",
|
| 235 |
+
"language": "en",
|
| 236 |
+
"topic": "coffee",
|
| 237 |
+
"seed": 20261103,
|
| 238 |
+
"pause_s": 0.24,
|
| 239 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 240 |
+
"turns": [
|
| 241 |
+
{
|
| 242 |
+
"speaker": "S1",
|
| 243 |
+
"text": "I tried making coffee without looking at my phone this morning. It felt oddly peaceful, actually.",
|
| 244 |
+
"seconds": 6.2,
|
| 245 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"speaker": "S2",
|
| 249 |
+
"text": "That sounds lovely. Although I would probably spend the whole time wondering whether the kettle was taking longer.",
|
| 250 |
+
"seconds": 6.2,
|
| 251 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 252 |
+
},
|
| 253 |
+
{
|
| 254 |
+
"speaker": "S1",
|
| 255 |
+
"text": "Exactly! At first I kept reaching for a notification that was not even there. Then I noticed the rain.",
|
| 256 |
+
"seconds": 6.2,
|
| 257 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 258 |
+
},
|
| 259 |
+
{
|
| 260 |
+
"speaker": "S2",
|
| 261 |
+
"text": "We fill every little gap, don’t we? Sometimes the nicest part of a morning is that nothing happens.",
|
| 262 |
+
"seconds": 6.2,
|
| 263 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 264 |
+
},
|
| 265 |
+
{
|
| 266 |
+
"speaker": "S1",
|
| 267 |
+
"text": "And the coffee tasted better. Not because I made it differently, but because I finally paid attention.",
|
| 268 |
+
"seconds": 6.2,
|
| 269 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 270 |
+
},
|
| 271 |
+
{
|
| 272 |
+
"speaker": "S2",
|
| 273 |
+
"text": "Well, now you have turned a cup of coffee into a small philosophy lesson. I am surprisingly convinced.",
|
| 274 |
+
"seconds": 6.2,
|
| 275 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 276 |
+
}
|
| 277 |
+
]
|
| 278 |
+
},
|
| 279 |
+
{
|
| 280 |
+
"task_id": "medium-en-walking",
|
| 281 |
+
"group": "medium",
|
| 282 |
+
"language": "en",
|
| 283 |
+
"topic": "walking",
|
| 284 |
+
"seed": 20261104,
|
| 285 |
+
"pause_s": 0.24,
|
| 286 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 287 |
+
"turns": [
|
| 288 |
+
{
|
| 289 |
+
"speaker": "S1",
|
| 290 |
+
"text": "Do you ever take a different route home just because the usual one has started to feel invisible?",
|
| 291 |
+
"seconds": 6.2,
|
| 292 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 293 |
+
},
|
| 294 |
+
{
|
| 295 |
+
"speaker": "S2",
|
| 296 |
+
"text": "Yes, and then I discover a tiny shop that has apparently been there for about twenty years.",
|
| 297 |
+
"seconds": 6.2,
|
| 298 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 299 |
+
},
|
| 300 |
+
{
|
| 301 |
+
"speaker": "S1",
|
| 302 |
+
"text": "That happened yesterday. There was a bookshop with a sleeping dog right beside the door. I almost missed it.",
|
| 303 |
+
"seconds": 6.2,
|
| 304 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 305 |
+
},
|
| 306 |
+
{
|
| 307 |
+
"speaker": "S2",
|
| 308 |
+
"text": "A sleeping dog is an excellent recommendation. It suggests the atmosphere is relaxed and the customers are trustworthy.",
|
| 309 |
+
"seconds": 6.2,
|
| 310 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 311 |
+
},
|
| 312 |
+
{
|
| 313 |
+
"speaker": "S1",
|
| 314 |
+
"text": "The owner asked what I liked reading, and I realised I had not answered that question in ages.",
|
| 315 |
+
"seconds": 6.2,
|
| 316 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 317 |
+
},
|
| 318 |
+
{
|
| 319 |
+
"speaker": "S2",
|
| 320 |
+
"text": "What did you say? Please tell me you did not just point to the nearest shelf and panic.",
|
| 321 |
+
"seconds": 6.2,
|
| 322 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 323 |
+
}
|
| 324 |
+
]
|
| 325 |
+
},
|
| 326 |
+
{
|
| 327 |
+
"task_id": "medium-en-learning",
|
| 328 |
+
"group": "medium",
|
| 329 |
+
"language": "en",
|
| 330 |
+
"topic": "learning",
|
| 331 |
+
"seed": 20261105,
|
| 332 |
+
"pause_s": 0.24,
|
| 333 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 334 |
+
"turns": [
|
| 335 |
+
{
|
| 336 |
+
"speaker": "S1",
|
| 337 |
+
"text": "I finally played that difficult passage on the piano without stopping. Only once, but I am counting it.",
|
| 338 |
+
"seconds": 6.2,
|
| 339 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 340 |
+
},
|
| 341 |
+
{
|
| 342 |
+
"speaker": "S2",
|
| 343 |
+
"text": "You absolutely should. One good attempt means your hands have discovered that the thing is possible.",
|
| 344 |
+
"seconds": 6.2,
|
| 345 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 346 |
+
},
|
| 347 |
+
{
|
| 348 |
+
"speaker": "S1",
|
| 349 |
+
"text": "The funny part is that I had been practising it faster and faster, which mostly made it sound worse.",
|
| 350 |
+
"seconds": 6.2,
|
| 351 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 352 |
+
},
|
| 353 |
+
{
|
| 354 |
+
"speaker": "S2",
|
| 355 |
+
"text": "Then somebody told you to slow down, and you were deeply offended by this very sensible advice?",
|
| 356 |
+
"seconds": 6.2,
|
| 357 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 358 |
+
},
|
| 359 |
+
{
|
| 360 |
+
"speaker": "S1",
|
| 361 |
+
"text": "A little! But after a few quiet minutes, I could actually hear where I was rushing ahead.",
|
| 362 |
+
"seconds": 6.2,
|
| 363 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 364 |
+
},
|
| 365 |
+
{
|
| 366 |
+
"speaker": "S2",
|
| 367 |
+
"text": "That is the awkward secret of learning. Sometimes trying harder just means repeating the mistake with more confidence.",
|
| 368 |
+
"seconds": 6.2,
|
| 369 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 370 |
+
}
|
| 371 |
+
]
|
| 372 |
+
},
|
| 373 |
+
{
|
| 374 |
+
"task_id": "medium-de-cooking",
|
| 375 |
+
"group": "medium",
|
| 376 |
+
"language": "de",
|
| 377 |
+
"topic": "cooking",
|
| 378 |
+
"seed": 20261106,
|
| 379 |
+
"pause_s": 0.24,
|
| 380 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 381 |
+
"turns": [
|
| 382 |
+
{
|
| 383 |
+
"speaker": "S1",
|
| 384 |
+
"text": "Ich habe gestern endlich das Brot selbst gebacken. Die Küche sah danach allerdings ziemlich abenteuerlich aus.",
|
| 385 |
+
"seconds": 6.2,
|
| 386 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 387 |
+
},
|
| 388 |
+
{
|
| 389 |
+
"speaker": "S2",
|
| 390 |
+
"text": "Das gehört dazu. Die entscheidende Frage ist doch: Hat es gut geschmeckt, oder war es eher ein Türstopper?",
|
| 391 |
+
"seconds": 6.2,
|
| 392 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 393 |
+
},
|
| 394 |
+
{
|
| 395 |
+
"speaker": "S1",
|
| 396 |
+
"text": "Überraschend gut! Die Kruste war ein bisschen dunkel, aber innen war es weich. Ich war richtig stolz darauf.",
|
| 397 |
+
"seconds": 6.2,
|
| 398 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 399 |
+
},
|
| 400 |
+
{
|
| 401 |
+
"speaker": "S2",
|
| 402 |
+
"text": "Dann war das keine dunkle Kruste, sondern ein bewusst gewähltes Röstaroma. So würde ich es jedenfalls verkaufen.",
|
| 403 |
+
"seconds": 6.2,
|
| 404 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 405 |
+
},
|
| 406 |
+
{
|
| 407 |
+
"speaker": "S1",
|
| 408 |
+
"text": "Genau das habe ich auch gesagt. Beim zweiten Versuch möchte ich trotzdem vorher schauen, wie heiß der Ofen wirklich ist.",
|
| 409 |
+
"seconds": 6.2,
|
| 410 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 411 |
+
},
|
| 412 |
+
{
|
| 413 |
+
"speaker": "S2",
|
| 414 |
+
"text": "Vernünftig. Ich finde sowieso schön, wenn man etwas macht, bei dem man das Ergebnis hinterher gemeinsam essen kann.",
|
| 415 |
+
"seconds": 6.2,
|
| 416 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 417 |
+
}
|
| 418 |
+
]
|
| 419 |
+
},
|
| 420 |
+
{
|
| 421 |
+
"task_id": "medium-de-train",
|
| 422 |
+
"group": "medium",
|
| 423 |
+
"language": "de",
|
| 424 |
+
"topic": "train",
|
| 425 |
+
"seed": 20261107,
|
| 426 |
+
"pause_s": 0.24,
|
| 427 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 428 |
+
"turns": [
|
| 429 |
+
{
|
| 430 |
+
"speaker": "S1",
|
| 431 |
+
"text": "Im Zug hat mich heute ein Kind gefragt, warum die Wolken eigentlich nicht einfach vom Himmel fallen.",
|
| 432 |
+
"seconds": 6.2,
|
| 433 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 434 |
+
},
|
| 435 |
+
{
|
| 436 |
+
"speaker": "S2",
|
| 437 |
+
"text": "Das ist eine ausgezeichnete Frage. Hast du wissenschaftlich geantwortet oder erst einmal sehr lange aus dem Fenster geschaut?",
|
| 438 |
+
"seconds": 6.2,
|
| 439 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 440 |
+
},
|
| 441 |
+
{
|
| 442 |
+
"speaker": "S1",
|
| 443 |
+
"text": "Beides. Ich wollte mit winzigen Wassertröpfchen anfangen, aber dann fragte es sofort, warum die nicht alle zusammenkleben.",
|
| 444 |
+
"seconds": 6.2,
|
| 445 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 446 |
+
},
|
| 447 |
+
{
|
| 448 |
+
"speaker": "S2",
|
| 449 |
+
"text": "Kinder haben dieses Talent, jede vermeintlich einfache Erklärung genau an der spannendsten Stelle auseinanderzunehmen.",
|
| 450 |
+
"seconds": 6.2,
|
| 451 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 452 |
+
},
|
| 453 |
+
{
|
| 454 |
+
"speaker": "S1",
|
| 455 |
+
"text": "Ja, und plötzlich saßen drei Erwachsene da und überlegten gemeinsam. Das war viel netter als auf das Handy zu schauen.",
|
| 456 |
+
"seconds": 6.2,
|
| 457 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 458 |
+
},
|
| 459 |
+
{
|
| 460 |
+
"speaker": "S2",
|
| 461 |
+
"text": "Dann war die eigentliche Entdeckung vielleicht gar nicht das Wetter, sondern dass ein fremder Mensch ein Gespräch anfangen kann.",
|
| 462 |
+
"seconds": 6.2,
|
| 463 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 464 |
+
}
|
| 465 |
+
]
|
| 466 |
+
},
|
| 467 |
+
{
|
| 468 |
+
"task_id": "medium-de-garden",
|
| 469 |
+
"group": "medium",
|
| 470 |
+
"language": "de",
|
| 471 |
+
"topic": "garden",
|
| 472 |
+
"seed": 20261108,
|
| 473 |
+
"pause_s": 0.24,
|
| 474 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 475 |
+
"turns": [
|
| 476 |
+
{
|
| 477 |
+
"speaker": "S1",
|
| 478 |
+
"text": "Auf meinem Balkon wächst jetzt tatsächlich etwas Grünes. Ich hätte nicht gedacht, dass mich so ein kleiner Trieb so freut.",
|
| 479 |
+
"seconds": 6.2,
|
| 480 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 481 |
+
},
|
| 482 |
+
{
|
| 483 |
+
"speaker": "S2",
|
| 484 |
+
"text": "Was hast du gepflanzt? Und bitte sag mir, dass du diesmal noch weißt, in welchen Topf die Samen gekommen sind.",
|
| 485 |
+
"seconds": 6.2,
|
| 486 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 487 |
+
},
|
| 488 |
+
{
|
| 489 |
+
"speaker": "S1",
|
| 490 |
+
"text": "Basilikum, glaube ich. Die Beschriftung hat der Regen mitgenommen. Es könnte also auch eine sehr überzeugende andere Pflanze sein.",
|
| 491 |
+
"seconds": 6.2,
|
| 492 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 493 |
+
},
|
| 494 |
+
{
|
| 495 |
+
"speaker": "S2",
|
| 496 |
+
"text": "Dann betrachten wir das vorerst als botanisches Rätsel. Du musst nichts überstürzen und solltest vielleicht noch nicht daran knabbern.",
|
| 497 |
+
"seconds": 6.2,
|
| 498 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 499 |
+
},
|
| 500 |
+
{
|
| 501 |
+
"speaker": "S1",
|
| 502 |
+
"text": "Keine Sorge. Ich finde es einfach angenehm, morgens kurz nachzusehen, ob wieder ein neues Blatt dazugekommen ist.",
|
| 503 |
+
"seconds": 6.2,
|
| 504 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 505 |
+
},
|
| 506 |
+
{
|
| 507 |
+
"speaker": "S2",
|
| 508 |
+
"text": "Das verstehe ich. Es ist eine kleine Veränderung, die nicht drängelt und trotzdem zeigt, dass etwas vorangeht.",
|
| 509 |
+
"seconds": 6.2,
|
| 510 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 511 |
+
}
|
| 512 |
+
]
|
| 513 |
+
},
|
| 514 |
+
{
|
| 515 |
+
"task_id": "medium-fr-jardin",
|
| 516 |
+
"group": "medium",
|
| 517 |
+
"language": "fr",
|
| 518 |
+
"topic": "jardin",
|
| 519 |
+
"seed": 20261109,
|
| 520 |
+
"pause_s": 0.24,
|
| 521 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 522 |
+
"turns": [
|
| 523 |
+
{
|
| 524 |
+
"speaker": "S1",
|
| 525 |
+
"text": "Ce matin, j’ai découvert une petite fleur sur mon balcon. Je pensais vraiment que cette plante avait abandonné.",
|
| 526 |
+
"seconds": 6.2,
|
| 527 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 528 |
+
},
|
| 529 |
+
{
|
| 530 |
+
"speaker": "S2",
|
| 531 |
+
"text": "Comme quoi, elle préparait peut-être sa surprise en silence. Tu lui as donné un peu plus de lumière ?",
|
| 532 |
+
"seconds": 6.2,
|
| 533 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 534 |
+
},
|
| 535 |
+
{
|
| 536 |
+
"speaker": "S1",
|
| 537 |
+
"text": "Oui, et surtout un peu moins d’eau. Apparemment, mon enthousiasme dépassait largement ses besoins. Je voulais trop bien faire.",
|
| 538 |
+
"seconds": 6.2,
|
| 539 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 540 |
+
},
|
| 541 |
+
{
|
| 542 |
+
"speaker": "S2",
|
| 543 |
+
"text": "C’est assez humain, finalement. On croit aider en faisant davantage, alors que parfois il faut simplement laisser respirer.",
|
| 544 |
+
"seconds": 6.2,
|
| 545 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 546 |
+
},
|
| 547 |
+
{
|
| 548 |
+
"speaker": "S1",
|
| 549 |
+
"text": "Tu as raison. Maintenant, je regarde les nouvelles feuilles avant de prendre mon téléphone. Cela change le début de ma journée.",
|
| 550 |
+
"seconds": 6.2,
|
| 551 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 552 |
+
},
|
| 553 |
+
{
|
| 554 |
+
"speaker": "S2",
|
| 555 |
+
"text": "Et tu ne peux pas accélérer la prochaine fleur en actualisant la page. C’est peut-être exactement ce qui fait du bien.",
|
| 556 |
+
"seconds": 6.2,
|
| 557 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 558 |
+
}
|
| 559 |
+
]
|
| 560 |
+
},
|
| 561 |
+
{
|
| 562 |
+
"task_id": "medium-fr-chance",
|
| 563 |
+
"group": "medium",
|
| 564 |
+
"language": "fr",
|
| 565 |
+
"topic": "chance",
|
| 566 |
+
"seed": 20261110,
|
| 567 |
+
"pause_s": 0.24,
|
| 568 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 569 |
+
"turns": [
|
| 570 |
+
{
|
| 571 |
+
"speaker": "S1",
|
| 572 |
+
"text": "J’ai retrouvé un vieux carnet dans une boîte. Il était rempli de projets que j’avais complètement oubliés.",
|
| 573 |
+
"seconds": 6.2,
|
| 574 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 575 |
+
},
|
| 576 |
+
{
|
| 577 |
+
"speaker": "S2",
|
| 578 |
+
"text": "Et alors, tu as eu envie de les reprendre, ou surtout de remercier ton ancien toi de ne pas avoir tout essayé ?",
|
| 579 |
+
"seconds": 6.2,
|
| 580 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 581 |
+
},
|
| 582 |
+
{
|
| 583 |
+
"speaker": "S1",
|
| 584 |
+
"text": "Un peu des deux. Il y avait une idée de voyage magnifique, puis une recette de soupe franchement inquiétante.",
|
| 585 |
+
"seconds": 6.2,
|
| 586 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 587 |
+
},
|
| 588 |
+
{
|
| 589 |
+
"speaker": "S2",
|
| 590 |
+
"text": "C’est rassurant. Un bon carnet devrait contenir de grandes ambitions et quelques décisions culinaires discutables.",
|
| 591 |
+
"seconds": 6.2,
|
| 592 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 593 |
+
},
|
| 594 |
+
{
|
| 595 |
+
"speaker": "S1",
|
| 596 |
+
"text": "Ce qui m’a touché, c’est de voir combien je pouvais être enthousiaste. Pas forcément réaliste, mais vraiment curieux.",
|
| 597 |
+
"seconds": 6.2,
|
| 598 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 599 |
+
},
|
| 600 |
+
{
|
| 601 |
+
"speaker": "S2",
|
| 602 |
+
"text": "Peut-être que tu peux garder cette curiosité sans reprendre chaque projet. On a le droit de changer de direction.",
|
| 603 |
+
"seconds": 6.2,
|
| 604 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 605 |
+
}
|
| 606 |
+
]
|
| 607 |
+
},
|
| 608 |
+
{
|
| 609 |
+
"task_id": "medium-es-radio",
|
| 610 |
+
"group": "medium",
|
| 611 |
+
"language": "es",
|
| 612 |
+
"topic": "radio",
|
| 613 |
+
"seed": 20261111,
|
| 614 |
+
"pause_s": 0.24,
|
| 615 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 616 |
+
"turns": [
|
| 617 |
+
{
|
| 618 |
+
"speaker": "S1",
|
| 619 |
+
"text": "Esta mañana escuché una canción que no oía desde el colegio. De repente recordé hasta el camino de vuelta a casa.",
|
| 620 |
+
"seconds": 6.2,
|
| 621 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 622 |
+
},
|
| 623 |
+
{
|
| 624 |
+
"speaker": "S2",
|
| 625 |
+
"text": "Es increíble cómo pasa eso. A veces una melodía guarda recuerdos que ni siquiera sabíamos que seguían allí.",
|
| 626 |
+
"seconds": 6.2,
|
| 627 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 628 |
+
},
|
| 629 |
+
{
|
| 630 |
+
"speaker": "S1",
|
| 631 |
+
"text": "Sí, y no era una canción especialmente importante. Creo que simplemente sonaba siempre en la pequeña tienda de la esquina.",
|
| 632 |
+
"seconds": 6.2,
|
| 633 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 634 |
+
},
|
| 635 |
+
{
|
| 636 |
+
"speaker": "S2",
|
| 637 |
+
"text": "Entonces también recuerdas la tienda, el ruido de la calle, quizá alguna conversación. Todo aparece junto, sin pedir permiso.",
|
| 638 |
+
"seconds": 6.2,
|
| 639 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 640 |
+
},
|
| 641 |
+
{
|
| 642 |
+
"speaker": "S1",
|
| 643 |
+
"text": "Exactamente. Me dieron ganas de escribirle a un amigo de aquella época, aunque llevamos bastante tiempo sin hablar.",
|
| 644 |
+
"seconds": 6.2,
|
| 645 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 646 |
+
},
|
| 647 |
+
{
|
| 648 |
+
"speaker": "S2",
|
| 649 |
+
"text": "Hazlo. No necesitas un mensaje perfecto. Puedes empezar diciendo que escuchaste algo y te acordaste de él.",
|
| 650 |
+
"seconds": 6.2,
|
| 651 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 652 |
+
}
|
| 653 |
+
]
|
| 654 |
+
},
|
| 655 |
+
{
|
| 656 |
+
"task_id": "medium-es-friends",
|
| 657 |
+
"group": "medium",
|
| 658 |
+
"language": "es",
|
| 659 |
+
"topic": "friends",
|
| 660 |
+
"seed": 20261112,
|
| 661 |
+
"pause_s": 0.24,
|
| 662 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 663 |
+
"turns": [
|
| 664 |
+
{
|
| 665 |
+
"speaker": "S1",
|
| 666 |
+
"text": "Ayer cociné para unos amigos y olvidé poner sal. Me di cuenta cuando todos estaban intentando ser demasiado amables.",
|
| 667 |
+
"seconds": 6.2,
|
| 668 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 669 |
+
},
|
| 670 |
+
{
|
| 671 |
+
"speaker": "S2",
|
| 672 |
+
"text": "Ese silencio tan educado lo dice todo. ¿Alguien pidió el salero o decidiste presentar el plato como una experiencia delicada?",
|
| 673 |
+
"seconds": 6.2,
|
| 674 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 675 |
+
},
|
| 676 |
+
{
|
| 677 |
+
"speaker": "S1",
|
| 678 |
+
"text": "Al final me reí y lo dije yo. Fue un alivio, porque en cuanto lo reconocí todos empezaron a contar sus propios desastres.",
|
| 679 |
+
"seconds": 6.2,
|
| 680 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 681 |
+
},
|
| 682 |
+
{
|
| 683 |
+
"speaker": "S2",
|
| 684 |
+
"text": "Eso suele mejorar una cena más que una receta perfecta. De repente nadie tiene que fingir que siempre le sale todo bien.",
|
| 685 |
+
"seconds": 6.2,
|
| 686 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 687 |
+
},
|
| 688 |
+
{
|
| 689 |
+
"speaker": "S1",
|
| 690 |
+
"text": "Una amiga contó que una vez horneó un pastel sin harina. Todavía no entiendo muy bien qué fue lo que terminó sirviendo.",
|
| 691 |
+
"seconds": 6.2,
|
| 692 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 693 |
+
},
|
| 694 |
+
{
|
| 695 |
+
"speaker": "S2",
|
| 696 |
+
"text": "Quizá inventó un postre nuevo. Hay errores que suenan terribles hasta que alguien les pone un nombre elegante.",
|
| 697 |
+
"seconds": 6.2,
|
| 698 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 699 |
+
}
|
| 700 |
+
]
|
| 701 |
+
},
|
| 702 |
+
{
|
| 703 |
+
"task_id": "long-en-coffee",
|
| 704 |
+
"group": "long",
|
| 705 |
+
"language": "en",
|
| 706 |
+
"topic": "coffee",
|
| 707 |
+
"seed": 20261103,
|
| 708 |
+
"pause_s": 0.24,
|
| 709 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 710 |
+
"turns": [
|
| 711 |
+
{
|
| 712 |
+
"speaker": "S1",
|
| 713 |
+
"text": "I tried making coffee without looking at my phone this morning. It felt oddly peaceful, actually.",
|
| 714 |
+
"seconds": 7.19,
|
| 715 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 716 |
+
},
|
| 717 |
+
{
|
| 718 |
+
"speaker": "S2",
|
| 719 |
+
"text": "That sounds lovely. Although I would probably spend the whole time wondering whether the kettle was taking longer.",
|
| 720 |
+
"seconds": 7.19,
|
| 721 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 722 |
+
},
|
| 723 |
+
{
|
| 724 |
+
"speaker": "S1",
|
| 725 |
+
"text": "Exactly! At first I kept reaching for a notification that was not even there. Then I noticed the rain.",
|
| 726 |
+
"seconds": 7.19,
|
| 727 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 728 |
+
},
|
| 729 |
+
{
|
| 730 |
+
"speaker": "S2",
|
| 731 |
+
"text": "We fill every little gap, don’t we? Sometimes the nicest part of a morning is that nothing happens.",
|
| 732 |
+
"seconds": 7.19,
|
| 733 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 734 |
+
},
|
| 735 |
+
{
|
| 736 |
+
"speaker": "S1",
|
| 737 |
+
"text": "And the coffee tasted better. Not because I made it differently, but because I finally paid attention.",
|
| 738 |
+
"seconds": 7.19,
|
| 739 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 740 |
+
},
|
| 741 |
+
{
|
| 742 |
+
"speaker": "S2",
|
| 743 |
+
"text": "Well, now you have turned a cup of coffee into a small philosophy lesson. I am surprisingly convinced.",
|
| 744 |
+
"seconds": 7.19,
|
| 745 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 746 |
+
},
|
| 747 |
+
{
|
| 748 |
+
"speaker": "S1",
|
| 749 |
+
"text": "Let’s not get carried away. Tomorrow I might forget the water and just stare thoughtfully at the empty cup.",
|
| 750 |
+
"seconds": 7.19,
|
| 751 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 752 |
+
},
|
| 753 |
+
{
|
| 754 |
+
"speaker": "S2",
|
| 755 |
+
"text": "Honestly, that would still be a very committed experiment. We should report back next week.",
|
| 756 |
+
"seconds": 7.19,
|
| 757 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 758 |
+
}
|
| 759 |
+
]
|
| 760 |
+
},
|
| 761 |
+
{
|
| 762 |
+
"task_id": "long-en-walking",
|
| 763 |
+
"group": "long",
|
| 764 |
+
"language": "en",
|
| 765 |
+
"topic": "walking",
|
| 766 |
+
"seed": 20261104,
|
| 767 |
+
"pause_s": 0.24,
|
| 768 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 769 |
+
"turns": [
|
| 770 |
+
{
|
| 771 |
+
"speaker": "S1",
|
| 772 |
+
"text": "Do you ever take a different route home just because the usual one has started to feel invisible?",
|
| 773 |
+
"seconds": 7.19,
|
| 774 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 775 |
+
},
|
| 776 |
+
{
|
| 777 |
+
"speaker": "S2",
|
| 778 |
+
"text": "Yes, and then I discover a tiny shop that has apparently been there for about twenty years.",
|
| 779 |
+
"seconds": 7.19,
|
| 780 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 781 |
+
},
|
| 782 |
+
{
|
| 783 |
+
"speaker": "S1",
|
| 784 |
+
"text": "That happened yesterday. There was a bookshop with a sleeping dog right beside the door. I almost missed it.",
|
| 785 |
+
"seconds": 7.19,
|
| 786 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 787 |
+
},
|
| 788 |
+
{
|
| 789 |
+
"speaker": "S2",
|
| 790 |
+
"text": "A sleeping dog is an excellent recommendation. It suggests the atmosphere is relaxed and the customers are trustworthy.",
|
| 791 |
+
"seconds": 7.19,
|
| 792 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 793 |
+
},
|
| 794 |
+
{
|
| 795 |
+
"speaker": "S1",
|
| 796 |
+
"text": "The owner asked what I liked reading, and I realised I had not answered that question in ages.",
|
| 797 |
+
"seconds": 7.19,
|
| 798 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 799 |
+
},
|
| 800 |
+
{
|
| 801 |
+
"speaker": "S2",
|
| 802 |
+
"text": "What did you say? Please tell me you did not just point to the nearest shelf and panic.",
|
| 803 |
+
"seconds": 7.19,
|
| 804 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 805 |
+
},
|
| 806 |
+
{
|
| 807 |
+
"speaker": "S1",
|
| 808 |
+
"text": "Almost. Then I said I wanted something that would surprise me without making the whole week feel heavier.",
|
| 809 |
+
"seconds": 7.19,
|
| 810 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 811 |
+
},
|
| 812 |
+
{
|
| 813 |
+
"speaker": "S2",
|
| 814 |
+
"text": "That is a wonderful request. Perhaps taking the longer route is sometimes the quickest way to find something new.",
|
| 815 |
+
"seconds": 7.19,
|
| 816 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 817 |
+
}
|
| 818 |
+
]
|
| 819 |
+
},
|
| 820 |
+
{
|
| 821 |
+
"task_id": "long-en-learning",
|
| 822 |
+
"group": "long",
|
| 823 |
+
"language": "en",
|
| 824 |
+
"topic": "learning",
|
| 825 |
+
"seed": 20261105,
|
| 826 |
+
"pause_s": 0.24,
|
| 827 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 828 |
+
"turns": [
|
| 829 |
+
{
|
| 830 |
+
"speaker": "S1",
|
| 831 |
+
"text": "I finally played that difficult passage on the piano without stopping. Only once, but I am counting it.",
|
| 832 |
+
"seconds": 7.19,
|
| 833 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 834 |
+
},
|
| 835 |
+
{
|
| 836 |
+
"speaker": "S2",
|
| 837 |
+
"text": "You absolutely should. One good attempt means your hands have discovered that the thing is possible.",
|
| 838 |
+
"seconds": 7.19,
|
| 839 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 840 |
+
},
|
| 841 |
+
{
|
| 842 |
+
"speaker": "S1",
|
| 843 |
+
"text": "The funny part is that I had been practising it faster and faster, which mostly made it sound worse.",
|
| 844 |
+
"seconds": 7.19,
|
| 845 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 846 |
+
},
|
| 847 |
+
{
|
| 848 |
+
"speaker": "S2",
|
| 849 |
+
"text": "Then somebody told you to slow down, and you were deeply offended by this very sensible advice?",
|
| 850 |
+
"seconds": 7.19,
|
| 851 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 852 |
+
},
|
| 853 |
+
{
|
| 854 |
+
"speaker": "S1",
|
| 855 |
+
"text": "A little! But after a few quiet minutes, I could actually hear where I was rushing ahead.",
|
| 856 |
+
"seconds": 7.19,
|
| 857 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 858 |
+
},
|
| 859 |
+
{
|
| 860 |
+
"speaker": "S2",
|
| 861 |
+
"text": "That is the awkward secret of learning. Sometimes trying harder just means repeating the mistake with more confidence.",
|
| 862 |
+
"seconds": 7.19,
|
| 863 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 864 |
+
},
|
| 865 |
+
{
|
| 866 |
+
"speaker": "S1",
|
| 867 |
+
"text": "So tomorrow I will be patient, start slowly, and resist the urge to perform a heroic concert for the neighbours.",
|
| 868 |
+
"seconds": 7.19,
|
| 869 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 870 |
+
},
|
| 871 |
+
{
|
| 872 |
+
"speaker": "S2",
|
| 873 |
+
"text": "A thoughtful decision. Although I think the neighbours would appreciate a short victory fanfare at the end.",
|
| 874 |
+
"seconds": 7.19,
|
| 875 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 876 |
+
}
|
| 877 |
+
]
|
| 878 |
+
},
|
| 879 |
+
{
|
| 880 |
+
"task_id": "long-de-cooking",
|
| 881 |
+
"group": "long",
|
| 882 |
+
"language": "de",
|
| 883 |
+
"topic": "cooking",
|
| 884 |
+
"seed": 20261106,
|
| 885 |
+
"pause_s": 0.24,
|
| 886 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 887 |
+
"turns": [
|
| 888 |
+
{
|
| 889 |
+
"speaker": "S1",
|
| 890 |
+
"text": "Ich habe gestern endlich das Brot selbst gebacken. Die Küche sah danach allerdings ziemlich abenteuerlich aus.",
|
| 891 |
+
"seconds": 7.19,
|
| 892 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 893 |
+
},
|
| 894 |
+
{
|
| 895 |
+
"speaker": "S2",
|
| 896 |
+
"text": "Das gehört dazu. Die entscheidende Frage ist doch: Hat es gut geschmeckt, oder war es eher ein Türstopper?",
|
| 897 |
+
"seconds": 7.19,
|
| 898 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 899 |
+
},
|
| 900 |
+
{
|
| 901 |
+
"speaker": "S1",
|
| 902 |
+
"text": "Überraschend gut! Die Kruste war ein bisschen dunkel, aber innen war es weich. Ich war richtig stolz darauf.",
|
| 903 |
+
"seconds": 7.19,
|
| 904 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 905 |
+
},
|
| 906 |
+
{
|
| 907 |
+
"speaker": "S2",
|
| 908 |
+
"text": "Dann war das keine dunkle Kruste, sondern ein bewusst gewähltes Röstaroma. So würde ich es jedenfalls verkaufen.",
|
| 909 |
+
"seconds": 7.19,
|
| 910 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 911 |
+
},
|
| 912 |
+
{
|
| 913 |
+
"speaker": "S1",
|
| 914 |
+
"text": "Genau das habe ich auch gesagt. Beim zweiten Versuch möchte ich trotzdem vorher schauen, wie heiß der Ofen wirklich ist.",
|
| 915 |
+
"seconds": 7.19,
|
| 916 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 917 |
+
},
|
| 918 |
+
{
|
| 919 |
+
"speaker": "S2",
|
| 920 |
+
"text": "Vernünftig. Ich finde sowieso schön, wenn man etwas macht, bei dem man das Ergebnis hinterher gemeinsam essen kann.",
|
| 921 |
+
"seconds": 7.19,
|
| 922 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 923 |
+
},
|
| 924 |
+
{
|
| 925 |
+
"speaker": "S1",
|
| 926 |
+
"text": "Und wenn es schiefgeht, hat man wenigstens eine Geschichte. Vielleicht brauche ich beim nächsten Mal weniger Mehl auf dem Boden.",
|
| 927 |
+
"seconds": 7.19,
|
| 928 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 929 |
+
},
|
| 930 |
+
{
|
| 931 |
+
"speaker": "S2",
|
| 932 |
+
"text": "Oder mehr Gäste zum Aufräumen. Du lädst zum Brotessen ein und erwähnst den kleinen Arbeitseinsatz erst später.",
|
| 933 |
+
"seconds": 7.19,
|
| 934 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 935 |
+
}
|
| 936 |
+
]
|
| 937 |
+
},
|
| 938 |
+
{
|
| 939 |
+
"task_id": "long-de-train",
|
| 940 |
+
"group": "long",
|
| 941 |
+
"language": "de",
|
| 942 |
+
"topic": "train",
|
| 943 |
+
"seed": 20261107,
|
| 944 |
+
"pause_s": 0.24,
|
| 945 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 946 |
+
"turns": [
|
| 947 |
+
{
|
| 948 |
+
"speaker": "S1",
|
| 949 |
+
"text": "Im Zug hat mich heute ein Kind gefragt, warum die Wolken eigentlich nicht einfach vom Himmel fallen.",
|
| 950 |
+
"seconds": 7.19,
|
| 951 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 952 |
+
},
|
| 953 |
+
{
|
| 954 |
+
"speaker": "S2",
|
| 955 |
+
"text": "Das ist eine ausgezeichnete Frage. Hast du wissenschaftlich geantwortet oder erst einmal sehr lange aus dem Fenster geschaut?",
|
| 956 |
+
"seconds": 7.19,
|
| 957 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 958 |
+
},
|
| 959 |
+
{
|
| 960 |
+
"speaker": "S1",
|
| 961 |
+
"text": "Beides. Ich wollte mit winzigen Wassertröpfchen anfangen, aber dann fragte es sofort, warum die nicht alle zusammenkleben.",
|
| 962 |
+
"seconds": 7.19,
|
| 963 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 964 |
+
},
|
| 965 |
+
{
|
| 966 |
+
"speaker": "S2",
|
| 967 |
+
"text": "Kinder haben dieses Talent, jede vermeintlich einfache Erklärung genau an der spannendsten Stelle auseinanderzunehmen.",
|
| 968 |
+
"seconds": 7.19,
|
| 969 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 970 |
+
},
|
| 971 |
+
{
|
| 972 |
+
"speaker": "S1",
|
| 973 |
+
"text": "Ja, und plötzlich saßen drei Erwachsene da und überlegten gemeinsam. Das war viel netter als auf das Handy zu schauen.",
|
| 974 |
+
"seconds": 7.19,
|
| 975 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 976 |
+
},
|
| 977 |
+
{
|
| 978 |
+
"speaker": "S2",
|
| 979 |
+
"text": "Dann war die eigentliche Entdeckung vielleicht gar nicht das Wetter, sondern dass ein fremder Mensch ein Gespräch anfangen kann.",
|
| 980 |
+
"seconds": 7.19,
|
| 981 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 982 |
+
},
|
| 983 |
+
{
|
| 984 |
+
"speaker": "S1",
|
| 985 |
+
"text": "Am Ende hat das Kind gesagt: Vielleicht bleiben die Wolken oben, weil sie noch irgendwo hinwollen. Das fand ich wunderschön.",
|
| 986 |
+
"seconds": 7.19,
|
| 987 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 988 |
+
},
|
| 989 |
+
{
|
| 990 |
+
"speaker": "S2",
|
| 991 |
+
"text": "Das gefällt mir auch. Die Erklärung würde ich behalten, selbst wenn du später noch die genaue Physik nachliest.",
|
| 992 |
+
"seconds": 7.19,
|
| 993 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 994 |
+
}
|
| 995 |
+
]
|
| 996 |
+
},
|
| 997 |
+
{
|
| 998 |
+
"task_id": "long-de-garden",
|
| 999 |
+
"group": "long",
|
| 1000 |
+
"language": "de",
|
| 1001 |
+
"topic": "garden",
|
| 1002 |
+
"seed": 20261108,
|
| 1003 |
+
"pause_s": 0.24,
|
| 1004 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 1005 |
+
"turns": [
|
| 1006 |
+
{
|
| 1007 |
+
"speaker": "S1",
|
| 1008 |
+
"text": "Auf meinem Balkon wächst jetzt tatsächlich etwas Grünes. Ich hätte nicht gedacht, dass mich so ein kleiner Trieb so freut.",
|
| 1009 |
+
"seconds": 7.19,
|
| 1010 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1011 |
+
},
|
| 1012 |
+
{
|
| 1013 |
+
"speaker": "S2",
|
| 1014 |
+
"text": "Was hast du gepflanzt? Und bitte sag mir, dass du diesmal noch weißt, in welchen Topf die Samen gekommen sind.",
|
| 1015 |
+
"seconds": 7.19,
|
| 1016 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1017 |
+
},
|
| 1018 |
+
{
|
| 1019 |
+
"speaker": "S1",
|
| 1020 |
+
"text": "Basilikum, glaube ich. Die Beschriftung hat der Regen mitgenommen. Es könnte also auch eine sehr überzeugende andere Pflanze sein.",
|
| 1021 |
+
"seconds": 7.19,
|
| 1022 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1023 |
+
},
|
| 1024 |
+
{
|
| 1025 |
+
"speaker": "S2",
|
| 1026 |
+
"text": "Dann betrachten wir das vorerst als botanisches Rätsel. Du musst nichts überstürzen und solltest vielleicht noch nicht daran knabbern.",
|
| 1027 |
+
"seconds": 7.19,
|
| 1028 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1029 |
+
},
|
| 1030 |
+
{
|
| 1031 |
+
"speaker": "S1",
|
| 1032 |
+
"text": "Keine Sorge. Ich finde es einfach angenehm, morgens kurz nachzusehen, ob wieder ein neues Blatt dazugekommen ist.",
|
| 1033 |
+
"seconds": 7.19,
|
| 1034 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1035 |
+
},
|
| 1036 |
+
{
|
| 1037 |
+
"speaker": "S2",
|
| 1038 |
+
"text": "Das verstehe ich. Es ist eine kleine Veränderung, die nicht drängelt und trotzdem zeigt, dass etwas vorangeht.",
|
| 1039 |
+
"seconds": 7.19,
|
| 1040 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1041 |
+
},
|
| 1042 |
+
{
|
| 1043 |
+
"speaker": "S1",
|
| 1044 |
+
"text": "Genau. Und ich merke, dass ich dabei geduldiger werde. Obwohl ich immer noch dreimal täglich nach dem angeblichen Basilikum schaue.",
|
| 1045 |
+
"seconds": 7.19,
|
| 1046 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1047 |
+
},
|
| 1048 |
+
{
|
| 1049 |
+
"speaker": "S2",
|
| 1050 |
+
"text": "Geduld mit regelmäßiger Kontrolle. Das klingt nach einem guten Anfang. Jetzt fehlt nur noch eine wetterfeste Beschriftung.",
|
| 1051 |
+
"seconds": 7.19,
|
| 1052 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1053 |
+
}
|
| 1054 |
+
]
|
| 1055 |
+
},
|
| 1056 |
+
{
|
| 1057 |
+
"task_id": "long-fr-jardin",
|
| 1058 |
+
"group": "long",
|
| 1059 |
+
"language": "fr",
|
| 1060 |
+
"topic": "jardin",
|
| 1061 |
+
"seed": 20261109,
|
| 1062 |
+
"pause_s": 0.24,
|
| 1063 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 1064 |
+
"turns": [
|
| 1065 |
+
{
|
| 1066 |
+
"speaker": "S1",
|
| 1067 |
+
"text": "Ce matin, j’ai découvert une petite fleur sur mon balcon. Je pensais vraiment que cette plante avait abandonné.",
|
| 1068 |
+
"seconds": 7.19,
|
| 1069 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1070 |
+
},
|
| 1071 |
+
{
|
| 1072 |
+
"speaker": "S2",
|
| 1073 |
+
"text": "Comme quoi, elle préparait peut-être sa surprise en silence. Tu lui as donné un peu plus de lumière ?",
|
| 1074 |
+
"seconds": 7.19,
|
| 1075 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1076 |
+
},
|
| 1077 |
+
{
|
| 1078 |
+
"speaker": "S1",
|
| 1079 |
+
"text": "Oui, et surtout un peu moins d’eau. Apparemment, mon enthousiasme dépassait largement ses besoins. Je voulais trop bien faire.",
|
| 1080 |
+
"seconds": 7.19,
|
| 1081 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1082 |
+
},
|
| 1083 |
+
{
|
| 1084 |
+
"speaker": "S2",
|
| 1085 |
+
"text": "C’est assez humain, finalement. On croit aider en faisant davantage, alors que parfois il faut simplement laisser respirer.",
|
| 1086 |
+
"seconds": 7.19,
|
| 1087 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1088 |
+
},
|
| 1089 |
+
{
|
| 1090 |
+
"speaker": "S1",
|
| 1091 |
+
"text": "Tu as raison. Maintenant, je regarde les nouvelles feuilles avant de prendre mon téléphone. Cela change le début de ma journée.",
|
| 1092 |
+
"seconds": 7.19,
|
| 1093 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1094 |
+
},
|
| 1095 |
+
{
|
| 1096 |
+
"speaker": "S2",
|
| 1097 |
+
"text": "Et tu ne peux pas accélérer la prochaine fleur en actualisant la page. C’est peut-être exactement ce qui fait du bien.",
|
| 1098 |
+
"seconds": 7.19,
|
| 1099 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1100 |
+
},
|
| 1101 |
+
{
|
| 1102 |
+
"speaker": "S1",
|
| 1103 |
+
"text": "Voilà. Même si je vérifie encore beaucoup trop souvent. J’appelle cela de la patience, mais une patience très attentive.",
|
| 1104 |
+
"seconds": 7.19,
|
| 1105 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1106 |
+
},
|
| 1107 |
+
{
|
| 1108 |
+
"speaker": "S2",
|
| 1109 |
+
"text": "C’est une jolie manière de le dire. Garde cette attention, et pense seulement à poser l’arrosoir de temps en temps.",
|
| 1110 |
+
"seconds": 7.19,
|
| 1111 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1112 |
+
}
|
| 1113 |
+
]
|
| 1114 |
+
},
|
| 1115 |
+
{
|
| 1116 |
+
"task_id": "long-fr-chance",
|
| 1117 |
+
"group": "long",
|
| 1118 |
+
"language": "fr",
|
| 1119 |
+
"topic": "chance",
|
| 1120 |
+
"seed": 20261110,
|
| 1121 |
+
"pause_s": 0.24,
|
| 1122 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 1123 |
+
"turns": [
|
| 1124 |
+
{
|
| 1125 |
+
"speaker": "S1",
|
| 1126 |
+
"text": "J’ai retrouvé un vieux carnet dans une boîte. Il était rempli de projets que j’avais complètement oubliés.",
|
| 1127 |
+
"seconds": 7.19,
|
| 1128 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1129 |
+
},
|
| 1130 |
+
{
|
| 1131 |
+
"speaker": "S2",
|
| 1132 |
+
"text": "Et alors, tu as eu envie de les reprendre, ou surtout de remercier ton ancien toi de ne pas avoir tout essayé ?",
|
| 1133 |
+
"seconds": 7.19,
|
| 1134 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1135 |
+
},
|
| 1136 |
+
{
|
| 1137 |
+
"speaker": "S1",
|
| 1138 |
+
"text": "Un peu des deux. Il y avait une idée de voyage magnifique, puis une recette de soupe franchement inquiétante.",
|
| 1139 |
+
"seconds": 7.19,
|
| 1140 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1141 |
+
},
|
| 1142 |
+
{
|
| 1143 |
+
"speaker": "S2",
|
| 1144 |
+
"text": "C’est rassurant. Un bon carnet devrait contenir de grandes ambitions et quelques décisions culinaires discutables.",
|
| 1145 |
+
"seconds": 7.19,
|
| 1146 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1147 |
+
},
|
| 1148 |
+
{
|
| 1149 |
+
"speaker": "S1",
|
| 1150 |
+
"text": "Ce qui m’a touché, c’est de voir combien je pouvais être enthousiaste. Pas forcément réaliste, mais vraiment curieux.",
|
| 1151 |
+
"seconds": 7.19,
|
| 1152 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1153 |
+
},
|
| 1154 |
+
{
|
| 1155 |
+
"speaker": "S2",
|
| 1156 |
+
"text": "Peut-être que tu peux garder cette curiosité sans reprendre chaque projet. On a le droit de changer de direction.",
|
| 1157 |
+
"seconds": 7.19,
|
| 1158 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1159 |
+
},
|
| 1160 |
+
{
|
| 1161 |
+
"speaker": "S1",
|
| 1162 |
+
"text": "Oui. Je vais choisir une seule petite chose, quelque chose que je pourrais faire ce week-end, sans organisation compliquée.",
|
| 1163 |
+
"seconds": 7.19,
|
| 1164 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1165 |
+
},
|
| 1166 |
+
{
|
| 1167 |
+
"speaker": "S2",
|
| 1168 |
+
"text": "Très bonne idée. Et pour la soupe, nous attendrons prudemment une deuxième opinion avant de rallumer le feu.",
|
| 1169 |
+
"seconds": 7.19,
|
| 1170 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1171 |
+
}
|
| 1172 |
+
]
|
| 1173 |
+
},
|
| 1174 |
+
{
|
| 1175 |
+
"task_id": "long-es-radio",
|
| 1176 |
+
"group": "long",
|
| 1177 |
+
"language": "es",
|
| 1178 |
+
"topic": "radio",
|
| 1179 |
+
"seed": 20261111,
|
| 1180 |
+
"pause_s": 0.24,
|
| 1181 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 1182 |
+
"turns": [
|
| 1183 |
+
{
|
| 1184 |
+
"speaker": "S1",
|
| 1185 |
+
"text": "Esta mañana escuché una canción que no oía desde el colegio. De repente recordé hasta el camino de vuelta a casa.",
|
| 1186 |
+
"seconds": 7.19,
|
| 1187 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1188 |
+
},
|
| 1189 |
+
{
|
| 1190 |
+
"speaker": "S2",
|
| 1191 |
+
"text": "Es increíble cómo pasa eso. A veces una melodía guarda recuerdos que ni siquiera sabíamos que seguían allí.",
|
| 1192 |
+
"seconds": 7.19,
|
| 1193 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1194 |
+
},
|
| 1195 |
+
{
|
| 1196 |
+
"speaker": "S1",
|
| 1197 |
+
"text": "Sí, y no era una canción especialmente importante. Creo que simplemente sonaba siempre en la pequeña tienda de la esquina.",
|
| 1198 |
+
"seconds": 7.19,
|
| 1199 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1200 |
+
},
|
| 1201 |
+
{
|
| 1202 |
+
"speaker": "S2",
|
| 1203 |
+
"text": "Entonces también recuerdas la tienda, el ruido de la calle, quizá alguna conversación. Todo aparece junto, sin pedir permiso.",
|
| 1204 |
+
"seconds": 7.19,
|
| 1205 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1206 |
+
},
|
| 1207 |
+
{
|
| 1208 |
+
"speaker": "S1",
|
| 1209 |
+
"text": "Exactamente. Me dieron ganas de escribirle a un amigo de aquella época, aunque llevamos bastante tiempo sin hablar.",
|
| 1210 |
+
"seconds": 7.19,
|
| 1211 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1212 |
+
},
|
| 1213 |
+
{
|
| 1214 |
+
"speaker": "S2",
|
| 1215 |
+
"text": "Hazlo. No necesitas un mensaje perfecto. Puedes empezar diciendo que escuchaste algo y te acordaste de él.",
|
| 1216 |
+
"seconds": 7.19,
|
| 1217 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1218 |
+
},
|
| 1219 |
+
{
|
| 1220 |
+
"speaker": "S1",
|
| 1221 |
+
"text": "Eso voy a hacer. A veces complico demasiado estas cosas, como si retomar una amistad necesitara una gran explicación.",
|
| 1222 |
+
"seconds": 7.19,
|
| 1223 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1224 |
+
},
|
| 1225 |
+
{
|
| 1226 |
+
"speaker": "S2",
|
| 1227 |
+
"text": "Y muchas veces basta con una frase sincera. Bueno, y con no enviarle veinte canciones antes de que conteste.",
|
| 1228 |
+
"seconds": 7.19,
|
| 1229 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1230 |
+
}
|
| 1231 |
+
]
|
| 1232 |
+
},
|
| 1233 |
+
{
|
| 1234 |
+
"task_id": "long-es-friends",
|
| 1235 |
+
"group": "long",
|
| 1236 |
+
"language": "es",
|
| 1237 |
+
"topic": "friends",
|
| 1238 |
+
"seed": 20261112,
|
| 1239 |
+
"pause_s": 0.24,
|
| 1240 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 1241 |
+
"turns": [
|
| 1242 |
+
{
|
| 1243 |
+
"speaker": "S1",
|
| 1244 |
+
"text": "Ayer cociné para unos amigos y olvidé poner sal. Me di cuenta cuando todos estaban intentando ser demasiado amables.",
|
| 1245 |
+
"seconds": 7.19,
|
| 1246 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1247 |
+
},
|
| 1248 |
+
{
|
| 1249 |
+
"speaker": "S2",
|
| 1250 |
+
"text": "Ese silencio tan educado lo dice todo. ¿Alguien pidió el salero o decidiste presentar el plato como una experiencia delicada?",
|
| 1251 |
+
"seconds": 7.19,
|
| 1252 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1253 |
+
},
|
| 1254 |
+
{
|
| 1255 |
+
"speaker": "S1",
|
| 1256 |
+
"text": "Al final me reí y lo dije yo. Fue un alivio, porque en cuanto lo reconocí todos empezaron a contar sus propios desastres.",
|
| 1257 |
+
"seconds": 7.19,
|
| 1258 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1259 |
+
},
|
| 1260 |
+
{
|
| 1261 |
+
"speaker": "S2",
|
| 1262 |
+
"text": "Eso suele mejorar una cena más que una receta perfecta. De repente nadie tiene que fingir que siempre le sale todo bien.",
|
| 1263 |
+
"seconds": 7.19,
|
| 1264 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1265 |
+
},
|
| 1266 |
+
{
|
| 1267 |
+
"speaker": "S1",
|
| 1268 |
+
"text": "Una amiga contó que una vez horneó un pastel sin harina. Todavía no entiendo muy bien qué fue lo que terminó sirviendo.",
|
| 1269 |
+
"seconds": 7.19,
|
| 1270 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1271 |
+
},
|
| 1272 |
+
{
|
| 1273 |
+
"speaker": "S2",
|
| 1274 |
+
"text": "Quizá inventó un postre nuevo. Hay errores que suenan terribles hasta que alguien les pone un nombre elegante.",
|
| 1275 |
+
"seconds": 7.19,
|
| 1276 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1277 |
+
},
|
| 1278 |
+
{
|
| 1279 |
+
"speaker": "S1",
|
| 1280 |
+
"text": "En cualquier caso, terminamos hablando durante horas. La próxima vez pondré sal, pero espero que la conversación sea igual de buena.",
|
| 1281 |
+
"seconds": 7.19,
|
| 1282 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 1283 |
+
},
|
| 1284 |
+
{
|
| 1285 |
+
"speaker": "S2",
|
| 1286 |
+
"text": "Seguro que sí. Y si no, siempre puedes olvidar las cucharas. Aunque yo preferiría conservar la comida y buscar otra anécdota.",
|
| 1287 |
+
"seconds": 7.19,
|
| 1288 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 1289 |
+
}
|
| 1290 |
+
]
|
| 1291 |
+
}
|
| 1292 |
+
]
|
examples/de-S1.wav
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9966c27d168196d1d9653cd9b23f9c547ef36aa66a52cefe0685f15e0d504abc
|
| 3 |
+
size 576044
|
examples/de-S2.wav
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4672ee492a4b4a27e524fcd8b748e804e0c3b3b94e86c8a1dba02be6204a4481
|
| 3 |
+
size 537644
|
examples/dialogue.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"task_id": "short-en-coffee",
|
| 3 |
+
"group": "short",
|
| 4 |
+
"language": "en",
|
| 5 |
+
"topic": "coffee",
|
| 6 |
+
"seed": 20261103,
|
| 7 |
+
"pause_s": 0.24,
|
| 8 |
+
"general": "A natural two-person podcast conversation. Two distinct stable voices take turns, listening and responding warmly. Clear studio speech, organic rhythm and small natural pauses. Read only the words in SCRIPT.",
|
| 9 |
+
"turns": [
|
| 10 |
+
{
|
| 11 |
+
"speaker": "S1",
|
| 12 |
+
"text": "I tried making coffee without looking at my phone this morning. It felt oddly peaceful, actually.",
|
| 13 |
+
"seconds": 8.88,
|
| 14 |
+
"direction": "warm, curious, relaxed conversational delivery"
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"speaker": "S2",
|
| 18 |
+
"text": "That sounds lovely. Although I would probably spend the whole time wondering whether the kettle was taking longer.",
|
| 19 |
+
"seconds": 8.88,
|
| 20 |
+
"direction": "engaged, friendly, spontaneous conversational reply"
|
| 21 |
+
}
|
| 22 |
+
]
|
| 23 |
+
}
|
examples/en-S1.wav
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d85fb8b03e2c12b502917e2d2e0da72048ec335d8c59bf51dd53263870b31625
|
| 3 |
+
size 852524
|
examples/en-S2.wav
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1cfd4e50d4f08e92d95d6e6824cc1d9d309844506ba6f4b24335e5c69ee2953b
|
| 3 |
+
size 721964
|
examples/es-S1.wav
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:5e0d9ed986b8b62d0a6b9f3c944020951747695e8a8f5966fd2ed57b4d54c6e0
|
| 3 |
+
size 568364
|
examples/es-S2.wav
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6d320996367763baa6e99f589d8a95a5c6a8375d52e1098bf9ac5da74ac9e459
|
| 3 |
+
size 560684
|
examples/fr-S1.wav
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1f5a721525d0a0405d153136e37f883bd9bc54699b733e70ccbc8a2e2cc55ad6
|
| 3 |
+
size 499244
|
examples/fr-S2.wav
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c78996dd65b14b3c5e2df8c9accbd1540e092a6f28fa4ee48558403c0cf6505b
|
| 3 |
+
size 545324
|
examples/reference-provenance.json
ADDED
|
@@ -0,0 +1,1754 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"en": {
|
| 3 |
+
"S1": {
|
| 4 |
+
"episode": "47f242531f7d85bda216c3debaec5c369935e9fd0a89ec36aba025e80057a30b",
|
| 5 |
+
"original_speaker": "S2",
|
| 6 |
+
"start_frame": 4535,
|
| 7 |
+
"end_frame": 4646,
|
| 8 |
+
"language": "en",
|
| 9 |
+
"window": {
|
| 10 |
+
"episode": "47f242531f7d85bda216c3debaec5c369935e9fd0a89ec36aba025e80057a30b",
|
| 11 |
+
"lang": "en",
|
| 12 |
+
"window": "middle",
|
| 13 |
+
"start": 347.540408,
|
| 14 |
+
"duration": 30.0,
|
| 15 |
+
"ce": 6.411804489791393
|
| 16 |
+
},
|
| 17 |
+
"text": "Recognizing that just installing the software achieves nothing unless the operating model, the human skills, adapt at the same time. It's as much a change management challenge as a tech",
|
| 18 |
+
"scores": {
|
| 19 |
+
"emo_Affection": 0.044916778802871704,
|
| 20 |
+
"emo_Amusement": 0.0896710455417633,
|
| 21 |
+
"emo_Anger": 0.020686715841293335,
|
| 22 |
+
"emo_Astonishment_Surprise": 0.021077096462249756,
|
| 23 |
+
"emo_Awe": 0.00831460952758789,
|
| 24 |
+
"emo_Bitterness": 0.01997998356819153,
|
| 25 |
+
"emo_Concentration": 2.3828930854797363,
|
| 26 |
+
"emo_Confusion": 0.019798070192337036,
|
| 27 |
+
"emo_Contemplation": 1.4535179138183594,
|
| 28 |
+
"emo_Contempt": 0.005230426788330078,
|
| 29 |
+
"emo_Contentment": 1.8263260126113892,
|
| 30 |
+
"emo_Disappointment": -0.02528536319732666,
|
| 31 |
+
"emo_Disgust": 0.011815264821052551,
|
| 32 |
+
"emo_Distress": 0.015124201774597168,
|
| 33 |
+
"emo_Doubt": 0.021136879920959473,
|
| 34 |
+
"emo_Elation": 0.00012952089309692383,
|
| 35 |
+
"emo_Embarrassment": -0.018539071083068848,
|
| 36 |
+
"emo_Emotional_Numbness": 0.29845017194747925,
|
| 37 |
+
"emo_Fatigue_Exhaustion": -0.015124976634979248,
|
| 38 |
+
"emo_Fear": 0.029022395610809326,
|
| 39 |
+
"emo_Helplessness": -0.05028754472732544,
|
| 40 |
+
"emo_Hope_Enthusiasm_Optimism": 1.1021933555603027,
|
| 41 |
+
"emo_Impatience_and_Irritability": 0.049224674701690674,
|
| 42 |
+
"emo_Infatuation": -0.0066391825675964355,
|
| 43 |
+
"emo_Interest": 2.3918237686157227,
|
| 44 |
+
"emo_Intoxication_Altered_States_of_Consciousness": -0.023080214858055115,
|
| 45 |
+
"emo_Jealousy_and_Envy": 0.003954067826271057,
|
| 46 |
+
"emo_Longing": 0.035218000411987305,
|
| 47 |
+
"emo_Malevolence_Malice": 0.016138404607772827,
|
| 48 |
+
"emo_Pain": -0.028374433517456055,
|
| 49 |
+
"emo_Pleasure_Ecstasy": -0.017789393663406372,
|
| 50 |
+
"emo_Pride": 0.8620995879173279,
|
| 51 |
+
"emo_Relief": -0.014433503150939941,
|
| 52 |
+
"emo_Sadness": -0.00990837812423706,
|
| 53 |
+
"emo_Sexual_Lust": 0.004031270742416382,
|
| 54 |
+
"emo_Shame": -0.009914115071296692,
|
| 55 |
+
"emo_Sourness": -0.004457250237464905,
|
| 56 |
+
"emo_Teasing": 0.028293877840042114,
|
| 57 |
+
"emo_Thankfulness_Gratitude": 0.02457219362258911,
|
| 58 |
+
"emo_Triumph": 0.0600743293762207,
|
| 59 |
+
"vn_AGEV_reg": 3.3016669750213623,
|
| 60 |
+
"vn_AROU_reg": 2.8899264335632324,
|
| 61 |
+
"vn_ARSH_reg": 3.131937026977539,
|
| 62 |
+
"vn_ATCK_reg": 3.188565731048584,
|
| 63 |
+
"vn_BKGN_reg": 3.993759870529175,
|
| 64 |
+
"vn_BRGT_reg": 3.312556743621826,
|
| 65 |
+
"vn_CHNK_reg": 3.391357421875,
|
| 66 |
+
"vn_CLRT_reg": 4.476703643798828,
|
| 67 |
+
"vn_COGL_reg": 0.7366646528244019,
|
| 68 |
+
"vn_DARC_reg": 3.081094741821289,
|
| 69 |
+
"vn_DFLU_reg": 0.2404625415802002,
|
| 70 |
+
"vn_EMPH_reg": 3.1535863876342773,
|
| 71 |
+
"vn_ESTH_reg": 4.101387977600098,
|
| 72 |
+
"vn_EXPL_reg": 0.04618470370769501,
|
| 73 |
+
"vn_FOCS_reg": 4.183499336242676,
|
| 74 |
+
"vn_FULL_reg": 3.8218843936920166,
|
| 75 |
+
"vn_GEND_reg": 4.951261043548584,
|
| 76 |
+
"vn_HARM_reg": 3.733027219772339,
|
| 77 |
+
"vn_METL_reg": 1.5914198160171509,
|
| 78 |
+
"vn_RANG_reg": 2.639007329940796,
|
| 79 |
+
"vn_RCQL_reg": 4.19329309463501,
|
| 80 |
+
"vn_REGS_reg": 1.3563289642333984,
|
| 81 |
+
"vn_RESP_reg": 1.4511476755142212,
|
| 82 |
+
"vn_ROUG_reg": 1.4923737049102783,
|
| 83 |
+
"vn_R_CHST_reg": 3.706143856048584,
|
| 84 |
+
"vn_R_HEAD_reg": 1.6914302110671997,
|
| 85 |
+
"vn_R_MASK_reg": 2.9622108936309814,
|
| 86 |
+
"vn_R_MIXD_reg": 3.782395601272583,
|
| 87 |
+
"vn_R_NASL_reg": 1.6039230823516846,
|
| 88 |
+
"vn_R_ORAL_reg": 3.5968661308288574,
|
| 89 |
+
"vn_R_THRT_reg": 2.590158224105835,
|
| 90 |
+
"vn_SMTH_reg": 4.129175186157227,
|
| 91 |
+
"vn_STNC_reg": 4.157435417175293,
|
| 92 |
+
"vn_STRU_reg": 4.648323059082031,
|
| 93 |
+
"vn_S_ASMR_reg": -0.11486732959747314,
|
| 94 |
+
"vn_S_AUTH_reg": 4.035935401916504,
|
| 95 |
+
"vn_S_CART_reg": -0.20317816734313965,
|
| 96 |
+
"vn_S_CASU_reg": 1.9761770963668823,
|
| 97 |
+
"vn_S_CONV_reg": 2.6582865715026855,
|
| 98 |
+
"vn_S_DRAM_reg": 1.777975082397461,
|
| 99 |
+
"vn_S_FORM_reg": 3.69545316696167,
|
| 100 |
+
"vn_S_MONO_reg": 3.1506378650665283,
|
| 101 |
+
"vn_S_NARR_reg": 3.8744468688964844,
|
| 102 |
+
"vn_S_NEWS_reg": 2.7603554725646973,
|
| 103 |
+
"vn_S_PLAY_reg": 1.0244368314743042,
|
| 104 |
+
"vn_S_RANT_reg": 0.15826869010925293,
|
| 105 |
+
"vn_S_STRY_reg": 2.047847270965576,
|
| 106 |
+
"vn_S_TECH_reg": 3.592550039291382,
|
| 107 |
+
"vn_S_WHIS_reg": -0.05654406547546387,
|
| 108 |
+
"vn_TEMP_reg": 3.615788221359253,
|
| 109 |
+
"vn_TENS_reg": 1.8553197383880615,
|
| 110 |
+
"vn_VALN_reg": 2.870231866836548,
|
| 111 |
+
"vn_VALS_reg": 3.128520965576172,
|
| 112 |
+
"vn_VFLX_reg": 2.970663547515869,
|
| 113 |
+
"vn_VOLT_reg": 1.2053163051605225,
|
| 114 |
+
"vn_VULN_reg": 0.9679520130157471,
|
| 115 |
+
"vn_WARM_reg": 3.524272918701172,
|
| 116 |
+
"genuineness_0_6": 4.036643981933594,
|
| 117 |
+
"blend_0_10": 6.994388103485107,
|
| 118 |
+
"R_quality": 0.49497437477111816,
|
| 119 |
+
"eiv_extra:Age": 3.3220932483673096,
|
| 120 |
+
"eiv_extra:Arousal": 1.2319591045379639,
|
| 121 |
+
"eiv_extra:Authenticity": 2.771702289581299,
|
| 122 |
+
"eiv_extra:Background_Noise": 0.11300861835479736,
|
| 123 |
+
"eiv_extra:Confident_vs._Hesitant": 0.9623448848724365,
|
| 124 |
+
"eiv_extra:Gender": -1.0594953298568726,
|
| 125 |
+
"eiv_extra:High-Pitched_vs._Low-Pitched": 2.068246603012085,
|
| 126 |
+
"eiv_extra:Monotone_vs._Expressive": 1.926389217376709,
|
| 127 |
+
"eiv_extra:Recording_Quality": 2.764446258544922,
|
| 128 |
+
"eiv_extra:Serious_vs._Humorous": 0.9570503830909729,
|
| 129 |
+
"eiv_extra:Soft_vs._Harsh": 0.08383968472480774,
|
| 130 |
+
"eiv_extra:Submissive_vs._Dominant": 0.5415263175964355,
|
| 131 |
+
"eiv_extra:Valence": -0.07493813335895538,
|
| 132 |
+
"eiv_extra:Vulnerable_vs._Emotionally_Detached": 2.6135826110839844,
|
| 133 |
+
"eiv_extra:Warm_vs._Cold": 0.03427967429161072,
|
| 134 |
+
"eiv_extra:score_background_quality": 3.7240524291992188,
|
| 135 |
+
"eiv_extra:score_content_enjoyment": 4.916215896606445,
|
| 136 |
+
"eiv_extra:score_overall_quality": 3.0479235649108887,
|
| 137 |
+
"eiv_extra:score_speech_quality": 1.9263687133789062,
|
| 138 |
+
"audiobox:CE": 6.475345611572266,
|
| 139 |
+
"audiobox:CU": 7.470410346984863,
|
| 140 |
+
"audiobox:PC": 1.479453682899475,
|
| 141 |
+
"audiobox:PQ": 8.056504249572754,
|
| 142 |
+
"dnsmos:SIG_raw": 4.183594226837158,
|
| 143 |
+
"dnsmos:BAK_raw": 4.429921627044678,
|
| 144 |
+
"dnsmos:OVRL_raw": 3.986091375350952,
|
| 145 |
+
"dnsmos:SIG": 3.635957717895508,
|
| 146 |
+
"dnsmos:BAK": 4.14784574508667,
|
| 147 |
+
"dnsmos:OVRL": 3.4156992435455322,
|
| 148 |
+
"dnsmos:P808_MOS": 4.070035934448242,
|
| 149 |
+
"burst_count_log1p": 0.1443398892879486,
|
| 150 |
+
"voiceclap_attribute:Affection": -0.20595383644104004,
|
| 151 |
+
"voiceclap_attribute:Age": 3.251166343688965,
|
| 152 |
+
"voiceclap_attribute:Amusement": 0.2761256992816925,
|
| 153 |
+
"voiceclap_attribute:Anger": -0.0215071439743042,
|
| 154 |
+
"voiceclap_attribute:Arousal": 1.4376707077026367,
|
| 155 |
+
"voiceclap_attribute:Astonishment_Surprise": 0.17212054133415222,
|
| 156 |
+
"voiceclap_attribute:Authenticity": 2.892148494720459,
|
| 157 |
+
"voiceclap_attribute:Awe": 0.13784077763557434,
|
| 158 |
+
"voiceclap_attribute:Background_Noise": 0.24468371272087097,
|
| 159 |
+
"voiceclap_attribute:Bitterness": 0.018249094486236572,
|
| 160 |
+
"voiceclap_attribute:Concentration": 2.494945526123047,
|
| 161 |
+
"voiceclap_attribute:Confident_vs._Hesitant": 0.8552287220954895,
|
| 162 |
+
"voiceclap_attribute:Confusion": -0.09103381633758545,
|
| 163 |
+
"voiceclap_attribute:Contemplation": 1.528646469116211,
|
| 164 |
+
"voiceclap_attribute:Contempt": 0.06687861680984497,
|
| 165 |
+
"voiceclap_attribute:Contentment": 1.4767652750015259,
|
| 166 |
+
"voiceclap_attribute:Disappointment": 0.011530518531799316,
|
| 167 |
+
"voiceclap_attribute:Disgust": 0.029055893421173096,
|
| 168 |
+
"voiceclap_attribute:Distress": -0.06888538599014282,
|
| 169 |
+
"voiceclap_attribute:Doubt": 0.03893560171127319,
|
| 170 |
+
"voiceclap_attribute:Elation": 0.09965866804122925,
|
| 171 |
+
"voiceclap_attribute:Embarrassment": -0.013739347457885742,
|
| 172 |
+
"voiceclap_attribute:Emotional_Numbness": 0.08770185708999634,
|
| 173 |
+
"voiceclap_attribute:Fatigue_Exhaustion": -0.19961676001548767,
|
| 174 |
+
"voiceclap_attribute:Fear": 0.07311379909515381,
|
| 175 |
+
"voiceclap_attribute:Gender": -1.0299090147018433,
|
| 176 |
+
"voiceclap_attribute:Helplessness": -0.0892876386642456,
|
| 177 |
+
"voiceclap_attribute:High-Pitched_vs._Low-Pitched": 1.9851802587509155,
|
| 178 |
+
"voiceclap_attribute:Hope_Enthusiasm_Optimism": 0.9585894346237183,
|
| 179 |
+
"voiceclap_attribute:Impatience_and_Irritability": 0.027670860290527344,
|
| 180 |
+
"voiceclap_attribute:Infatuation": -0.15207678079605103,
|
| 181 |
+
"voiceclap_attribute:Interest": 2.5115389823913574,
|
| 182 |
+
"voiceclap_attribute:Intoxication_Altered_States_of_Consciousness": -0.08464688062667847,
|
| 183 |
+
"voiceclap_attribute:Jealousy_&_Envy": -0.06632769107818604,
|
| 184 |
+
"voiceclap_attribute:Longing": -0.20924341678619385,
|
| 185 |
+
"voiceclap_attribute:Malevolence_Malice": -0.0024952292442321777,
|
| 186 |
+
"voiceclap_attribute:Monotone_vs._Expressive": 1.8484630584716797,
|
| 187 |
+
"voiceclap_attribute:Pain": -0.09224006533622742,
|
| 188 |
+
"voiceclap_attribute:Pleasure_Ecstasy": -0.03208339214324951,
|
| 189 |
+
"voiceclap_attribute:Pride": 0.7150555849075317,
|
| 190 |
+
"voiceclap_attribute:Recording_Quality": 2.73024845123291,
|
| 191 |
+
"voiceclap_attribute:Relief": -0.08085215091705322,
|
| 192 |
+
"voiceclap_attribute:Sadness": -0.03938835859298706,
|
| 193 |
+
"voiceclap_attribute:Serious_vs._Humorous": 0.8458406925201416,
|
| 194 |
+
"voiceclap_attribute:Sexual_Lust": -0.09768033027648926,
|
| 195 |
+
"voiceclap_attribute:Shame": -0.02619558572769165,
|
| 196 |
+
"voiceclap_attribute:Soft_vs._Harsh": 0.062218621373176575,
|
| 197 |
+
"voiceclap_attribute:Sourness": 0.07866406440734863,
|
| 198 |
+
"voiceclap_attribute:Submissive_vs._Dominant": 0.5844260454177856,
|
| 199 |
+
"voiceclap_attribute:Teasing": 0.027302980422973633,
|
| 200 |
+
"voiceclap_attribute:Thankfulness_Gratitude": -0.32050418853759766,
|
| 201 |
+
"voiceclap_attribute:Triumph": 0.04176449775695801,
|
| 202 |
+
"voiceclap_attribute:Valence": -0.10700663924217224,
|
| 203 |
+
"voiceclap_attribute:Vulnerable_vs._Emotionally_Detached": 2.4343531131744385,
|
| 204 |
+
"voiceclap_attribute:Warm_vs._Cold": 0.15293753147125244,
|
| 205 |
+
"voiceclap_attribute:duration": 8.938613891601562,
|
| 206 |
+
"voiceclap_attribute:score_background_quality": 3.575244903564453,
|
| 207 |
+
"voiceclap_attribute:score_content_enjoyment": 4.874354362487793,
|
| 208 |
+
"voiceclap_attribute:score_overall_quality": 2.993528366088867,
|
| 209 |
+
"voiceclap_attribute:score_speech_quality": 1.9786185026168823,
|
| 210 |
+
"voiceclap_attribute:talking_speed": 20.73843002319336
|
| 211 |
+
},
|
| 212 |
+
"asr": "Recognizing that just installing the software achieves nothing unless the operating model, the human skills, adapt at the same time. It's as much a change management challenge as a technological.",
|
| 213 |
+
"audio_sha256": "46f1c0d07283c73d4b950929a37fc1889902311e452be94d5a7675f4f209aa89",
|
| 214 |
+
"speaker": "S1",
|
| 215 |
+
"seconds": 8.88,
|
| 216 |
+
"media_member": "en-S1.mp3",
|
| 217 |
+
"wav_member": "en-S1.wav",
|
| 218 |
+
"source_split": "train",
|
| 219 |
+
"source_audio": "Original media crop, not a codec reconstruction"
|
| 220 |
+
},
|
| 221 |
+
"S2": {
|
| 222 |
+
"episode": "34b24e223b7c76afeb48760fbf721bed891e92ec9f3ff3cefdeb086d87d3f359",
|
| 223 |
+
"original_speaker": "S2",
|
| 224 |
+
"start_frame": 1854,
|
| 225 |
+
"end_frame": 1948,
|
| 226 |
+
"language": "en",
|
| 227 |
+
"window": {
|
| 228 |
+
"episode": "34b24e223b7c76afeb48760fbf721bed891e92ec9f3ff3cefdeb086d87d3f359",
|
| 229 |
+
"lang": "en",
|
| 230 |
+
"window": "middle",
|
| 231 |
+
"start": 128.430628,
|
| 232 |
+
"duration": 30.0,
|
| 233 |
+
"ce": 6.403861818835139
|
| 234 |
+
},
|
| 235 |
+
"text": "The pressure is immense down there, and that oil-filled tube helps them manage booyancy without using a lot of energy.",
|
| 236 |
+
"scores": {
|
| 237 |
+
"emo_Affection": 0.06828047335147858,
|
| 238 |
+
"emo_Amusement": 0.0744192898273468,
|
| 239 |
+
"emo_Anger": 0.0909375548362732,
|
| 240 |
+
"emo_Astonishment_Surprise": 0.03833329677581787,
|
| 241 |
+
"emo_Awe": 0.02389206737279892,
|
| 242 |
+
"emo_Bitterness": 0.070845827460289,
|
| 243 |
+
"emo_Concentration": 2.4285545349121094,
|
| 244 |
+
"emo_Confusion": 0.013547241687774658,
|
| 245 |
+
"emo_Contemplation": 1.4995293617248535,
|
| 246 |
+
"emo_Contempt": 0.07395827770233154,
|
| 247 |
+
"emo_Contentment": 1.8735581636428833,
|
| 248 |
+
"emo_Disappointment": 0.12265381217002869,
|
| 249 |
+
"emo_Disgust": 0.021390840411186218,
|
| 250 |
+
"emo_Distress": 0.08856144547462463,
|
| 251 |
+
"emo_Doubt": 0.04190543293952942,
|
| 252 |
+
"emo_Elation": 0.06467863917350769,
|
| 253 |
+
"emo_Embarrassment": -0.011710166931152344,
|
| 254 |
+
"emo_Emotional_Numbness": 0.20080125331878662,
|
| 255 |
+
"emo_Fatigue_Exhaustion": 0.016562193632125854,
|
| 256 |
+
"emo_Fear": 0.018269121646881104,
|
| 257 |
+
"emo_Helplessness": 0.01609298586845398,
|
| 258 |
+
"emo_Hope_Enthusiasm_Optimism": 0.6414806842803955,
|
| 259 |
+
"emo_Impatience_and_Irritability": 0.07327625155448914,
|
| 260 |
+
"emo_Infatuation": -0.00029659271240234375,
|
| 261 |
+
"emo_Interest": 2.1490163803100586,
|
| 262 |
+
"emo_Intoxication_Altered_States_of_Consciousness": -0.007871195673942566,
|
| 263 |
+
"emo_Jealousy_and_Envy": 0.0004715770483016968,
|
| 264 |
+
"emo_Longing": 0.047636568546295166,
|
| 265 |
+
"emo_Malevolence_Malice": 0.010001450777053833,
|
| 266 |
+
"emo_Pain": 0.0075737833976745605,
|
| 267 |
+
"emo_Pleasure_Ecstasy": 0.03467804193496704,
|
| 268 |
+
"emo_Pride": 0.5371546149253845,
|
| 269 |
+
"emo_Relief": 0.05917331576347351,
|
| 270 |
+
"emo_Sadness": 0.058759450912475586,
|
| 271 |
+
"emo_Sexual_Lust": -0.0018015503883361816,
|
| 272 |
+
"emo_Shame": 0.006461545825004578,
|
| 273 |
+
"emo_Sourness": 0.05296625196933746,
|
| 274 |
+
"emo_Teasing": 0.05141165852546692,
|
| 275 |
+
"emo_Thankfulness_Gratitude": 0.016471177339553833,
|
| 276 |
+
"emo_Triumph": 0.03841741383075714,
|
| 277 |
+
"vn_AGEV_reg": 3.3508851528167725,
|
| 278 |
+
"vn_AROU_reg": 2.5334854125976562,
|
| 279 |
+
"vn_ARSH_reg": 3.196974277496338,
|
| 280 |
+
"vn_ATCK_reg": 3.075408697128296,
|
| 281 |
+
"vn_BKGN_reg": 4.070611953735352,
|
| 282 |
+
"vn_BRGT_reg": 3.185899257659912,
|
| 283 |
+
"vn_CHNK_reg": 2.919048309326172,
|
| 284 |
+
"vn_CLRT_reg": 4.656875133514404,
|
| 285 |
+
"vn_COGL_reg": 0.5225298404693604,
|
| 286 |
+
"vn_DARC_reg": 3.123661756515503,
|
| 287 |
+
"vn_DFLU_reg": -0.03637242317199707,
|
| 288 |
+
"vn_EMPH_reg": 3.319296360015869,
|
| 289 |
+
"vn_ESTH_reg": 4.308232307434082,
|
| 290 |
+
"vn_EXPL_reg": -0.0590214878320694,
|
| 291 |
+
"vn_FOCS_reg": 4.1661577224731445,
|
| 292 |
+
"vn_FULL_reg": 4.291335105895996,
|
| 293 |
+
"vn_GEND_reg": 5.013467788696289,
|
| 294 |
+
"vn_HARM_reg": 3.7588999271392822,
|
| 295 |
+
"vn_METL_reg": 1.6802643537521362,
|
| 296 |
+
"vn_RANG_reg": 2.4561781883239746,
|
| 297 |
+
"vn_RCQL_reg": 4.467576026916504,
|
| 298 |
+
"vn_REGS_reg": 0.9662236571311951,
|
| 299 |
+
"vn_RESP_reg": 1.200474739074707,
|
| 300 |
+
"vn_ROUG_reg": 1.7610195875167847,
|
| 301 |
+
"vn_R_CHST_reg": 3.997999668121338,
|
| 302 |
+
"vn_R_HEAD_reg": 1.3681161403656006,
|
| 303 |
+
"vn_R_MASK_reg": 2.7863144874572754,
|
| 304 |
+
"vn_R_MIXD_reg": 3.8346996307373047,
|
| 305 |
+
"vn_R_NASL_reg": 1.4306567907333374,
|
| 306 |
+
"vn_R_ORAL_reg": 3.451535224914551,
|
| 307 |
+
"vn_R_THRT_reg": 2.992795944213867,
|
| 308 |
+
"vn_SMTH_reg": 4.198636054992676,
|
| 309 |
+
"vn_STNC_reg": 4.255288600921631,
|
| 310 |
+
"vn_STRU_reg": 5.033507823944092,
|
| 311 |
+
"vn_S_ASMR_reg": 0.014387369155883789,
|
| 312 |
+
"vn_S_AUTH_reg": 4.13332986831665,
|
| 313 |
+
"vn_S_CART_reg": -0.09621000289916992,
|
| 314 |
+
"vn_S_CASU_reg": 1.5973947048187256,
|
| 315 |
+
"vn_S_CONV_reg": 2.243990898132324,
|
| 316 |
+
"vn_S_DRAM_reg": 2.1295599937438965,
|
| 317 |
+
"vn_S_FORM_reg": 3.6796975135803223,
|
| 318 |
+
"vn_S_MONO_reg": 3.6004204750061035,
|
| 319 |
+
"vn_S_NARR_reg": 4.25568151473999,
|
| 320 |
+
"vn_S_NEWS_reg": 2.4159774780273438,
|
| 321 |
+
"vn_S_PLAY_reg": 0.7451401948928833,
|
| 322 |
+
"vn_S_RANT_reg": -0.08096981048583984,
|
| 323 |
+
"vn_S_STRY_reg": 2.418037176132202,
|
| 324 |
+
"vn_S_TECH_reg": 3.269036293029785,
|
| 325 |
+
"vn_S_WHIS_reg": -0.15646040439605713,
|
| 326 |
+
"vn_TEMP_reg": 2.780953884124756,
|
| 327 |
+
"vn_TENS_reg": 1.828498125076294,
|
| 328 |
+
"vn_VALN_reg": 2.759892225265503,
|
| 329 |
+
"vn_VALS_reg": 2.939750909805298,
|
| 330 |
+
"vn_VFLX_reg": 2.9329519271850586,
|
| 331 |
+
"vn_VOLT_reg": 0.9814172983169556,
|
| 332 |
+
"vn_VULN_reg": 1.17689049243927,
|
| 333 |
+
"vn_WARM_reg": 3.7787632942199707,
|
| 334 |
+
"genuineness_0_6": 4.124508857727051,
|
| 335 |
+
"blend_0_10": 6.564396381378174,
|
| 336 |
+
"R_quality": 0.2776834964752197,
|
| 337 |
+
"eiv_extra:Age": 3.3088409900665283,
|
| 338 |
+
"eiv_extra:Arousal": 1.030998945236206,
|
| 339 |
+
"eiv_extra:Authenticity": 2.780491352081299,
|
| 340 |
+
"eiv_extra:Background_Noise": -0.031336963176727295,
|
| 341 |
+
"eiv_extra:Confident_vs._Hesitant": 0.8572136163711548,
|
| 342 |
+
"eiv_extra:Gender": -1.0594953298568726,
|
| 343 |
+
"eiv_extra:High-Pitched_vs._Low-Pitched": 2.024301290512085,
|
| 344 |
+
"eiv_extra:Monotone_vs._Expressive": 1.506665587425232,
|
| 345 |
+
"eiv_extra:Recording_Quality": 2.7540531158447266,
|
| 346 |
+
"eiv_extra:Serious_vs._Humorous": 0.9053643941879272,
|
| 347 |
+
"eiv_extra:Soft_vs._Harsh": 0.24291978776454926,
|
| 348 |
+
"eiv_extra:Submissive_vs._Dominant": 0.4815673232078552,
|
| 349 |
+
"eiv_extra:Valence": -0.04363267868757248,
|
| 350 |
+
"eiv_extra:Vulnerable_vs._Emotionally_Detached": 2.402489185333252,
|
| 351 |
+
"eiv_extra:Warm_vs._Cold": 0.056246623396873474,
|
| 352 |
+
"eiv_extra:score_background_quality": 3.7944955825805664,
|
| 353 |
+
"eiv_extra:score_content_enjoyment": 4.8711256980896,
|
| 354 |
+
"eiv_extra:score_overall_quality": 3.034045457839966,
|
| 355 |
+
"eiv_extra:score_speech_quality": 1.9654312133789062,
|
| 356 |
+
"audiobox:CE": 6.570657730102539,
|
| 357 |
+
"audiobox:CU": 7.415783882141113,
|
| 358 |
+
"audiobox:PC": 1.5173166990280151,
|
| 359 |
+
"audiobox:PQ": 8.0977201461792,
|
| 360 |
+
"dnsmos:SIG_raw": 4.26984167098999,
|
| 361 |
+
"dnsmos:BAK_raw": 4.570577621459961,
|
| 362 |
+
"dnsmos:OVRL_raw": 4.081363677978516,
|
| 363 |
+
"dnsmos:SIG": 3.6966428756713867,
|
| 364 |
+
"dnsmos:BAK": 4.191372394561768,
|
| 365 |
+
"dnsmos:OVRL": 3.4678335189819336,
|
| 366 |
+
"dnsmos:P808_MOS": 4.209654808044434,
|
| 367 |
+
"burst_count_log1p": 0.09367421269416809,
|
| 368 |
+
"voiceclap_attribute:Affection": -0.006678104400634766,
|
| 369 |
+
"voiceclap_attribute:Age": 3.3191351890563965,
|
| 370 |
+
"voiceclap_attribute:Amusement": 0.18645429611206055,
|
| 371 |
+
"voiceclap_attribute:Anger": -0.05321788787841797,
|
| 372 |
+
"voiceclap_attribute:Arousal": 1.1774439811706543,
|
| 373 |
+
"voiceclap_attribute:Astonishment_Surprise": 0.05988532304763794,
|
| 374 |
+
"voiceclap_attribute:Authenticity": 2.904355525970459,
|
| 375 |
+
"voiceclap_attribute:Awe": 0.2330930233001709,
|
| 376 |
+
"voiceclap_attribute:Background_Noise": 0.10025382041931152,
|
| 377 |
+
"voiceclap_attribute:Bitterness": -0.005188405513763428,
|
| 378 |
+
"voiceclap_attribute:Concentration": 2.4700779914855957,
|
| 379 |
+
"voiceclap_attribute:Confident_vs._Hesitant": 0.7343697547912598,
|
| 380 |
+
"voiceclap_attribute:Confusion": -0.13817310333251953,
|
| 381 |
+
"voiceclap_attribute:Contemplation": 1.8421540260314941,
|
| 382 |
+
"voiceclap_attribute:Contempt": 0.06687861680984497,
|
| 383 |
+
"voiceclap_attribute:Contentment": 1.620650291442871,
|
| 384 |
+
"voiceclap_attribute:Disappointment": 0.025149106979370117,
|
| 385 |
+
"voiceclap_attribute:Disgust": -0.021725356578826904,
|
| 386 |
+
"voiceclap_attribute:Distress": -0.11263149976730347,
|
| 387 |
+
"voiceclap_attribute:Doubt": 0.0779981017112732,
|
| 388 |
+
"voiceclap_attribute:Elation": 0.0685073733329773,
|
| 389 |
+
"voiceclap_attribute:Embarrassment": -0.028491556644439697,
|
| 390 |
+
"voiceclap_attribute:Emotional_Numbness": 0.04195237159729004,
|
| 391 |
+
"voiceclap_attribute:Fatigue_Exhaustion": -0.08572903275489807,
|
| 392 |
+
"voiceclap_attribute:Fear": 0.006707549095153809,
|
| 393 |
+
"voiceclap_attribute:Gender": -1.1005455255508423,
|
| 394 |
+
"voiceclap_attribute:Helplessness": -0.034795284271240234,
|
| 395 |
+
"voiceclap_attribute:High-Pitched_vs._Low-Pitched": 1.8932565450668335,
|
| 396 |
+
"voiceclap_attribute:Hope_Enthusiasm_Optimism": 0.9213427901268005,
|
| 397 |
+
"voiceclap_attribute:Impatience_and_Irritability": -0.1671210527420044,
|
| 398 |
+
"voiceclap_attribute:Infatuation": -0.13648593425750732,
|
| 399 |
+
"voiceclap_attribute:Interest": 2.2541165351867676,
|
| 400 |
+
"voiceclap_attribute:Intoxication_Altered_States_of_Consciousness": -0.019401192665100098,
|
| 401 |
+
"voiceclap_attribute:Jealousy_&_Envy": -0.042890191078186035,
|
| 402 |
+
"voiceclap_attribute:Longing": -0.03346216678619385,
|
| 403 |
+
"voiceclap_attribute:Malevolence_Malice": -0.0024952292442321777,
|
| 404 |
+
"voiceclap_attribute:Monotone_vs._Expressive": 1.553143858909607,
|
| 405 |
+
"voiceclap_attribute:Pain": -0.09028694033622742,
|
| 406 |
+
"voiceclap_attribute:Pleasure_Ecstasy": 0.04086393117904663,
|
| 407 |
+
"voiceclap_attribute:Pride": 0.7654954195022583,
|
| 408 |
+
"voiceclap_attribute:Recording_Quality": 2.771263599395752,
|
| 409 |
+
"voiceclap_attribute:Relief": -0.08735132217407227,
|
| 410 |
+
"voiceclap_attribute:Sadness": 0.0046160221099853516,
|
| 411 |
+
"voiceclap_attribute:Serious_vs._Humorous": 0.6564277410507202,
|
| 412 |
+
"voiceclap_attribute:Sexual_Lust": -0.05524212121963501,
|
| 413 |
+
"voiceclap_attribute:Shame": -0.035001397132873535,
|
| 414 |
+
"voiceclap_attribute:Soft_vs._Harsh": 0.21556827425956726,
|
| 415 |
+
"voiceclap_attribute:Sourness": 0.06958633661270142,
|
| 416 |
+
"voiceclap_attribute:Submissive_vs._Dominant": 0.48485857248306274,
|
| 417 |
+
"voiceclap_attribute:Teasing": -0.04382467269897461,
|
| 418 |
+
"voiceclap_attribute:Thankfulness_Gratitude": -0.13853907585144043,
|
| 419 |
+
"voiceclap_attribute:Triumph": 0.06699061393737793,
|
| 420 |
+
"voiceclap_attribute:Valence": 0.13324740529060364,
|
| 421 |
+
"voiceclap_attribute:Vulnerable_vs._Emotionally_Detached": 2.2106969356536865,
|
| 422 |
+
"voiceclap_attribute:Warm_vs._Cold": 0.22859765589237213,
|
| 423 |
+
"voiceclap_attribute:duration": 8.196389198303223,
|
| 424 |
+
"voiceclap_attribute:score_background_quality": 3.795308828353882,
|
| 425 |
+
"voiceclap_attribute:score_content_enjoyment": 4.852869987487793,
|
| 426 |
+
"voiceclap_attribute:score_overall_quality": 3.0869405269622803,
|
| 427 |
+
"voiceclap_attribute:score_speech_quality": 1.9883841276168823,
|
| 428 |
+
"voiceclap_attribute:talking_speed": 15.080714225769043
|
| 429 |
+
},
|
| 430 |
+
"asr": "The pressure is immense down there, and that oil filled tube helps them manage buoyancy without using a lot of energy.",
|
| 431 |
+
"audio_sha256": "d97bf585de5e13c1fe7196bd172e31a5d50cc27356afadec04e09d783d9e6ad8",
|
| 432 |
+
"speaker": "S2",
|
| 433 |
+
"seconds": 7.52,
|
| 434 |
+
"media_member": "en-S2.mp3",
|
| 435 |
+
"wav_member": "en-S2.wav",
|
| 436 |
+
"source_split": "train",
|
| 437 |
+
"source_audio": "Original media crop, not a codec reconstruction"
|
| 438 |
+
}
|
| 439 |
+
},
|
| 440 |
+
"de": {
|
| 441 |
+
"S1": {
|
| 442 |
+
"episode": "506e1ff553b396e74b5e11ac851ebb2d8abbac980f1c9e9c1f5d2147ccdd361a",
|
| 443 |
+
"original_speaker": "S1",
|
| 444 |
+
"start_frame": 7511,
|
| 445 |
+
"end_frame": 7586,
|
| 446 |
+
"language": "de",
|
| 447 |
+
"window": {
|
| 448 |
+
"episode": "506e1ff553b396e74b5e11ac851ebb2d8abbac980f1c9e9c1f5d2147ccdd361a",
|
| 449 |
+
"lang": "de",
|
| 450 |
+
"window": "middle",
|
| 451 |
+
"start": 600.828027,
|
| 452 |
+
"duration": 30.0,
|
| 453 |
+
"ce": 6.332377780228853
|
| 454 |
+
},
|
| 455 |
+
"text": "ganz oben mit einer extrem hohen Gewichtung, wie du schon meintest, das Google Business Profil inklusive echter",
|
| 456 |
+
"scores": {
|
| 457 |
+
"emo_Affection": 0.003499329090118408,
|
| 458 |
+
"emo_Amusement": 0.15237268805503845,
|
| 459 |
+
"emo_Anger": 0.08867141604423523,
|
| 460 |
+
"emo_Astonishment_Surprise": 0.02754819393157959,
|
| 461 |
+
"emo_Awe": 0.05463704466819763,
|
| 462 |
+
"emo_Bitterness": 0.06925627589225769,
|
| 463 |
+
"emo_Concentration": 2.2230780124664307,
|
| 464 |
+
"emo_Confusion": 0.015630871057510376,
|
| 465 |
+
"emo_Contemplation": 1.1912533044815063,
|
| 466 |
+
"emo_Contempt": 0.05897912383079529,
|
| 467 |
+
"emo_Contentment": 1.519317388534546,
|
| 468 |
+
"emo_Disappointment": 0.09251806139945984,
|
| 469 |
+
"emo_Disgust": 0.046287357807159424,
|
| 470 |
+
"emo_Distress": 0.10292959213256836,
|
| 471 |
+
"emo_Doubt": 0.0494576096534729,
|
| 472 |
+
"emo_Elation": 0.07590454816818237,
|
| 473 |
+
"emo_Embarrassment": -0.004881232976913452,
|
| 474 |
+
"emo_Emotional_Numbness": 0.15009891986846924,
|
| 475 |
+
"emo_Fatigue_Exhaustion": 0.025012105703353882,
|
| 476 |
+
"emo_Fear": 0.02065873146057129,
|
| 477 |
+
"emo_Helplessness": 0.01056128740310669,
|
| 478 |
+
"emo_Hope_Enthusiasm_Optimism": 0.6577759981155396,
|
| 479 |
+
"emo_Impatience_and_Irritability": 0.11068978905677795,
|
| 480 |
+
"emo_Infatuation": -0.027781158685684204,
|
| 481 |
+
"emo_Interest": 2.1954352855682373,
|
| 482 |
+
"emo_Intoxication_Altered_States_of_Consciousness": -0.028512001037597656,
|
| 483 |
+
"emo_Jealousy_and_Envy": -0.0012696832418441772,
|
| 484 |
+
"emo_Longing": -0.021907448768615723,
|
| 485 |
+
"emo_Malevolence_Malice": 0.025343775749206543,
|
| 486 |
+
"emo_Pain": 0.021054372191429138,
|
| 487 |
+
"emo_Pleasure_Ecstasy": 0.00844430923461914,
|
| 488 |
+
"emo_Pride": 0.7768015265464783,
|
| 489 |
+
"emo_Relief": -0.01715967059135437,
|
| 490 |
+
"emo_Sadness": 0.04681721329689026,
|
| 491 |
+
"emo_Sexual_Lust": -0.0018015503883361816,
|
| 492 |
+
"emo_Shame": 0.016696348786354065,
|
| 493 |
+
"emo_Sourness": 0.06309981644153595,
|
| 494 |
+
"emo_Teasing": 0.06191974878311157,
|
| 495 |
+
"emo_Thankfulness_Gratitude": 0.021871864795684814,
|
| 496 |
+
"emo_Triumph": 0.07605919241905212,
|
| 497 |
+
"vn_AGEV_reg": 3.3902597427368164,
|
| 498 |
+
"vn_AROU_reg": 2.634697198867798,
|
| 499 |
+
"vn_ARSH_reg": 3.2585883140563965,
|
| 500 |
+
"vn_ATCK_reg": 3.3325839042663574,
|
| 501 |
+
"vn_BKGN_reg": 3.899172782897949,
|
| 502 |
+
"vn_BRGT_reg": 3.3822181224823,
|
| 503 |
+
"vn_CHNK_reg": 2.9287867546081543,
|
| 504 |
+
"vn_CLRT_reg": 4.611832141876221,
|
| 505 |
+
"vn_COGL_reg": 0.5637096166610718,
|
| 506 |
+
"vn_DARC_reg": 3.1023783683776855,
|
| 507 |
+
"vn_DFLU_reg": -0.12865090370178223,
|
| 508 |
+
"vn_EMPH_reg": 3.4788684844970703,
|
| 509 |
+
"vn_ESTH_reg": 4.33256721496582,
|
| 510 |
+
"vn_EXPL_reg": -0.02448570728302002,
|
| 511 |
+
"vn_FOCS_reg": 4.200840950012207,
|
| 512 |
+
"vn_FULL_reg": 4.125646591186523,
|
| 513 |
+
"vn_GEND_reg": 5.08811616897583,
|
| 514 |
+
"vn_HARM_reg": 3.96588134765625,
|
| 515 |
+
"vn_METL_reg": 1.7382471561431885,
|
| 516 |
+
"vn_RANG_reg": 2.7016913890838623,
|
| 517 |
+
"vn_RCQL_reg": 4.312852382659912,
|
| 518 |
+
"vn_REGS_reg": 0.8975258469581604,
|
| 519 |
+
"vn_RESP_reg": 1.0082920789718628,
|
| 520 |
+
"vn_ROUG_reg": 1.464820384979248,
|
| 521 |
+
"vn_R_CHST_reg": 3.7990071773529053,
|
| 522 |
+
"vn_R_HEAD_reg": 1.5772247314453125,
|
| 523 |
+
"vn_R_MASK_reg": 2.9542155265808105,
|
| 524 |
+
"vn_R_MIXD_reg": 4.08314323425293,
|
| 525 |
+
"vn_R_NASL_reg": 1.591546893119812,
|
| 526 |
+
"vn_R_ORAL_reg": 3.6143059730529785,
|
| 527 |
+
"vn_R_THRT_reg": 2.873262882232666,
|
| 528 |
+
"vn_SMTH_reg": 3.9902539253234863,
|
| 529 |
+
"vn_STNC_reg": 3.837189197540283,
|
| 530 |
+
"vn_STRU_reg": 4.632915496826172,
|
| 531 |
+
"vn_S_ASMR_reg": 0.2944391965866089,
|
| 532 |
+
"vn_S_AUTH_reg": 3.9060754776000977,
|
| 533 |
+
"vn_S_CART_reg": 0.09633278846740723,
|
| 534 |
+
"vn_S_CASU_reg": 1.5774586200714111,
|
| 535 |
+
"vn_S_CONV_reg": 2.479820728302002,
|
| 536 |
+
"vn_S_DRAM_reg": 2.218568801879883,
|
| 537 |
+
"vn_S_FORM_reg": 3.8530054092407227,
|
| 538 |
+
"vn_S_MONO_reg": 3.2624623775482178,
|
| 539 |
+
"vn_S_NARR_reg": 4.053851127624512,
|
| 540 |
+
"vn_S_NEWS_reg": 2.5881664752960205,
|
| 541 |
+
"vn_S_PLAY_reg": 0.623265266418457,
|
| 542 |
+
"vn_S_RANT_reg": 0.45731687545776367,
|
| 543 |
+
"vn_S_STRY_reg": 2.52691650390625,
|
| 544 |
+
"vn_S_TECH_reg": 2.9835829734802246,
|
| 545 |
+
"vn_S_WHIS_reg": -0.25637686252593994,
|
| 546 |
+
"vn_TEMP_reg": 3.109259605407715,
|
| 547 |
+
"vn_TENS_reg": 2.1080920696258545,
|
| 548 |
+
"vn_VALN_reg": 3.0070528984069824,
|
| 549 |
+
"vn_VALS_reg": 3.415966033935547,
|
| 550 |
+
"vn_VFLX_reg": 2.7750344276428223,
|
| 551 |
+
"vn_VOLT_reg": 1.0560503005981445,
|
| 552 |
+
"vn_VULN_reg": 1.068552017211914,
|
| 553 |
+
"vn_WARM_reg": 3.679795026779175,
|
| 554 |
+
"genuineness_0_6": 4.174716949462891,
|
| 555 |
+
"blend_0_10": 6.4024858474731445,
|
| 556 |
+
"R_quality": 0.2621626853942871,
|
| 557 |
+
"eiv_extra:Age": 3.2742700576782227,
|
| 558 |
+
"eiv_extra:Arousal": 1.241325855255127,
|
| 559 |
+
"eiv_extra:Authenticity": 2.724339008331299,
|
| 560 |
+
"eiv_extra:Background_Noise": 0.1460018754005432,
|
| 561 |
+
"eiv_extra:Confident_vs._Hesitant": 0.9474958181381226,
|
| 562 |
+
"eiv_extra:Gender": -1.082871437072754,
|
| 563 |
+
"eiv_extra:High-Pitched_vs._Low-Pitched": 1.923715353012085,
|
| 564 |
+
"eiv_extra:Monotone_vs._Expressive": 1.6315723657608032,
|
| 565 |
+
"eiv_extra:Recording_Quality": 2.429269313812256,
|
| 566 |
+
"eiv_extra:Serious_vs._Humorous": 0.9710330963134766,
|
| 567 |
+
"eiv_extra:Soft_vs._Harsh": 0.11378416419029236,
|
| 568 |
+
"eiv_extra:Submissive_vs._Dominant": 0.49103453755378723,
|
| 569 |
+
"eiv_extra:Valence": -0.04065120965242386,
|
| 570 |
+
"eiv_extra:Vulnerable_vs._Emotionally_Detached": 2.3718464374542236,
|
| 571 |
+
"eiv_extra:Warm_vs._Cold": -0.017269432544708252,
|
| 572 |
+
"eiv_extra:score_background_quality": 3.5045952796936035,
|
| 573 |
+
"eiv_extra:score_content_enjoyment": 4.849766731262207,
|
| 574 |
+
"eiv_extra:score_overall_quality": 2.8258748054504395,
|
| 575 |
+
"eiv_extra:score_speech_quality": 1.9371109008789062,
|
| 576 |
+
"audiobox:CE": 6.427689552307129,
|
| 577 |
+
"audiobox:CU": 7.173866271972656,
|
| 578 |
+
"audiobox:PC": 1.4857641458511353,
|
| 579 |
+
"audiobox:PQ": 8.152673721313477,
|
| 580 |
+
"dnsmos:SIG_raw": 4.089506149291992,
|
| 581 |
+
"dnsmos:BAK_raw": 4.421130657196045,
|
| 582 |
+
"dnsmos:OVRL_raw": 3.9098737239837646,
|
| 583 |
+
"dnsmos:SIG": 3.5850608348846436,
|
| 584 |
+
"dnsmos:BAK": 4.133337020874023,
|
| 585 |
+
"dnsmos:OVRL": 3.363564968109131,
|
| 586 |
+
"dnsmos:P808_MOS": 4.023495674133301,
|
| 587 |
+
"burst_count_log1p": 0.07847452163696289,
|
| 588 |
+
"voiceclap_attribute:Affection": 0.11895221471786499,
|
| 589 |
+
"voiceclap_attribute:Age": 3.3403754234313965,
|
| 590 |
+
"voiceclap_attribute:Amusement": 0.22232285141944885,
|
| 591 |
+
"voiceclap_attribute:Anger": 0.07362490892410278,
|
| 592 |
+
"voiceclap_attribute:Arousal": 1.3780860900878906,
|
| 593 |
+
"voiceclap_attribute:Astonishment_Surprise": 0.11974412202835083,
|
| 594 |
+
"voiceclap_attribute:Authenticity": 2.805722713470459,
|
| 595 |
+
"voiceclap_attribute:Awe": 0.12770754098892212,
|
| 596 |
+
"voiceclap_attribute:Background_Noise": 0.09406396746635437,
|
| 597 |
+
"voiceclap_attribute:Bitterness": 0.08856159448623657,
|
| 598 |
+
"voiceclap_attribute:Concentration": 2.2960050106048584,
|
| 599 |
+
"voiceclap_attribute:Confident_vs._Hesitant": 0.8680471181869507,
|
| 600 |
+
"voiceclap_attribute:Confusion": -0.09627151489257812,
|
| 601 |
+
"voiceclap_attribute:Contemplation": 1.5919814109802246,
|
| 602 |
+
"voiceclap_attribute:Contempt": 0.15180200338363647,
|
| 603 |
+
"voiceclap_attribute:Contentment": 1.4623768329620361,
|
| 604 |
+
"voiceclap_attribute:Disappointment": 0.03422820568084717,
|
| 605 |
+
"voiceclap_attribute:Disgust": 0.0759308934211731,
|
| 606 |
+
"voiceclap_attribute:Distress": -0.13450461626052856,
|
| 607 |
+
"voiceclap_attribute:Doubt": 0.1658887267112732,
|
| 608 |
+
"voiceclap_attribute:Elation": 0.0498165488243103,
|
| 609 |
+
"voiceclap_attribute:Embarrassment": -0.04324379563331604,
|
| 610 |
+
"voiceclap_attribute:Emotional_Numbness": 0.058588504791259766,
|
| 611 |
+
"voiceclap_attribute:Fatigue_Exhaustion": -0.2077515423297882,
|
| 612 |
+
"voiceclap_attribute:Fear": -0.005011200904846191,
|
| 613 |
+
"voiceclap_attribute:Gender": -0.7826812863349915,
|
| 614 |
+
"voiceclap_attribute:Helplessness": -0.11862963438034058,
|
| 615 |
+
"voiceclap_attribute:High-Pitched_vs._Low-Pitched": 1.7247297763824463,
|
| 616 |
+
"voiceclap_attribute:Hope_Enthusiasm_Optimism": 0.8216304779052734,
|
| 617 |
+
"voiceclap_attribute:Impatience_and_Irritability": 0.10812842845916748,
|
| 618 |
+
"voiceclap_attribute:Infatuation": -0.08451634645462036,
|
| 619 |
+
"voiceclap_attribute:Interest": 2.20949649810791,
|
| 620 |
+
"voiceclap_attribute:Intoxication_Altered_States_of_Consciousness": 0.002347409725189209,
|
| 621 |
+
"voiceclap_attribute:Jealousy_&_Envy": -0.046796441078186035,
|
| 622 |
+
"voiceclap_attribute:Longing": -0.04908716678619385,
|
| 623 |
+
"voiceclap_attribute:Malevolence_Malice": 0.035348474979400635,
|
| 624 |
+
"voiceclap_attribute:Monotone_vs._Expressive": 1.4692661762237549,
|
| 625 |
+
"voiceclap_attribute:Pain": -0.09419319033622742,
|
| 626 |
+
"voiceclap_attribute:Pleasure_Ecstasy": 0.04321706295013428,
|
| 627 |
+
"voiceclap_attribute:Pride": 0.6700686812400818,
|
| 628 |
+
"voiceclap_attribute:Recording_Quality": 2.5123560428619385,
|
| 629 |
+
"voiceclap_attribute:Relief": -0.16534173488616943,
|
| 630 |
+
"voiceclap_attribute:Sadness": -0.12739717960357666,
|
| 631 |
+
"voiceclap_attribute:Serious_vs._Humorous": 0.845283567905426,
|
| 632 |
+
"voiceclap_attribute:Sexual_Lust": -0.029126286506652832,
|
| 633 |
+
"voiceclap_attribute:Shame": -0.10104489326477051,
|
| 634 |
+
"voiceclap_attribute:Soft_vs._Harsh": 0.036191388964653015,
|
| 635 |
+
"voiceclap_attribute:Sourness": 0.14901649951934814,
|
| 636 |
+
"voiceclap_attribute:Submissive_vs._Dominant": 0.5605859756469727,
|
| 637 |
+
"voiceclap_attribute:Teasing": 0.053975820541381836,
|
| 638 |
+
"voiceclap_attribute:Thankfulness_Gratitude": -0.12199687957763672,
|
| 639 |
+
"voiceclap_attribute:Triumph": 0.050173163414001465,
|
| 640 |
+
"voiceclap_attribute:Valence": -0.05870813876390457,
|
| 641 |
+
"voiceclap_attribute:Vulnerable_vs._Emotionally_Detached": 2.0304691791534424,
|
| 642 |
+
"voiceclap_attribute:Warm_vs._Cold": 0.054657384753227234,
|
| 643 |
+
"voiceclap_attribute:duration": 6.588235378265381,
|
| 644 |
+
"voiceclap_attribute:score_background_quality": 3.623931407928467,
|
| 645 |
+
"voiceclap_attribute:score_content_enjoyment": 4.760096549987793,
|
| 646 |
+
"voiceclap_attribute:score_overall_quality": 2.8598520755767822,
|
| 647 |
+
"voiceclap_attribute:score_speech_quality": 2.005962371826172,
|
| 648 |
+
"voiceclap_attribute:talking_speed": 17.220680236816406
|
| 649 |
+
},
|
| 650 |
+
"asr": "Ganz oben mit einer extrem hohen Gewichtung, wie du schon meintest, das Google Business Profil inklusive Echtspiel.",
|
| 651 |
+
"audio_sha256": "8e532d43e660a9f87fb0727755ddafae0af691f86f1582cf3f37e052a528c641",
|
| 652 |
+
"speaker": "S1",
|
| 653 |
+
"seconds": 6.0,
|
| 654 |
+
"media_member": "de-S1.mp3",
|
| 655 |
+
"wav_member": "de-S1.wav",
|
| 656 |
+
"source_split": "train",
|
| 657 |
+
"source_audio": "Original media crop, not a codec reconstruction"
|
| 658 |
+
},
|
| 659 |
+
"S2": {
|
| 660 |
+
"episode": "506e1ff553b396e74b5e11ac851ebb2d8abbac980f1c9e9c1f5d2147ccdd361a",
|
| 661 |
+
"original_speaker": "S2",
|
| 662 |
+
"start_frame": 7603,
|
| 663 |
+
"end_frame": 7673,
|
| 664 |
+
"language": "de",
|
| 665 |
+
"window": {
|
| 666 |
+
"episode": "506e1ff553b396e74b5e11ac851ebb2d8abbac980f1c9e9c1f5d2147ccdd361a",
|
| 667 |
+
"lang": "de",
|
| 668 |
+
"window": "middle",
|
| 669 |
+
"start": 600.828027,
|
| 670 |
+
"duration": 30.0,
|
| 671 |
+
"ce": 6.332377780228853
|
| 672 |
+
},
|
| 673 |
+
"text": "es eben der stärkste Indikator für lokale Relevanz und echte physische Existenz",
|
| 674 |
+
"scores": {
|
| 675 |
+
"emo_Affection": 0.08421026170253754,
|
| 676 |
+
"emo_Amusement": 0.488334983587265,
|
| 677 |
+
"emo_Anger": 0.1056675910949707,
|
| 678 |
+
"emo_Astonishment_Surprise": 0.07823824882507324,
|
| 679 |
+
"emo_Awe": 0.13047467172145844,
|
| 680 |
+
"emo_Bitterness": 0.035080790519714355,
|
| 681 |
+
"emo_Concentration": 2.2230780124664307,
|
| 682 |
+
"emo_Confusion": 0.017714470624923706,
|
| 683 |
+
"emo_Contemplation": 1.4581191539764404,
|
| 684 |
+
"emo_Contempt": 0.05193011462688446,
|
| 685 |
+
"emo_Contentment": 1.7397338151931763,
|
| 686 |
+
"emo_Disappointment": 0.059642672538757324,
|
| 687 |
+
"emo_Disgust": 0.03096643090248108,
|
| 688 |
+
"emo_Distress": 0.07259681820869446,
|
| 689 |
+
"emo_Doubt": 0.1759568750858307,
|
| 690 |
+
"emo_Elation": 0.17693793773651123,
|
| 691 |
+
"emo_Embarrassment": 0.005362153053283691,
|
| 692 |
+
"emo_Emotional_Numbness": 0.09188514947891235,
|
| 693 |
+
"emo_Fatigue_Exhaustion": -0.015124976634979248,
|
| 694 |
+
"emo_Fear": 0.050528913736343384,
|
| 695 |
+
"emo_Helplessness": 0.005029559135437012,
|
| 696 |
+
"emo_Hope_Enthusiasm_Optimism": 1.0370121002197266,
|
| 697 |
+
"emo_Impatience_and_Irritability": 0.08129343390464783,
|
| 698 |
+
"emo_Infatuation": -0.03306666016578674,
|
| 699 |
+
"emo_Interest": 2.484661817550659,
|
| 700 |
+
"emo_Intoxication_Altered_States_of_Consciousness": -0.010043919086456299,
|
| 701 |
+
"emo_Jealousy_and_Envy": 0.008307188749313354,
|
| 702 |
+
"emo_Longing": -0.007005155086517334,
|
| 703 |
+
"emo_Malevolence_Malice": 0.039663299918174744,
|
| 704 |
+
"emo_Pain": -0.0025366544723510742,
|
| 705 |
+
"emo_Pleasure_Ecstasy": -0.001095205545425415,
|
| 706 |
+
"emo_Pride": 0.8417905569076538,
|
| 707 |
+
"emo_Relief": 0.03600078821182251,
|
| 708 |
+
"emo_Sadness": 0.013976067304611206,
|
| 709 |
+
"emo_Sexual_Lust": -0.011522918939590454,
|
| 710 |
+
"emo_Shame": 0.00032067298889160156,
|
| 711 |
+
"emo_Sourness": 0.028476819396018982,
|
| 712 |
+
"emo_Teasing": 0.10710452497005463,
|
| 713 |
+
"emo_Thankfulness_Gratitude": 0.012420654296875,
|
| 714 |
+
"emo_Triumph": 0.16010864078998566,
|
| 715 |
+
"vn_AGEV_reg": 3.7052559852600098,
|
| 716 |
+
"vn_AROU_reg": 2.6930038928985596,
|
| 717 |
+
"vn_ARSH_reg": 3.1661670207977295,
|
| 718 |
+
"vn_ATCK_reg": 3.2297139167785645,
|
| 719 |
+
"vn_BKGN_reg": 4.041053295135498,
|
| 720 |
+
"vn_BRGT_reg": 3.9268441200256348,
|
| 721 |
+
"vn_CHNK_reg": 2.5246458053588867,
|
| 722 |
+
"vn_CLRT_reg": 4.521746635437012,
|
| 723 |
+
"vn_COGL_reg": 0.6378332376480103,
|
| 724 |
+
"vn_DARC_reg": 2.9746766090393066,
|
| 725 |
+
"vn_DFLU_reg": -0.16556215286254883,
|
| 726 |
+
"vn_EMPH_reg": 3.2701969146728516,
|
| 727 |
+
"vn_ESTH_reg": 4.490742206573486,
|
| 728 |
+
"vn_EXPL_reg": -0.02832302451133728,
|
| 729 |
+
"vn_FOCS_reg": 3.854011058807373,
|
| 730 |
+
"vn_FULL_reg": 3.352433681488037,
|
| 731 |
+
"vn_GEND_reg": 0.9078109264373779,
|
| 732 |
+
"vn_HARM_reg": 4.289289951324463,
|
| 733 |
+
"vn_METL_reg": 1.6952276229858398,
|
| 734 |
+
"vn_RANG_reg": 3.210130453109741,
|
| 735 |
+
"vn_RCQL_reg": 4.678562164306641,
|
| 736 |
+
"vn_REGS_reg": 4.072345733642578,
|
| 737 |
+
"vn_RESP_reg": 1.459503412246704,
|
| 738 |
+
"vn_ROUG_reg": 0.844868540763855,
|
| 739 |
+
"vn_R_CHST_reg": 2.1125450134277344,
|
| 740 |
+
"vn_R_HEAD_reg": 3.25652813911438,
|
| 741 |
+
"vn_R_MASK_reg": 3.929640293121338,
|
| 742 |
+
"vn_R_MIXD_reg": 4.004687309265137,
|
| 743 |
+
"vn_R_NASL_reg": 1.9958350658416748,
|
| 744 |
+
"vn_R_ORAL_reg": 4.160750389099121,
|
| 745 |
+
"vn_R_THRT_reg": 1.8289213180541992,
|
| 746 |
+
"vn_SMTH_reg": 3.972888469696045,
|
| 747 |
+
"vn_STNC_reg": 3.71264910697937,
|
| 748 |
+
"vn_STRU_reg": 4.540471076965332,
|
| 749 |
+
"vn_S_ASMR_reg": 0.3644522428512573,
|
| 750 |
+
"vn_S_AUTH_reg": 3.532729148864746,
|
| 751 |
+
"vn_S_CART_reg": 0.5135087966918945,
|
| 752 |
+
"vn_S_CASU_reg": 1.9263372421264648,
|
| 753 |
+
"vn_S_CONV_reg": 2.7615418434143066,
|
| 754 |
+
"vn_S_DRAM_reg": 2.0850555896759033,
|
| 755 |
+
"vn_S_FORM_reg": 3.474879741668701,
|
| 756 |
+
"vn_S_MONO_reg": 2.640594482421875,
|
| 757 |
+
"vn_S_NARR_reg": 4.031425952911377,
|
| 758 |
+
"vn_S_NEWS_reg": 2.1663033962249756,
|
| 759 |
+
"vn_S_PLAY_reg": 1.517014503479004,
|
| 760 |
+
"vn_S_RANT_reg": 0.2778879404067993,
|
| 761 |
+
"vn_S_STRY_reg": 2.4507009983062744,
|
| 762 |
+
"vn_S_TECH_reg": 3.002613067626953,
|
| 763 |
+
"vn_S_WHIS_reg": -0.10650229454040527,
|
| 764 |
+
"vn_TEMP_reg": 2.8982059955596924,
|
| 765 |
+
"vn_TENS_reg": 1.997554898262024,
|
| 766 |
+
"vn_VALN_reg": 3.333658218383789,
|
| 767 |
+
"vn_VALS_reg": 3.16713285446167,
|
| 768 |
+
"vn_VFLX_reg": 2.767963409423828,
|
| 769 |
+
"vn_VOLT_reg": 1.32744300365448,
|
| 770 |
+
"vn_VULN_reg": 1.4090443849563599,
|
| 771 |
+
"vn_WARM_reg": 3.227367639541626,
|
| 772 |
+
"genuineness_0_6": 3.9801597595214844,
|
| 773 |
+
"blend_0_10": 6.28304386138916,
|
| 774 |
+
"R_quality": 0.29320424795150757,
|
| 775 |
+
"eiv_extra:Age": 3.321516990661621,
|
| 776 |
+
"eiv_extra:Arousal": 1.381827712059021,
|
| 777 |
+
"eiv_extra:Authenticity": 2.858616352081299,
|
| 778 |
+
"eiv_extra:Background_Noise": 0.0016562938690185547,
|
| 779 |
+
"eiv_extra:Confident_vs._Hesitant": 0.7503005266189575,
|
| 780 |
+
"eiv_extra:Gender": 1.2936965227127075,
|
| 781 |
+
"eiv_extra:High-Pitched_vs._Low-Pitched": 1.409066915512085,
|
| 782 |
+
"eiv_extra:Monotone_vs._Expressive": 1.4460489749908447,
|
| 783 |
+
"eiv_extra:Recording_Quality": 2.7514548301696777,
|
| 784 |
+
"eiv_extra:Serious_vs._Humorous": 0.8154757022857666,
|
| 785 |
+
"eiv_extra:Soft_vs._Harsh": 0.2709927558898926,
|
| 786 |
+
"eiv_extra:Submissive_vs._Dominant": 0.28906723856925964,
|
| 787 |
+
"eiv_extra:Valence": 0.11885757744312286,
|
| 788 |
+
"eiv_extra:Vulnerable_vs._Emotionally_Detached": 1.9334872961044312,
|
| 789 |
+
"eiv_extra:Warm_vs._Cold": 0.09527456760406494,
|
| 790 |
+
"eiv_extra:score_background_quality": 3.64819073677063,
|
| 791 |
+
"eiv_extra:score_content_enjoyment": 4.763145923614502,
|
| 792 |
+
"eiv_extra:score_overall_quality": 2.9170734882354736,
|
| 793 |
+
"eiv_extra:score_speech_quality": 1.9751968383789062,
|
| 794 |
+
"audiobox:CE": 6.205295085906982,
|
| 795 |
+
"audiobox:CU": 7.017790794372559,
|
| 796 |
+
"audiobox:PC": 1.479453682899475,
|
| 797 |
+
"audiobox:PQ": 7.946595668792725,
|
| 798 |
+
"dnsmos:SIG_raw": 4.113028049468994,
|
| 799 |
+
"dnsmos:BAK_raw": 4.324429988861084,
|
| 800 |
+
"dnsmos:OVRL_raw": 3.8781161308288574,
|
| 801 |
+
"dnsmos:SIG": 3.6007213592529297,
|
| 802 |
+
"dnsmos:BAK": 4.071674346923828,
|
| 803 |
+
"dnsmos:OVRL": 3.349346399307251,
|
| 804 |
+
"dnsmos:P808_MOS": 3.9653210639953613,
|
| 805 |
+
"burst_count_log1p": 0.06580808758735657,
|
| 806 |
+
"voiceclap_attribute:Affection": 0.14494472742080688,
|
| 807 |
+
"voiceclap_attribute:Age": 3.4465768337249756,
|
| 808 |
+
"voiceclap_attribute:Amusement": 0.4173581600189209,
|
| 809 |
+
"voiceclap_attribute:Anger": -0.00565183162689209,
|
| 810 |
+
"voiceclap_attribute:Arousal": 1.3270134925842285,
|
| 811 |
+
"voiceclap_attribute:Astonishment_Surprise": 0.39284974336624146,
|
| 812 |
+
"voiceclap_attribute:Authenticity": 3.018613338470459,
|
| 813 |
+
"voiceclap_attribute:Awe": 0.19864007830619812,
|
| 814 |
+
"voiceclap_attribute:Background_Noise": 0.03835529088973999,
|
| 815 |
+
"voiceclap_attribute:Bitterness": 0.03387409448623657,
|
| 816 |
+
"voiceclap_attribute:Concentration": 2.1219322681427,
|
| 817 |
+
"voiceclap_attribute:Confident_vs._Hesitant": 0.9605225324630737,
|
| 818 |
+
"voiceclap_attribute:Confusion": -0.007230699062347412,
|
| 819 |
+
"voiceclap_attribute:Contemplation": 1.357642412185669,
|
| 820 |
+
"voiceclap_attribute:Contempt": 0.10403263568878174,
|
| 821 |
+
"voiceclap_attribute:Contentment": 1.5391154289245605,
|
| 822 |
+
"voiceclap_attribute:Disappointment": -0.08833938837051392,
|
| 823 |
+
"voiceclap_attribute:Disgust": 0.048587143421173096,
|
| 824 |
+
"voiceclap_attribute:Distress": -0.16731411218643188,
|
| 825 |
+
"voiceclap_attribute:Doubt": 0.1619824767112732,
|
| 826 |
+
"voiceclap_attribute:Elation": 0.24295487999916077,
|
| 827 |
+
"voiceclap_attribute:Embarrassment": -0.013739347457885742,
|
| 828 |
+
"voiceclap_attribute:Emotional_Numbness": -0.06618279218673706,
|
| 829 |
+
"voiceclap_attribute:Fatigue_Exhaustion": -0.2524931728839874,
|
| 830 |
+
"voiceclap_attribute:Fear": -0.05969870090484619,
|
| 831 |
+
"voiceclap_attribute:Gender": 1.356034517288208,
|
| 832 |
+
"voiceclap_attribute:Helplessness": -0.10605448484420776,
|
| 833 |
+
"voiceclap_attribute:High-Pitched_vs._Low-Pitched": 1.262193202972412,
|
| 834 |
+
"voiceclap_attribute:Hope_Enthusiasm_Optimism": 1.1029201745986938,
|
| 835 |
+
"voiceclap_attribute:Impatience_and_Irritability": 0.09542453289031982,
|
| 836 |
+
"voiceclap_attribute:Infatuation": -0.10530418157577515,
|
| 837 |
+
"voiceclap_attribute:Interest": 2.3811116218566895,
|
| 838 |
+
"voiceclap_attribute:Intoxication_Altered_States_of_Consciousness": 0.07484263181686401,
|
| 839 |
+
"voiceclap_attribute:Jealousy_&_Envy": -0.06632769107818604,
|
| 840 |
+
"voiceclap_attribute:Longing": -0.08033716678619385,
|
| 841 |
+
"voiceclap_attribute:Malevolence_Malice": 0.013723492622375488,
|
| 842 |
+
"voiceclap_attribute:Monotone_vs._Expressive": 1.473926067352295,
|
| 843 |
+
"voiceclap_attribute:Pain": -0.11372444033622742,
|
| 844 |
+
"voiceclap_attribute:Pleasure_Ecstasy": 0.09263297915458679,
|
| 845 |
+
"voiceclap_attribute:Pride": 0.6468936204910278,
|
| 846 |
+
"voiceclap_attribute:Recording_Quality": 2.771263599395752,
|
| 847 |
+
"voiceclap_attribute:Relief": 0.09462636709213257,
|
| 848 |
+
"voiceclap_attribute:Sadness": -0.09317153692245483,
|
| 849 |
+
"voiceclap_attribute:Serious_vs._Humorous": 0.819100022315979,
|
| 850 |
+
"voiceclap_attribute:Sexual_Lust": 0.055750131607055664,
|
| 851 |
+
"voiceclap_attribute:Shame": -0.11425364017486572,
|
| 852 |
+
"voiceclap_attribute:Soft_vs._Harsh": 0.3696213662624359,
|
| 853 |
+
"voiceclap_attribute:Sourness": 0.046891987323760986,
|
| 854 |
+
"voiceclap_attribute:Submissive_vs._Dominant": 0.3453238904476166,
|
| 855 |
+
"voiceclap_attribute:Teasing": 0.2718041241168976,
|
| 856 |
+
"voiceclap_attribute:Thankfulness_Gratitude": -0.0889122486114502,
|
| 857 |
+
"voiceclap_attribute:Triumph": 0.11463993787765503,
|
| 858 |
+
"voiceclap_attribute:Valence": 0.12953214347362518,
|
| 859 |
+
"voiceclap_attribute:Vulnerable_vs._Emotionally_Detached": 1.7557846307754517,
|
| 860 |
+
"voiceclap_attribute:Warm_vs._Cold": 0.19583760201931,
|
| 861 |
+
"voiceclap_attribute:duration": 6.340827465057373,
|
| 862 |
+
"voiceclap_attribute:score_background_quality": 3.647301197052002,
|
| 863 |
+
"voiceclap_attribute:score_content_enjoyment": 4.833338737487793,
|
| 864 |
+
"voiceclap_attribute:score_overall_quality": 2.9065582752227783,
|
| 865 |
+
"voiceclap_attribute:score_speech_quality": 2.027935028076172,
|
| 866 |
+
"voiceclap_attribute:talking_speed": 15.66700553894043
|
| 867 |
+
},
|
| 868 |
+
"asr": "Der stärkste Indikator für lokale Relevanz und echte physische Existenz ist?",
|
| 869 |
+
"audio_sha256": "ba164cef51bc66522c22d03244943bc3e7c6cdebb3f88b753f0cba9d9963ea3d",
|
| 870 |
+
"speaker": "S2",
|
| 871 |
+
"seconds": 5.6,
|
| 872 |
+
"media_member": "de-S2.mp3",
|
| 873 |
+
"wav_member": "de-S2.wav",
|
| 874 |
+
"source_split": "train",
|
| 875 |
+
"source_audio": "Original media crop, not a codec reconstruction"
|
| 876 |
+
}
|
| 877 |
+
},
|
| 878 |
+
"fr": {
|
| 879 |
+
"S1": {
|
| 880 |
+
"episode": "5712265f42d9ba1a2627b39ffd2285358f5c693838a4c77eea13a50032832edf",
|
| 881 |
+
"original_speaker": "S2",
|
| 882 |
+
"start_frame": 7842,
|
| 883 |
+
"end_frame": 7907,
|
| 884 |
+
"language": "fr",
|
| 885 |
+
"window": {
|
| 886 |
+
"episode": "5712265f42d9ba1a2627b39ffd2285358f5c693838a4c77eea13a50032832edf",
|
| 887 |
+
"lang": "fr",
|
| 888 |
+
"window": "middle",
|
| 889 |
+
"start": 619.7232655,
|
| 890 |
+
"duration": 30.0,
|
| 891 |
+
"ce": 6.062326967716217
|
| 892 |
+
},
|
| 893 |
+
"text": "le phénomène hashtag Booktock, des jeunes qui partagent leur amour des livres et font décoller les",
|
| 894 |
+
"scores": {
|
| 895 |
+
"emo_Affection": 0.10120202600955963,
|
| 896 |
+
"emo_Amusement": 0.36081334948539734,
|
| 897 |
+
"emo_Anger": 0.07734063267707825,
|
| 898 |
+
"emo_Astonishment_Surprise": 0.07715973258018494,
|
| 899 |
+
"emo_Awe": 0.014053672552108765,
|
| 900 |
+
"emo_Bitterness": 0.0517711341381073,
|
| 901 |
+
"emo_Concentration": 2.2230780124664307,
|
| 902 |
+
"emo_Confusion": 0.03855052590370178,
|
| 903 |
+
"emo_Contemplation": 1.3430907726287842,
|
| 904 |
+
"emo_Contempt": 0.050167858600616455,
|
| 905 |
+
"emo_Contentment": 1.5586774349212646,
|
| 906 |
+
"emo_Disappointment": 0.15278956294059753,
|
| 907 |
+
"emo_Disgust": 0.04532980918884277,
|
| 908 |
+
"emo_Distress": 0.13006946444511414,
|
| 909 |
+
"emo_Doubt": 0.0796663910150528,
|
| 910 |
+
"emo_Elation": 0.13343745470046997,
|
| 911 |
+
"emo_Embarrassment": 0.020727217197418213,
|
| 912 |
+
"emo_Emotional_Numbness": 0.10127449035644531,
|
| 913 |
+
"emo_Fatigue_Exhaustion": 0.04402439296245575,
|
| 914 |
+
"emo_Fear": 0.0338016152381897,
|
| 915 |
+
"emo_Helplessness": 0.0631125271320343,
|
| 916 |
+
"emo_Hope_Enthusiasm_Optimism": 0.9481286406517029,
|
| 917 |
+
"emo_Impatience_and_Irritability": 0.09465542435646057,
|
| 918 |
+
"emo_Infatuation": 0.010274410247802734,
|
| 919 |
+
"emo_Interest": 2.6132068634033203,
|
| 920 |
+
"emo_Intoxication_Altered_States_of_Consciousness": -0.013302981853485107,
|
| 921 |
+
"emo_Jealousy_and_Envy": 0.017013445496559143,
|
| 922 |
+
"emo_Longing": 0.03770172595977783,
|
| 923 |
+
"emo_Malevolence_Malice": 0.029435068368911743,
|
| 924 |
+
"emo_Pain": 0.04239863157272339,
|
| 925 |
+
"emo_Pleasure_Ecstasy": -0.001095205545425415,
|
| 926 |
+
"emo_Pride": 0.4234238266944885,
|
| 927 |
+
"emo_Relief": 0.007375925779342651,
|
| 928 |
+
"emo_Sadness": 0.04383164644241333,
|
| 929 |
+
"emo_Sexual_Lust": 0.022501900792121887,
|
| 930 |
+
"emo_Shame": -0.009914115071296692,
|
| 931 |
+
"emo_Sourness": 0.05887749791145325,
|
| 932 |
+
"emo_Teasing": 0.11866341531276703,
|
| 933 |
+
"emo_Thankfulness_Gratitude": 0.05292579531669617,
|
| 934 |
+
"emo_Triumph": 0.032229721546173096,
|
| 935 |
+
"vn_AGEV_reg": 3.033428192138672,
|
| 936 |
+
"vn_AROU_reg": 2.7447097301483154,
|
| 937 |
+
"vn_ARSH_reg": 3.0292468070983887,
|
| 938 |
+
"vn_ATCK_reg": 3.0239737033843994,
|
| 939 |
+
"vn_BKGN_reg": 3.769115924835205,
|
| 940 |
+
"vn_BRGT_reg": 3.5595383644104004,
|
| 941 |
+
"vn_CHNK_reg": 2.6999359130859375,
|
| 942 |
+
"vn_CLRT_reg": 3.831089496612549,
|
| 943 |
+
"vn_COGL_reg": 2.0595650672912598,
|
| 944 |
+
"vn_DARC_reg": 2.8789005279541016,
|
| 945 |
+
"vn_DFLU_reg": 1.495448350906372,
|
| 946 |
+
"vn_EMPH_reg": 3.190410852432251,
|
| 947 |
+
"vn_ESTH_reg": 3.7850375175476074,
|
| 948 |
+
"vn_EXPL_reg": -0.04559090733528137,
|
| 949 |
+
"vn_FOCS_reg": 3.836669445037842,
|
| 950 |
+
"vn_FULL_reg": 3.062478542327881,
|
| 951 |
+
"vn_GEND_reg": 2.2514805793762207,
|
| 952 |
+
"vn_HARM_reg": 3.487236499786377,
|
| 953 |
+
"vn_METL_reg": 1.7569512128829956,
|
| 954 |
+
"vn_RANG_reg": 2.8653669357299805,
|
| 955 |
+
"vn_RCQL_reg": 3.8838460445404053,
|
| 956 |
+
"vn_REGS_reg": 3.0713205337524414,
|
| 957 |
+
"vn_RESP_reg": 1.8271570205688477,
|
| 958 |
+
"vn_ROUG_reg": 1.444155216217041,
|
| 959 |
+
"vn_R_CHST_reg": 2.3961093425750732,
|
| 960 |
+
"vn_R_HEAD_reg": 2.7257137298583984,
|
| 961 |
+
"vn_R_MASK_reg": 3.2660317420959473,
|
| 962 |
+
"vn_R_MIXD_reg": 3.442420482635498,
|
| 963 |
+
"vn_R_NASL_reg": 2.103095293045044,
|
| 964 |
+
"vn_R_ORAL_reg": 3.9165945053100586,
|
| 965 |
+
"vn_R_THRT_reg": 2.2284133434295654,
|
| 966 |
+
"vn_SMTH_reg": 3.3303771018981934,
|
| 967 |
+
"vn_STNC_reg": 3.3390283584594727,
|
| 968 |
+
"vn_STRU_reg": 3.616027355194092,
|
| 969 |
+
"vn_S_ASMR_reg": 0.27289676666259766,
|
| 970 |
+
"vn_S_AUTH_reg": 3.2161965370178223,
|
| 971 |
+
"vn_S_CART_reg": 0.22469472885131836,
|
| 972 |
+
"vn_S_CASU_reg": 2.863325357437134,
|
| 973 |
+
"vn_S_CONV_reg": 3.5582644939422607,
|
| 974 |
+
"vn_S_DRAM_reg": 1.7913264036178589,
|
| 975 |
+
"vn_S_FORM_reg": 2.5138094425201416,
|
| 976 |
+
"vn_S_MONO_reg": 2.1864633560180664,
|
| 977 |
+
"vn_S_NARR_reg": 3.2689566612243652,
|
| 978 |
+
"vn_S_NEWS_reg": 1.266615867614746,
|
| 979 |
+
"vn_S_PLAY_reg": 1.4408427476882935,
|
| 980 |
+
"vn_S_RANT_reg": 0.3327134847640991,
|
| 981 |
+
"vn_S_STRY_reg": 2.2792160511016846,
|
| 982 |
+
"vn_S_TECH_reg": 2.7742505073547363,
|
| 983 |
+
"vn_S_WHIS_reg": 0.16826772689819336,
|
| 984 |
+
"vn_TEMP_reg": 3.109259605407715,
|
| 985 |
+
"vn_TENS_reg": 2.1861181259155273,
|
| 986 |
+
"vn_VALN_reg": 3.0070528984069824,
|
| 987 |
+
"vn_VALS_reg": 3.0813283920288086,
|
| 988 |
+
"vn_VFLX_reg": 2.9235239028930664,
|
| 989 |
+
"vn_VOLT_reg": 1.4224305152893066,
|
| 990 |
+
"vn_VULN_reg": 1.48642897605896,
|
| 991 |
+
"vn_WARM_reg": 3.2874555587768555,
|
| 992 |
+
"genuineness_0_6": 4.419482707977295,
|
| 993 |
+
"blend_0_10": 7.849062919616699,
|
| 994 |
+
"R_quality": 0.7743484377861023,
|
| 995 |
+
"eiv_extra:Age": 3.285217523574829,
|
| 996 |
+
"eiv_extra:Arousal": 1.4048188924789429,
|
| 997 |
+
"eiv_extra:Authenticity": 2.803928852081299,
|
| 998 |
+
"eiv_extra:Background_Noise": 0.4016996920108795,
|
| 999 |
+
"eiv_extra:Confident_vs._Hesitant": 0.9445260167121887,
|
| 1000 |
+
"eiv_extra:Gender": 0.9742235541343689,
|
| 1001 |
+
"eiv_extra:High-Pitched_vs._Low-Pitched": 1.577035665512085,
|
| 1002 |
+
"eiv_extra:Monotone_vs._Expressive": 1.8363828659057617,
|
| 1003 |
+
"eiv_extra:Recording_Quality": 2.4942259788513184,
|
| 1004 |
+
"eiv_extra:Serious_vs._Humorous": 1.032540202140808,
|
| 1005 |
+
"eiv_extra:Soft_vs._Harsh": 0.32526713609695435,
|
| 1006 |
+
"eiv_extra:Submissive_vs._Dominant": 0.1489524394273758,
|
| 1007 |
+
"eiv_extra:Valence": 0.07376280426979065,
|
| 1008 |
+
"eiv_extra:Vulnerable_vs._Emotionally_Detached": 1.954766869544983,
|
| 1009 |
+
"eiv_extra:Warm_vs._Cold": 0.1129213497042656,
|
| 1010 |
+
"eiv_extra:score_background_quality": 3.6752843856811523,
|
| 1011 |
+
"eiv_extra:score_content_enjoyment": 4.70025634765625,
|
| 1012 |
+
"eiv_extra:score_overall_quality": 2.9131083488464355,
|
| 1013 |
+
"eiv_extra:score_speech_quality": 1.9312515258789062,
|
| 1014 |
+
"audiobox:CE": 5.919358730316162,
|
| 1015 |
+
"audiobox:CU": 6.506642818450928,
|
| 1016 |
+
"audiobox:PC": 1.6182845830917358,
|
| 1017 |
+
"audiobox:PQ": 7.788601875305176,
|
| 1018 |
+
"dnsmos:SIG_raw": 3.8372974395751953,
|
| 1019 |
+
"dnsmos:BAK_raw": 4.210146903991699,
|
| 1020 |
+
"dnsmos:OVRL_raw": 3.595475196838379,
|
| 1021 |
+
"dnsmos:SIG": 3.440199851989746,
|
| 1022 |
+
"dnsmos:BAK": 4.031774997711182,
|
| 1023 |
+
"dnsmos:OVRL": 3.1716156005859375,
|
| 1024 |
+
"dnsmos:P808_MOS": 3.792736291885376,
|
| 1025 |
+
"burst_count_log1p": 0.13674002885818481,
|
| 1026 |
+
"voiceclap_attribute:Affection": 0.0886276364326477,
|
| 1027 |
+
"voiceclap_attribute:Age": 3.245856285095215,
|
| 1028 |
+
"voiceclap_attribute:Amusement": 0.3837313652038574,
|
| 1029 |
+
"voiceclap_attribute:Anger": -0.05321788787841797,
|
| 1030 |
+
"voiceclap_attribute:Arousal": 1.4887431859970093,
|
| 1031 |
+
"voiceclap_attribute:Astonishment_Surprise": 0.23759105801582336,
|
| 1032 |
+
"voiceclap_attribute:Authenticity": 2.817929744720459,
|
| 1033 |
+
"voiceclap_attribute:Awe": 0.07096153497695923,
|
| 1034 |
+
"voiceclap_attribute:Background_Noise": 0.3189619481563568,
|
| 1035 |
+
"voiceclap_attribute:Bitterness": -0.03643840551376343,
|
| 1036 |
+
"voiceclap_attribute:Concentration": 2.159233570098877,
|
| 1037 |
+
"voiceclap_attribute:Confident_vs._Hesitant": 1.426561951637268,
|
| 1038 |
+
"voiceclap_attribute:Confusion": 0.17346984148025513,
|
| 1039 |
+
"voiceclap_attribute:Contemplation": 1.5476469993591309,
|
| 1040 |
+
"voiceclap_attribute:Contempt": 0.04034006595611572,
|
| 1041 |
+
"voiceclap_attribute:Contentment": 1.4288036823272705,
|
| 1042 |
+
"voiceclap_attribute:Disappointment": -0.006627678871154785,
|
| 1043 |
+
"voiceclap_attribute:Disgust": 0.032962143421173096,
|
| 1044 |
+
"voiceclap_attribute:Distress": 0.002201974391937256,
|
| 1045 |
+
"voiceclap_attribute:Doubt": 0.4246777892112732,
|
| 1046 |
+
"voiceclap_attribute:Elation": 0.1432705819606781,
|
| 1047 |
+
"voiceclap_attribute:Embarrassment": -0.023574143648147583,
|
| 1048 |
+
"voiceclap_attribute:Emotional_Numbness": 0.025316178798675537,
|
| 1049 |
+
"voiceclap_attribute:Fatigue_Exhaustion": -0.11420097947120667,
|
| 1050 |
+
"voiceclap_attribute:Fear": 0.006707549095153809,
|
| 1051 |
+
"voiceclap_attribute:Gender": 0.8380336165428162,
|
| 1052 |
+
"voiceclap_attribute:Helplessness": -0.001261591911315918,
|
| 1053 |
+
"voiceclap_attribute:High-Pitched_vs._Low-Pitched": 1.3789217472076416,
|
| 1054 |
+
"voiceclap_attribute:Hope_Enthusiasm_Optimism": 0.9834205508232117,
|
| 1055 |
+
"voiceclap_attribute:Impatience_and_Irritability": 0.027670860290527344,
|
| 1056 |
+
"voiceclap_attribute:Infatuation": -0.06892544031143188,
|
| 1057 |
+
"voiceclap_attribute:Interest": 2.401705265045166,
|
| 1058 |
+
"voiceclap_attribute:Intoxication_Altered_States_of_Consciousness": -0.08102214336395264,
|
| 1059 |
+
"voiceclap_attribute:Jealousy_&_Envy": -0.015546441078186035,
|
| 1060 |
+
"voiceclap_attribute:Longing": -0.08033716678619385,
|
| 1061 |
+
"voiceclap_attribute:Malevolence_Malice": 0.06237971782684326,
|
| 1062 |
+
"voiceclap_attribute:Monotone_vs._Expressive": 1.6579909324645996,
|
| 1063 |
+
"voiceclap_attribute:Pain": -0.05513069033622742,
|
| 1064 |
+
"voiceclap_attribute:Pleasure_Ecstasy": 0.0032137036323547363,
|
| 1065 |
+
"voiceclap_attribute:Pride": 0.35379719734191895,
|
| 1066 |
+
"voiceclap_attribute:Recording_Quality": 2.3655989170074463,
|
| 1067 |
+
"voiceclap_attribute:Relief": -0.0548553466796875,
|
| 1068 |
+
"voiceclap_attribute:Sadness": -0.005162715911865234,
|
| 1069 |
+
"voiceclap_attribute:Serious_vs._Humorous": 0.7778748869895935,
|
| 1070 |
+
"voiceclap_attribute:Sexual_Lust": -0.022597312927246094,
|
| 1071 |
+
"voiceclap_attribute:Shame": -0.061418771743774414,
|
| 1072 |
+
"voiceclap_attribute:Soft_vs._Harsh": 0.31193938851356506,
|
| 1073 |
+
"voiceclap_attribute:Sourness": -0.03480762243270874,
|
| 1074 |
+
"voiceclap_attribute:Submissive_vs._Dominant": 0.37056636810302734,
|
| 1075 |
+
"voiceclap_attribute:Teasing": 0.1517762839794159,
|
| 1076 |
+
"voiceclap_attribute:Thankfulness_Gratitude": -0.05582773685455322,
|
| 1077 |
+
"voiceclap_attribute:Triumph": 0.050173163414001465,
|
| 1078 |
+
"voiceclap_attribute:Valence": -0.12186771631240845,
|
| 1079 |
+
"voiceclap_attribute:Vulnerable_vs._Emotionally_Detached": 1.7291847467422485,
|
| 1080 |
+
"voiceclap_attribute:Warm_vs._Cold": 0.01624232903122902,
|
| 1081 |
+
"voiceclap_attribute:duration": 6.835643768310547,
|
| 1082 |
+
"voiceclap_attribute:score_background_quality": 3.5401902198791504,
|
| 1083 |
+
"voiceclap_attribute:score_content_enjoyment": 4.682459831237793,
|
| 1084 |
+
"voiceclap_attribute:score_overall_quality": 2.8195881843566895,
|
| 1085 |
+
"voiceclap_attribute:score_speech_quality": 1.9922903776168823,
|
| 1086 |
+
"voiceclap_attribute:talking_speed": 15.168658256530762
|
| 1087 |
+
},
|
| 1088 |
+
"asr": "phénomène hashtag book talk des jeunes qui partagent leur amour des livres et font décoller les ventes",
|
| 1089 |
+
"audio_sha256": "f20e89d2454ceec9389056dfdfa255fa66c449d4817aec5d5ee287eb4bddd52e",
|
| 1090 |
+
"speaker": "S1",
|
| 1091 |
+
"seconds": 5.2,
|
| 1092 |
+
"media_member": "fr-S1.mp3",
|
| 1093 |
+
"wav_member": "fr-S1.wav",
|
| 1094 |
+
"source_split": "train",
|
| 1095 |
+
"source_audio": "Original media crop, not a codec reconstruction"
|
| 1096 |
+
},
|
| 1097 |
+
"S2": {
|
| 1098 |
+
"episode": "2d26cd6d5595ee967e580f0838c8e6407f10dde0be2a589db4b0c8c65f6e27fb",
|
| 1099 |
+
"original_speaker": "S2",
|
| 1100 |
+
"start_frame": 6544,
|
| 1101 |
+
"end_frame": 6615,
|
| 1102 |
+
"language": "fr",
|
| 1103 |
+
"window": {
|
| 1104 |
+
"episode": "2d26cd6d5595ee967e580f0838c8e6407f10dde0be2a589db4b0c8c65f6e27fb",
|
| 1105 |
+
"lang": "fr",
|
| 1106 |
+
"window": "middle",
|
| 1107 |
+
"start": 522.939592,
|
| 1108 |
+
"duration": 30.0,
|
| 1109 |
+
"ce": 5.824046839028597
|
| 1110 |
+
},
|
| 1111 |
+
"text": "analysant le contenu exact de ces charterabs sur l'IA, on découvre une cartographie fascinante de ce qui est",
|
| 1112 |
+
"scores": {
|
| 1113 |
+
"emo_Affection": 0.08421026170253754,
|
| 1114 |
+
"emo_Amusement": 0.3438669443130493,
|
| 1115 |
+
"emo_Anger": 0.0002913177013397217,
|
| 1116 |
+
"emo_Astonishment_Surprise": 0.15427334606647491,
|
| 1117 |
+
"emo_Awe": 0.4297258257865906,
|
| 1118 |
+
"emo_Bitterness": -0.030091077089309692,
|
| 1119 |
+
"emo_Concentration": 2.348647117614746,
|
| 1120 |
+
"emo_Confusion": 0.003129243850708008,
|
| 1121 |
+
"emo_Contemplation": 1.241865873336792,
|
| 1122 |
+
"emo_Contempt": 0.0008248090744018555,
|
| 1123 |
+
"emo_Contentment": 2.0231266021728516,
|
| 1124 |
+
"emo_Disappointment": -0.04446268081665039,
|
| 1125 |
+
"emo_Disgust": -0.02457195520401001,
|
| 1126 |
+
"emo_Distress": -0.026383817195892334,
|
| 1127 |
+
"emo_Doubt": 0.023024946451187134,
|
| 1128 |
+
"emo_Elation": 0.24710001051425934,
|
| 1129 |
+
"emo_Embarrassment": -0.04414752125740051,
|
| 1130 |
+
"emo_Emotional_Numbness": 0.10503020882606506,
|
| 1131 |
+
"emo_Fatigue_Exhaustion": -0.04047468304634094,
|
| 1132 |
+
"emo_Fear": -0.010406255722045898,
|
| 1133 |
+
"emo_Helplessness": -0.10283881425857544,
|
| 1134 |
+
"emo_Hope_Enthusiasm_Optimism": 1.2207045555114746,
|
| 1135 |
+
"emo_Impatience_and_Irritability": 0.011811137199401855,
|
| 1136 |
+
"emo_Infatuation": -0.05737994611263275,
|
| 1137 |
+
"emo_Interest": 2.963135242462158,
|
| 1138 |
+
"emo_Intoxication_Altered_States_of_Consciousness": -0.045893728733062744,
|
| 1139 |
+
"emo_Jealousy_and_Envy": 0.00308343768119812,
|
| 1140 |
+
"emo_Longing": 0.03273427486419678,
|
| 1141 |
+
"emo_Malevolence_Malice": -0.01454627513885498,
|
| 1142 |
+
"emo_Pain": -0.06207588315010071,
|
| 1143 |
+
"emo_Pleasure_Ecstasy": 0.06568154692649841,
|
| 1144 |
+
"emo_Pride": 0.8052342534065247,
|
| 1145 |
+
"emo_Relief": 0.06462568044662476,
|
| 1146 |
+
"emo_Sadness": -0.09350407123565674,
|
| 1147 |
+
"emo_Sexual_Lust": -0.030965656042099,
|
| 1148 |
+
"emo_Shame": -0.044712409377098083,
|
| 1149 |
+
"emo_Sourness": -0.014590814709663391,
|
| 1150 |
+
"emo_Teasing": 0.030395478010177612,
|
| 1151 |
+
"emo_Thankfulness_Gratitude": 0.04347461462020874,
|
| 1152 |
+
"emo_Triumph": 0.0997786670923233,
|
| 1153 |
+
"vn_AGEV_reg": 3.0162017345428467,
|
| 1154 |
+
"vn_AROU_reg": 2.6875033378601074,
|
| 1155 |
+
"vn_ARSH_reg": 3.323625326156616,
|
| 1156 |
+
"vn_ATCK_reg": 3.0136866569519043,
|
| 1157 |
+
"vn_BKGN_reg": 3.875526189804077,
|
| 1158 |
+
"vn_BRGT_reg": 3.2365622520446777,
|
| 1159 |
+
"vn_CHNK_reg": 2.899571657180786,
|
| 1160 |
+
"vn_CLRT_reg": 4.4466753005981445,
|
| 1161 |
+
"vn_COGL_reg": 0.7201927900314331,
|
| 1162 |
+
"vn_DARC_reg": 3.1555871963500977,
|
| 1163 |
+
"vn_DFLU_reg": 0.2681460380554199,
|
| 1164 |
+
"vn_EMPH_reg": 3.2701969146728516,
|
| 1165 |
+
"vn_ESTH_reg": 4.235228538513184,
|
| 1166 |
+
"vn_EXPL_reg": 0.02923659235239029,
|
| 1167 |
+
"vn_FOCS_reg": 4.1488165855407715,
|
| 1168 |
+
"vn_FULL_reg": 4.111839294433594,
|
| 1169 |
+
"vn_GEND_reg": 5.573329925537109,
|
| 1170 |
+
"vn_HARM_reg": 3.771836280822754,
|
| 1171 |
+
"vn_METL_reg": 1.526890754699707,
|
| 1172 |
+
"vn_RANG_reg": 2.776564359664917,
|
| 1173 |
+
"vn_RCQL_reg": 4.284720420837402,
|
| 1174 |
+
"vn_REGS_reg": 0.804293155670166,
|
| 1175 |
+
"vn_RESP_reg": 1.5179938077926636,
|
| 1176 |
+
"vn_ROUG_reg": 1.347718358039856,
|
| 1177 |
+
"vn_R_CHST_reg": 3.9051365852355957,
|
| 1178 |
+
"vn_R_HEAD_reg": 1.783116340637207,
|
| 1179 |
+
"vn_R_MASK_reg": 3.0101826190948486,
|
| 1180 |
+
"vn_R_MIXD_reg": 4.226978778839111,
|
| 1181 |
+
"vn_R_NASL_reg": 1.6658039093017578,
|
| 1182 |
+
"vn_R_ORAL_reg": 3.6143059730529785,
|
| 1183 |
+
"vn_R_THRT_reg": 2.6813807487487793,
|
| 1184 |
+
"vn_SMTH_reg": 4.094444751739502,
|
| 1185 |
+
"vn_STNC_reg": 3.5792131423950195,
|
| 1186 |
+
"vn_STRU_reg": 4.478841304779053,
|
| 1187 |
+
"vn_S_ASMR_reg": 0.48832130432128906,
|
| 1188 |
+
"vn_S_AUTH_reg": 3.5164966583251953,
|
| 1189 |
+
"vn_S_CART_reg": -0.11760354042053223,
|
| 1190 |
+
"vn_S_CASU_reg": 2.035984754562378,
|
| 1191 |
+
"vn_S_CONV_reg": 3.2013328075408936,
|
| 1192 |
+
"vn_S_DRAM_reg": 1.631110429763794,
|
| 1193 |
+
"vn_S_FORM_reg": 3.411858558654785,
|
| 1194 |
+
"vn_S_MONO_reg": 2.9655065536499023,
|
| 1195 |
+
"vn_S_NARR_reg": 4.132340908050537,
|
| 1196 |
+
"vn_S_NEWS_reg": 2.4504151344299316,
|
| 1197 |
+
"vn_S_PLAY_reg": 1.3900614976882935,
|
| 1198 |
+
"vn_S_RANT_reg": 0.0585860013961792,
|
| 1199 |
+
"vn_S_STRY_reg": 2.4500203132629395,
|
| 1200 |
+
"vn_S_TECH_reg": 2.7171597480773926,
|
| 1201 |
+
"vn_S_WHIS_reg": 0.11830949783325195,
|
| 1202 |
+
"vn_TEMP_reg": 3.006077766418457,
|
| 1203 |
+
"vn_TENS_reg": 1.7976127862930298,
|
| 1204 |
+
"vn_VALN_reg": 3.96921443939209,
|
| 1205 |
+
"vn_VALS_reg": 3.613316535949707,
|
| 1206 |
+
"vn_VFLX_reg": 2.82924485206604,
|
| 1207 |
+
"vn_VOLT_reg": 1.1646074056625366,
|
| 1208 |
+
"vn_VULN_reg": 1.269752025604248,
|
| 1209 |
+
"vn_WARM_reg": 3.799971103668213,
|
| 1210 |
+
"genuineness_0_6": 4.111956596374512,
|
| 1211 |
+
"blend_0_10": 6.766120910644531,
|
| 1212 |
+
"R_quality": 0.38632893562316895,
|
| 1213 |
+
"eiv_extra:Age": 3.274846315383911,
|
| 1214 |
+
"eiv_extra:Arousal": 1.180016040802002,
|
| 1215 |
+
"eiv_extra:Authenticity": 2.870335102081299,
|
| 1216 |
+
"eiv_extra:Background_Noise": 0.1460018754005432,
|
| 1217 |
+
"eiv_extra:Confident_vs._Hesitant": 0.7645555734634399,
|
| 1218 |
+
"eiv_extra:Gender": -1.0517033338546753,
|
| 1219 |
+
"eiv_extra:High-Pitched_vs._Low-Pitched": 1.845224142074585,
|
| 1220 |
+
"eiv_extra:Monotone_vs._Expressive": 1.3946168422698975,
|
| 1221 |
+
"eiv_extra:Recording_Quality": 2.868377208709717,
|
| 1222 |
+
"eiv_extra:Serious_vs._Humorous": 1.0205551385879517,
|
| 1223 |
+
"eiv_extra:Soft_vs._Harsh": 0.2398005723953247,
|
| 1224 |
+
"eiv_extra:Submissive_vs._Dominant": 0.1262311339378357,
|
| 1225 |
+
"eiv_extra:Valence": 0.33501434326171875,
|
| 1226 |
+
"eiv_extra:Vulnerable_vs._Emotionally_Detached": 2.589749336242676,
|
| 1227 |
+
"eiv_extra:Warm_vs._Cold": 0.21645890176296234,
|
| 1228 |
+
"eiv_extra:score_background_quality": 3.531688928604126,
|
| 1229 |
+
"eiv_extra:score_content_enjoyment": 4.7951836585998535,
|
| 1230 |
+
"eiv_extra:score_overall_quality": 2.7941536903381348,
|
| 1231 |
+
"eiv_extra:score_speech_quality": 1.9283218383789062,
|
| 1232 |
+
"audiobox:CE": 6.149696350097656,
|
| 1233 |
+
"audiobox:CU": 6.619797706604004,
|
| 1234 |
+
"audiobox:PC": 1.6245951652526855,
|
| 1235 |
+
"audiobox:PQ": 7.822948455810547,
|
| 1236 |
+
"dnsmos:SIG_raw": 4.052916049957275,
|
| 1237 |
+
"dnsmos:BAK_raw": 4.315639019012451,
|
| 1238 |
+
"dnsmos:OVRL_raw": 3.814601421356201,
|
| 1239 |
+
"dnsmos:SIG": 3.5654850006103516,
|
| 1240 |
+
"dnsmos:BAK": 4.097064971923828,
|
| 1241 |
+
"dnsmos:OVRL": 3.3114304542541504,
|
| 1242 |
+
"dnsmos:P808_MOS": 3.9187815189361572,
|
| 1243 |
+
"burst_count_log1p": 0.05060839653015137,
|
| 1244 |
+
"voiceclap_attribute:Affection": 0.17960137128829956,
|
| 1245 |
+
"voiceclap_attribute:Age": 3.3828558921813965,
|
| 1246 |
+
"voiceclap_attribute:Amusement": 0.37364333868026733,
|
| 1247 |
+
"voiceclap_attribute:Anger": -0.16420531272888184,
|
| 1248 |
+
"voiceclap_attribute:Arousal": 1.3707900047302246,
|
| 1249 |
+
"voiceclap_attribute:Astonishment_Surprise": 0.2581675052642822,
|
| 1250 |
+
"voiceclap_attribute:Authenticity": 2.777158260345459,
|
| 1251 |
+
"voiceclap_attribute:Awe": 0.31922537088394165,
|
| 1252 |
+
"voiceclap_attribute:Background_Noise": 0.25293686985969543,
|
| 1253 |
+
"voiceclap_attribute:Bitterness": -0.18878215551376343,
|
| 1254 |
+
"voiceclap_attribute:Concentration": 2.1219322681427,
|
| 1255 |
+
"voiceclap_attribute:Confident_vs._Hesitant": 0.9028398394584656,
|
| 1256 |
+
"voiceclap_attribute:Confusion": -0.017706096172332764,
|
| 1257 |
+
"voiceclap_attribute:Contemplation": 1.3703093528747559,
|
| 1258 |
+
"voiceclap_attribute:Contempt": -0.03927558660507202,
|
| 1259 |
+
"voiceclap_attribute:Contentment": 1.778923749923706,
|
| 1260 |
+
"voiceclap_attribute:Disappointment": -0.13827431201934814,
|
| 1261 |
+
"voiceclap_attribute:Disgust": -0.037350356578826904,
|
| 1262 |
+
"voiceclap_attribute:Distress": -0.161845862865448,
|
| 1263 |
+
"voiceclap_attribute:Doubt": 0.1053418517112732,
|
| 1264 |
+
"voiceclap_attribute:Elation": 0.2927970588207245,
|
| 1265 |
+
"voiceclap_attribute:Embarrassment": -0.07274824380874634,
|
| 1266 |
+
"voiceclap_attribute:Emotional_Numbness": 0.03779333829879761,
|
| 1267 |
+
"voiceclap_attribute:Fatigue_Exhaustion": -0.28909990191459656,
|
| 1268 |
+
"voiceclap_attribute:Fear": 0.0028012990951538086,
|
| 1269 |
+
"voiceclap_attribute:Gender": -0.7434388399124146,
|
| 1270 |
+
"voiceclap_attribute:Helplessness": -0.1312047839164734,
|
| 1271 |
+
"voiceclap_attribute:High-Pitched_vs._Low-Pitched": 1.7819997072219849,
|
| 1272 |
+
"voiceclap_attribute:Hope_Enthusiasm_Optimism": 1.1261993646621704,
|
| 1273 |
+
"voiceclap_attribute:Impatience_and_Irritability": -0.0824289321899414,
|
| 1274 |
+
"voiceclap_attribute:Infatuation": -0.04294067621231079,
|
| 1275 |
+
"voiceclap_attribute:Interest": 2.3879761695861816,
|
| 1276 |
+
"voiceclap_attribute:Intoxication_Altered_States_of_Consciousness": -0.12814408540725708,
|
| 1277 |
+
"voiceclap_attribute:Jealousy_&_Envy": -0.015546441078186035,
|
| 1278 |
+
"voiceclap_attribute:Longing": -0.05689966678619385,
|
| 1279 |
+
"voiceclap_attribute:Malevolence_Malice": -0.13224518299102783,
|
| 1280 |
+
"voiceclap_attribute:Monotone_vs._Expressive": 1.4436368942260742,
|
| 1281 |
+
"voiceclap_attribute:Pain": -0.018021315336227417,
|
| 1282 |
+
"voiceclap_attribute:Pleasure_Ecstasy": 0.17499282956123352,
|
| 1283 |
+
"voiceclap_attribute:Pride": 0.779127836227417,
|
| 1284 |
+
"voiceclap_attribute:Recording_Quality": 2.443143129348755,
|
| 1285 |
+
"voiceclap_attribute:Relief": 0.11412400007247925,
|
| 1286 |
+
"voiceclap_attribute:Sadness": -0.1958484649658203,
|
| 1287 |
+
"voiceclap_attribute:Serious_vs._Humorous": 0.9115780591964722,
|
| 1288 |
+
"voiceclap_attribute:Sexual_Lust": -0.035655200481414795,
|
| 1289 |
+
"voiceclap_attribute:Shame": -0.07903039455413818,
|
| 1290 |
+
"voiceclap_attribute:Soft_vs._Harsh": 0.129045307636261,
|
| 1291 |
+
"voiceclap_attribute:Sourness": -0.09835177659988403,
|
| 1292 |
+
"voiceclap_attribute:Submissive_vs._Dominant": 0.559884786605835,
|
| 1293 |
+
"voiceclap_attribute:Teasing": 0.11028516292572021,
|
| 1294 |
+
"voiceclap_attribute:Thankfulness_Gratitude": 0.010341405868530273,
|
| 1295 |
+
"voiceclap_attribute:Triumph": 0.19312119483947754,
|
| 1296 |
+
"voiceclap_attribute:Valence": -0.05127760022878647,
|
| 1297 |
+
"voiceclap_attribute:Vulnerable_vs._Emotionally_Detached": 2.1629257202148438,
|
| 1298 |
+
"voiceclap_attribute:Warm_vs._Cold": 0.06791740655899048,
|
| 1299 |
+
"voiceclap_attribute:duration": 7.726313591003418,
|
| 1300 |
+
"voiceclap_attribute:score_background_quality": 3.5207157135009766,
|
| 1301 |
+
"voiceclap_attribute:score_content_enjoyment": 4.806971549987793,
|
| 1302 |
+
"voiceclap_attribute:score_overall_quality": 2.8228092193603516,
|
| 1303 |
+
"voiceclap_attribute:score_speech_quality": 2.007915496826172,
|
| 1304 |
+
"voiceclap_attribute:talking_speed": 16.986162185668945
|
| 1305 |
+
},
|
| 1306 |
+
"asr": "En analysant le contenu exact de ces chartes arabes sur l'IA, on découvre une cartographie fascinante de ce qui est dit.",
|
| 1307 |
+
"audio_sha256": "95179851c938d48465784c2ae6f38fee680d53399256345ead837fa0f2378ff8",
|
| 1308 |
+
"speaker": "S2",
|
| 1309 |
+
"seconds": 5.68,
|
| 1310 |
+
"media_member": "fr-S2.mp3",
|
| 1311 |
+
"wav_member": "fr-S2.wav",
|
| 1312 |
+
"source_split": "train",
|
| 1313 |
+
"source_audio": "Original media crop, not a codec reconstruction"
|
| 1314 |
+
}
|
| 1315 |
+
},
|
| 1316 |
+
"es": {
|
| 1317 |
+
"S1": {
|
| 1318 |
+
"episode": "cfe4a35611ec05423d3beeea57019184380e593676edee760567e1ce49c6e8f4",
|
| 1319 |
+
"original_speaker": "S2",
|
| 1320 |
+
"start_frame": 8604,
|
| 1321 |
+
"end_frame": 8678,
|
| 1322 |
+
"language": "es",
|
| 1323 |
+
"window": {
|
| 1324 |
+
"episode": "cfe4a35611ec05423d3beeea57019184380e593676edee760567e1ce49c6e8f4",
|
| 1325 |
+
"lang": "es",
|
| 1326 |
+
"window": "middle",
|
| 1327 |
+
"start": 686.76,
|
| 1328 |
+
"duration": 30.0,
|
| 1329 |
+
"ce": 6.316492438316345
|
| 1330 |
+
},
|
| 1331 |
+
"text": "be absolutely certain, maybe it needs to convert the solar system into computronium perfect computing matter",
|
| 1332 |
+
"scores": {
|
| 1333 |
+
"emo_Affection": 0.09695407748222351,
|
| 1334 |
+
"emo_Amusement": 0.22863148152828217,
|
| 1335 |
+
"emo_Anger": 0.02521902322769165,
|
| 1336 |
+
"emo_Astonishment_Surprise": 0.04588288068771362,
|
| 1337 |
+
"emo_Awe": 0.009954340755939484,
|
| 1338 |
+
"emo_Bitterness": 0.003289639949798584,
|
| 1339 |
+
"emo_Concentration": 2.6226155757904053,
|
| 1340 |
+
"emo_Confusion": 0.032299697399139404,
|
| 1341 |
+
"emo_Contemplation": 1.4167089462280273,
|
| 1342 |
+
"emo_Contempt": -0.023846730589866638,
|
| 1343 |
+
"emo_Contentment": 1.991638422012329,
|
| 1344 |
+
"emo_Disappointment": 0.056903064250946045,
|
| 1345 |
+
"emo_Disgust": 0.005112349987030029,
|
| 1346 |
+
"emo_Distress": 0.04386052489280701,
|
| 1347 |
+
"emo_Doubt": 0.04379346966743469,
|
| 1348 |
+
"emo_Elation": 0.07871103286743164,
|
| 1349 |
+
"emo_Embarrassment": -0.0014667809009552002,
|
| 1350 |
+
"emo_Emotional_Numbness": 0.09751874208450317,
|
| 1351 |
+
"emo_Fatigue_Exhaustion": -0.059486985206604004,
|
| 1352 |
+
"emo_Fear": 0.025437980890274048,
|
| 1353 |
+
"emo_Helplessness": -0.022628992795944214,
|
| 1354 |
+
"emo_Hope_Enthusiasm_Optimism": 1.5999407768249512,
|
| 1355 |
+
"emo_Impatience_and_Irritability": 0.027845531702041626,
|
| 1356 |
+
"emo_Infatuation": -0.04152345657348633,
|
| 1357 |
+
"emo_Interest": 2.713186502456665,
|
| 1358 |
+
"emo_Intoxication_Altered_States_of_Consciousness": -0.020907491445541382,
|
| 1359 |
+
"emo_Jealousy_and_Envy": 0.007436573505401611,
|
| 1360 |
+
"emo_Longing": 0.022799432277679443,
|
| 1361 |
+
"emo_Malevolence_Malice": -0.035002708435058594,
|
| 1362 |
+
"emo_Pain": -0.017140626907348633,
|
| 1363 |
+
"emo_Pleasure_Ecstasy": -0.03209871053695679,
|
| 1364 |
+
"emo_Pride": 0.4985673427581787,
|
| 1365 |
+
"emo_Relief": 0.004649758338928223,
|
| 1366 |
+
"emo_Sadness": -0.00990837812423706,
|
| 1367 |
+
"emo_Sexual_Lust": -0.021244287490844727,
|
| 1368 |
+
"emo_Shame": -0.003773242235183716,
|
| 1369 |
+
"emo_Sourness": -0.014590814709663391,
|
| 1370 |
+
"emo_Teasing": 0.03670033812522888,
|
| 1371 |
+
"emo_Thankfulness_Gratitude": 0.05562615394592285,
|
| 1372 |
+
"emo_Triumph": 0.02604202926158905,
|
| 1373 |
+
"vn_AGEV_reg": 3.217996120452881,
|
| 1374 |
+
"vn_AROU_reg": 2.6115944385528564,
|
| 1375 |
+
"vn_ARSH_reg": 3.2106661796569824,
|
| 1376 |
+
"vn_ATCK_reg": 2.972538709640503,
|
| 1377 |
+
"vn_BKGN_reg": 4.182933807373047,
|
| 1378 |
+
"vn_BRGT_reg": 3.863515615463257,
|
| 1379 |
+
"vn_CHNK_reg": 3.2160675525665283,
|
| 1380 |
+
"vn_CLRT_reg": 4.116360664367676,
|
| 1381 |
+
"vn_COGL_reg": 0.6460691690444946,
|
| 1382 |
+
"vn_DARC_reg": 3.027885675430298,
|
| 1383 |
+
"vn_DFLU_reg": 0.25891828536987305,
|
| 1384 |
+
"vn_EMPH_reg": 3.245647430419922,
|
| 1385 |
+
"vn_ESTH_reg": 4.308232307434082,
|
| 1386 |
+
"vn_EXPL_reg": -0.016171544790267944,
|
| 1387 |
+
"vn_FOCS_reg": 3.680595874786377,
|
| 1388 |
+
"vn_FULL_reg": 3.3248186111450195,
|
| 1389 |
+
"vn_GEND_reg": 1.529880166053772,
|
| 1390 |
+
"vn_HARM_reg": 4.27635383605957,
|
| 1391 |
+
"vn_METL_reg": 1.7242189645767212,
|
| 1392 |
+
"vn_RANG_reg": 2.764375686645508,
|
| 1393 |
+
"vn_RCQL_reg": 4.48164176940918,
|
| 1394 |
+
"vn_REGS_reg": 3.562018871307373,
|
| 1395 |
+
"vn_RESP_reg": 1.3174554109573364,
|
| 1396 |
+
"vn_ROUG_reg": 1.085960865020752,
|
| 1397 |
+
"vn_R_CHST_reg": 2.4889726638793945,
|
| 1398 |
+
"vn_R_HEAD_reg": 2.9283883571624756,
|
| 1399 |
+
"vn_R_MASK_reg": 3.3219985961914062,
|
| 1400 |
+
"vn_R_MIXD_reg": 4.070067405700684,
|
| 1401 |
+
"vn_R_NASL_reg": 1.78544020652771,
|
| 1402 |
+
"vn_R_ORAL_reg": 4.00960636138916,
|
| 1403 |
+
"vn_R_THRT_reg": 2.159209966659546,
|
| 1404 |
+
"vn_SMTH_reg": 4.146540641784668,
|
| 1405 |
+
"vn_STNC_reg": 3.8994593620300293,
|
| 1406 |
+
"vn_STRU_reg": 4.602100849151611,
|
| 1407 |
+
"vn_S_ASMR_reg": 0.4183082580566406,
|
| 1408 |
+
"vn_S_AUTH_reg": 3.2405447959899902,
|
| 1409 |
+
"vn_S_CART_reg": 0.053545594215393066,
|
| 1410 |
+
"vn_S_CASU_reg": 2.035984754562378,
|
| 1411 |
+
"vn_S_CONV_reg": 2.775564193725586,
|
| 1412 |
+
"vn_S_DRAM_reg": 1.3017776012420654,
|
| 1413 |
+
"vn_S_FORM_reg": 3.0337324142456055,
|
| 1414 |
+
"vn_S_MONO_reg": 3.033843517303467,
|
| 1415 |
+
"vn_S_NARR_reg": 3.8295958042144775,
|
| 1416 |
+
"vn_S_NEWS_reg": 2.5881664752960205,
|
| 1417 |
+
"vn_S_PLAY_reg": 1.059983730316162,
|
| 1418 |
+
"vn_S_RANT_reg": -0.18065261840820312,
|
| 1419 |
+
"vn_S_STRY_reg": 1.832810640335083,
|
| 1420 |
+
"vn_S_TECH_reg": 3.1167943477630615,
|
| 1421 |
+
"vn_S_WHIS_reg": -0.13148140907287598,
|
| 1422 |
+
"vn_TEMP_reg": 2.968557119369507,
|
| 1423 |
+
"vn_TENS_reg": 1.9650440216064453,
|
| 1424 |
+
"vn_VALN_reg": 3.3160037994384766,
|
| 1425 |
+
"vn_VALS_reg": 3.2529375553131104,
|
| 1426 |
+
"vn_VFLX_reg": 2.8481006622314453,
|
| 1427 |
+
"vn_VOLT_reg": 0.9882020950317383,
|
| 1428 |
+
"vn_VULN_reg": 1.385828971862793,
|
| 1429 |
+
"vn_WARM_reg": 3.305128574371338,
|
| 1430 |
+
"genuineness_0_6": 4.074300289154053,
|
| 1431 |
+
"blend_0_10": 6.4104485511779785,
|
| 1432 |
+
"R_quality": 0.344940185546875,
|
| 1433 |
+
"eiv_extra:Age": 3.2195329666137695,
|
| 1434 |
+
"eiv_extra:Arousal": 1.4652773141860962,
|
| 1435 |
+
"eiv_extra:Authenticity": 2.959202289581299,
|
| 1436 |
+
"eiv_extra:Background_Noise": -0.179806649684906,
|
| 1437 |
+
"eiv_extra:Confident_vs._Hesitant": 0.9332407712936401,
|
| 1438 |
+
"eiv_extra:Gender": 0.8807191848754883,
|
| 1439 |
+
"eiv_extra:High-Pitched_vs._Low-Pitched": 1.623910665512085,
|
| 1440 |
+
"eiv_extra:Monotone_vs._Expressive": 1.7812769412994385,
|
| 1441 |
+
"eiv_extra:Recording_Quality": 2.9775044918060303,
|
| 1442 |
+
"eiv_extra:Serious_vs._Humorous": 0.9033668637275696,
|
| 1443 |
+
"eiv_extra:Soft_vs._Harsh": 0.46313655376434326,
|
| 1444 |
+
"eiv_extra:Submissive_vs._Dominant": 0.3300918638706207,
|
| 1445 |
+
"eiv_extra:Valence": 0.215755432844162,
|
| 1446 |
+
"eiv_extra:Vulnerable_vs._Emotionally_Detached": 2.259490489959717,
|
| 1447 |
+
"eiv_extra:Warm_vs._Cold": 0.2791379392147064,
|
| 1448 |
+
"eiv_extra:score_background_quality": 3.645481586456299,
|
| 1449 |
+
"eiv_extra:score_content_enjoyment": 4.828408241271973,
|
| 1450 |
+
"eiv_extra:score_overall_quality": 2.8694915771484375,
|
| 1451 |
+
"eiv_extra:score_speech_quality": 1.9673843383789062,
|
| 1452 |
+
"audiobox:CE": 6.41180419921875,
|
| 1453 |
+
"audiobox:CU": 7.486018180847168,
|
| 1454 |
+
"audiobox:PC": 1.460522174835205,
|
| 1455 |
+
"audiobox:PQ": 8.00154972076416,
|
| 1456 |
+
"dnsmos:SIG_raw": 4.141777038574219,
|
| 1457 |
+
"dnsmos:BAK_raw": 4.254101753234863,
|
| 1458 |
+
"dnsmos:OVRL_raw": 3.8781161308288574,
|
| 1459 |
+
"dnsmos:SIG": 3.612466812133789,
|
| 1460 |
+
"dnsmos:BAK": 4.024520397186279,
|
| 1461 |
+
"dnsmos:OVRL": 3.335127830505371,
|
| 1462 |
+
"dnsmos:P808_MOS": 4.101062297821045,
|
| 1463 |
+
"burst_count_log1p": 0.055674970149993896,
|
| 1464 |
+
"voiceclap_attribute:Affection": 0.06263518333435059,
|
| 1465 |
+
"voiceclap_attribute:Age": 3.293646812438965,
|
| 1466 |
+
"voiceclap_attribute:Amusement": 0.2895764112472534,
|
| 1467 |
+
"voiceclap_attribute:Anger": -0.045290231704711914,
|
| 1468 |
+
"voiceclap_attribute:Arousal": 1.2297325134277344,
|
| 1469 |
+
"voiceclap_attribute:Astonishment_Surprise": 0.2750028073787689,
|
| 1470 |
+
"voiceclap_attribute:Authenticity": 3.106503963470459,
|
| 1471 |
+
"voiceclap_attribute:Awe": 0.1925601363182068,
|
| 1472 |
+
"voiceclap_attribute:Background_Noise": -0.027669787406921387,
|
| 1473 |
+
"voiceclap_attribute:Bitterness": 0.018249094486236572,
|
| 1474 |
+
"voiceclap_attribute:Concentration": 2.2338361740112305,
|
| 1475 |
+
"voiceclap_attribute:Confident_vs._Hesitant": 0.884527862071991,
|
| 1476 |
+
"voiceclap_attribute:Confusion": -0.0019930005073547363,
|
| 1477 |
+
"voiceclap_attribute:Contemplation": 1.3893098831176758,
|
| 1478 |
+
"voiceclap_attribute:Contempt": 0.04564779996871948,
|
| 1479 |
+
"voiceclap_attribute:Contentment": 1.5583001375198364,
|
| 1480 |
+
"voiceclap_attribute:Disappointment": -0.03386491537094116,
|
| 1481 |
+
"voiceclap_attribute:Disgust": 0.048587143421173096,
|
| 1482 |
+
"voiceclap_attribute:Distress": -0.08529025316238403,
|
| 1483 |
+
"voiceclap_attribute:Doubt": 0.1033887267112732,
|
| 1484 |
+
"voiceclap_attribute:Elation": 0.2367246150970459,
|
| 1485 |
+
"voiceclap_attribute:Embarrassment": 0.05756309628486633,
|
| 1486 |
+
"voiceclap_attribute:Emotional_Numbness": 0.0669066309928894,
|
| 1487 |
+
"voiceclap_attribute:Fatigue_Exhaustion": -0.08572903275489807,
|
| 1488 |
+
"voiceclap_attribute:Fear": 0.006707549095153809,
|
| 1489 |
+
"voiceclap_attribute:Gender": 0.9793065786361694,
|
| 1490 |
+
"voiceclap_attribute:Helplessness": -0.05156219005584717,
|
| 1491 |
+
"voiceclap_attribute:High-Pitched_vs._Low-Pitched": 1.43144953250885,
|
| 1492 |
+
"voiceclap_attribute:Hope_Enthusiasm_Optimism": 1.1618940830230713,
|
| 1493 |
+
"voiceclap_attribute:Impatience_and_Irritability": -0.006205916404724121,
|
| 1494 |
+
"voiceclap_attribute:Infatuation": -0.1780616044998169,
|
| 1495 |
+
"voiceclap_attribute:Interest": 2.2884392738342285,
|
| 1496 |
+
"voiceclap_attribute:Intoxication_Altered_States_of_Consciousness": 0.08571690320968628,
|
| 1497 |
+
"voiceclap_attribute:Jealousy_&_Envy": -0.054608941078186035,
|
| 1498 |
+
"voiceclap_attribute:Longing": -0.12330591678619385,
|
| 1499 |
+
"voiceclap_attribute:Malevolence_Malice": -0.013307750225067139,
|
| 1500 |
+
"voiceclap_attribute:Monotone_vs._Expressive": 1.4972254037857056,
|
| 1501 |
+
"voiceclap_attribute:Pain": -0.05317756533622742,
|
| 1502 |
+
"voiceclap_attribute:Pleasure_Ecstasy": 0.05968901515007019,
|
| 1503 |
+
"voiceclap_attribute:Pride": 0.6455303430557251,
|
| 1504 |
+
"voiceclap_attribute:Recording_Quality": 2.914816379547119,
|
| 1505 |
+
"voiceclap_attribute:Relief": 0.11412400007247925,
|
| 1506 |
+
"voiceclap_attribute:Sadness": -0.05894589424133301,
|
| 1507 |
+
"voiceclap_attribute:Serious_vs._Humorous": 0.585119366645813,
|
| 1508 |
+
"voiceclap_attribute:Sexual_Lust": -0.035655200481414795,
|
| 1509 |
+
"voiceclap_attribute:Shame": -0.05261296033859253,
|
| 1510 |
+
"voiceclap_attribute:Soft_vs._Harsh": 0.5117160081863403,
|
| 1511 |
+
"voiceclap_attribute:Sourness": 0.006042182445526123,
|
| 1512 |
+
"voiceclap_attribute:Submissive_vs._Dominant": 0.36074984073638916,
|
| 1513 |
+
"voiceclap_attribute:Teasing": -0.02604275941848755,
|
| 1514 |
+
"voiceclap_attribute:Thankfulness_Gratitude": -0.006200909614562988,
|
| 1515 |
+
"voiceclap_attribute:Triumph": 0.05297607183456421,
|
| 1516 |
+
"voiceclap_attribute:Valence": 0.244705468416214,
|
| 1517 |
+
"voiceclap_attribute:Vulnerable_vs._Emotionally_Detached": 1.7818416357040405,
|
| 1518 |
+
"voiceclap_attribute:Warm_vs._Cold": 0.42359793186187744,
|
| 1519 |
+
"voiceclap_attribute:duration": 6.835643768310547,
|
| 1520 |
+
"voiceclap_attribute:score_background_quality": 3.6317214965820312,
|
| 1521 |
+
"voiceclap_attribute:score_content_enjoyment": 4.847010612487793,
|
| 1522 |
+
"voiceclap_attribute:score_overall_quality": 2.9790332317352295,
|
| 1523 |
+
"voiceclap_attribute:score_speech_quality": 2.006450653076172,
|
| 1524 |
+
"voiceclap_attribute:talking_speed": 17.04479217529297
|
| 1525 |
+
},
|
| 1526 |
+
"asr": "Absolutely certain maybe it needs to convert the solar system into computronium perfect computing matter.",
|
| 1527 |
+
"audio_sha256": "0f122cd76b54b921af91818f0e99e99455e78863d137b9e64fc7fb048fac60bf",
|
| 1528 |
+
"speaker": "S1",
|
| 1529 |
+
"seconds": 5.92,
|
| 1530 |
+
"media_member": "es-S1.mp3",
|
| 1531 |
+
"wav_member": "es-S1.wav",
|
| 1532 |
+
"source_split": "train",
|
| 1533 |
+
"source_audio": "Original media crop, not a codec reconstruction"
|
| 1534 |
+
},
|
| 1535 |
+
"S2": {
|
| 1536 |
+
"episode": "41aba91cc5ca6308be7ec4f3e27dcba37cfb310eaf14c938aa66359c048499a6",
|
| 1537 |
+
"original_speaker": "S2",
|
| 1538 |
+
"start_frame": 5486,
|
| 1539 |
+
"end_frame": 5559,
|
| 1540 |
+
"language": "es",
|
| 1541 |
+
"window": {
|
| 1542 |
+
"episode": "41aba91cc5ca6308be7ec4f3e27dcba37cfb310eaf14c938aa66359c048499a6",
|
| 1543 |
+
"lang": "es",
|
| 1544 |
+
"window": "middle",
|
| 1545 |
+
"start": 414.97551,
|
| 1546 |
+
"duration": 30.0,
|
| 1547 |
+
"ce": 6.284721754491329
|
| 1548 |
+
},
|
| 1549 |
+
"text": "lo largo de 150 mil kilómetros, la reducción total de emisiones es de hasta un 73%.",
|
| 1550 |
+
"scores": {
|
| 1551 |
+
"emo_Affection": -0.07296362519264221,
|
| 1552 |
+
"emo_Amusement": -0.04420545697212219,
|
| 1553 |
+
"emo_Anger": -0.00197485089302063,
|
| 1554 |
+
"emo_Astonishment_Surprise": 0.013527512550354004,
|
| 1555 |
+
"emo_Awe": -0.030219100415706635,
|
| 1556 |
+
"emo_Bitterness": 0.016800880432128906,
|
| 1557 |
+
"emo_Concentration": 2.4742159843444824,
|
| 1558 |
+
"emo_Confusion": -0.034375667572021484,
|
| 1559 |
+
"emo_Contemplation": 0.69548100233078,
|
| 1560 |
+
"emo_Contempt": 0.004349306225776672,
|
| 1561 |
+
"emo_Contentment": 0.8344520330429077,
|
| 1562 |
+
"emo_Disappointment": 0.059642672538757324,
|
| 1563 |
+
"emo_Disgust": -0.00733591616153717,
|
| 1564 |
+
"emo_Distress": 0.031088829040527344,
|
| 1565 |
+
"emo_Doubt": 0.0192488431930542,
|
| 1566 |
+
"emo_Elation": 0.047839730978012085,
|
| 1567 |
+
"emo_Embarrassment": -0.04414752125740051,
|
| 1568 |
+
"emo_Emotional_Numbness": 0.5744961500167847,
|
| 1569 |
+
"emo_Fatigue_Exhaustion": -0.05103707313537598,
|
| 1570 |
+
"emo_Fear": -0.0247439444065094,
|
| 1571 |
+
"emo_Helplessness": -0.03369241952896118,
|
| 1572 |
+
"emo_Hope_Enthusiasm_Optimism": 0.3185374140739441,
|
| 1573 |
+
"emo_Impatience_and_Irritability": 0.011811137199401855,
|
| 1574 |
+
"emo_Infatuation": -0.03623795509338379,
|
| 1575 |
+
"emo_Interest": 1.813370704650879,
|
| 1576 |
+
"emo_Intoxication_Altered_States_of_Consciousness": -0.03937558829784393,
|
| 1577 |
+
"emo_Jealousy_and_Envy": -0.004752174019813538,
|
| 1578 |
+
"emo_Longing": -0.08151662349700928,
|
| 1579 |
+
"emo_Malevolence_Malice": -0.04727655649185181,
|
| 1580 |
+
"emo_Pain": -0.0373615026473999,
|
| 1581 |
+
"emo_Pleasure_Ecstasy": -0.0654870867729187,
|
| 1582 |
+
"emo_Pride": 0.31781667470932007,
|
| 1583 |
+
"emo_Relief": -0.12075445055961609,
|
| 1584 |
+
"emo_Sadness": 0.04084610939025879,
|
| 1585 |
+
"emo_Sexual_Lust": -0.011522918939590454,
|
| 1586 |
+
"emo_Shame": -0.030383706092834473,
|
| 1587 |
+
"emo_Sourness": 0.007365241646766663,
|
| 1588 |
+
"emo_Teasing": -0.04316112399101257,
|
| 1589 |
+
"emo_Thankfulness_Gratitude": -0.0915425717830658,
|
| 1590 |
+
"emo_Triumph": -0.0059276968240737915,
|
| 1591 |
+
"vn_AGEV_reg": 3.6166632175445557,
|
| 1592 |
+
"vn_AROU_reg": 2.3294119834899902,
|
| 1593 |
+
"vn_ARSH_reg": 3.111398935317993,
|
| 1594 |
+
"vn_ATCK_reg": 2.972538709640503,
|
| 1595 |
+
"vn_BKGN_reg": 3.999671459197998,
|
| 1596 |
+
"vn_BRGT_reg": 2.9515833854675293,
|
| 1597 |
+
"vn_CHNK_reg": 3.1138148307800293,
|
| 1598 |
+
"vn_CLRT_reg": 4.5367608070373535,
|
| 1599 |
+
"vn_COGL_reg": 0.34133875370025635,
|
| 1600 |
+
"vn_DARC_reg": 2.8256916999816895,
|
| 1601 |
+
"vn_DFLU_reg": -0.20247364044189453,
|
| 1602 |
+
"vn_EMPH_reg": 3.0124263763427734,
|
| 1603 |
+
"vn_ESTH_reg": 4.259562969207764,
|
| 1604 |
+
"vn_EXPL_reg": -0.028962567448616028,
|
| 1605 |
+
"vn_FOCS_reg": 4.070779800415039,
|
| 1606 |
+
"vn_FULL_reg": 4.028995037078857,
|
| 1607 |
+
"vn_GEND_reg": 4.920157432556152,
|
| 1608 |
+
"vn_HARM_reg": 3.9141359329223633,
|
| 1609 |
+
"vn_METL_reg": 1.5418540239334106,
|
| 1610 |
+
"vn_RANG_reg": 2.0278356075286865,
|
| 1611 |
+
"vn_RCQL_reg": 4.340983867645264,
|
| 1612 |
+
"vn_REGS_reg": 0.9269677996635437,
|
| 1613 |
+
"vn_RESP_reg": 0.9665132761001587,
|
| 1614 |
+
"vn_ROUG_reg": 1.5543689727783203,
|
| 1615 |
+
"vn_R_CHST_reg": 3.7326765060424805,
|
| 1616 |
+
"vn_R_HEAD_reg": 1.5257518291473389,
|
| 1617 |
+
"vn_R_MASK_reg": 2.8902533054351807,
|
| 1618 |
+
"vn_R_MIXD_reg": 3.9654593467712402,
|
| 1619 |
+
"vn_R_NASL_reg": 1.7606878280639648,
|
| 1620 |
+
"vn_R_ORAL_reg": 3.4108426570892334,
|
| 1621 |
+
"vn_R_THRT_reg": 2.9298839569091797,
|
| 1622 |
+
"vn_SMTH_reg": 4.407018184661865,
|
| 1623 |
+
"vn_STNC_reg": 3.7393362522125244,
|
| 1624 |
+
"vn_STRU_reg": 4.8640265464782715,
|
| 1625 |
+
"vn_S_ASMR_reg": 0.014387369155883789,
|
| 1626 |
+
"vn_S_AUTH_reg": 4.1170973777771,
|
| 1627 |
+
"vn_S_CART_reg": -0.4385082721710205,
|
| 1628 |
+
"vn_S_CASU_reg": 0.9195735454559326,
|
| 1629 |
+
"vn_S_CONV_reg": 1.895982265472412,
|
| 1630 |
+
"vn_S_DRAM_reg": 1.702317476272583,
|
| 1631 |
+
"vn_S_FORM_reg": 4.514725685119629,
|
| 1632 |
+
"vn_S_MONO_reg": 3.77933931350708,
|
| 1633 |
+
"vn_S_NARR_reg": 4.502363204956055,
|
| 1634 |
+
"vn_S_NEWS_reg": 3.4835493564605713,
|
| 1635 |
+
"vn_S_PLAY_reg": -0.1282966136932373,
|
| 1636 |
+
"vn_S_RANT_reg": 0.08849072456359863,
|
| 1637 |
+
"vn_S_STRY_reg": 2.1363117694854736,
|
| 1638 |
+
"vn_S_TECH_reg": 3.6496405601501465,
|
| 1639 |
+
"vn_S_WHIS_reg": -0.30633509159088135,
|
| 1640 |
+
"vn_TEMP_reg": 3.2218213081359863,
|
| 1641 |
+
"vn_TENS_reg": 1.9000221490859985,
|
| 1642 |
+
"vn_VALN_reg": 2.6230711936950684,
|
| 1643 |
+
"vn_VALS_reg": 2.948331356048584,
|
| 1644 |
+
"vn_VFLX_reg": 2.8669564723968506,
|
| 1645 |
+
"vn_VOLT_reg": 0.9067842960357666,
|
| 1646 |
+
"vn_VULN_reg": 0.9292596578598022,
|
| 1647 |
+
"vn_WARM_reg": 3.5525498390197754,
|
| 1648 |
+
"genuineness_0_6": 3.9927117824554443,
|
| 1649 |
+
"blend_0_10": 6.5511250495910645,
|
| 1650 |
+
"R_quality": 0.3087250590324402,
|
| 1651 |
+
"eiv_extra:Age": 3.3105695247650146,
|
| 1652 |
+
"eiv_extra:Arousal": 0.9049730896949768,
|
| 1653 |
+
"eiv_extra:Authenticity": 2.779514789581299,
|
| 1654 |
+
"eiv_extra:Background_Noise": -0.0024678707122802734,
|
| 1655 |
+
"eiv_extra:Confident_vs._Hesitant": 0.7455488443374634,
|
| 1656 |
+
"eiv_extra:Gender": -0.8569026589393616,
|
| 1657 |
+
"eiv_extra:High-Pitched_vs._Low-Pitched": 1.942270040512085,
|
| 1658 |
+
"eiv_extra:Monotone_vs._Expressive": 0.7241610288619995,
|
| 1659 |
+
"eiv_extra:Recording_Quality": 2.644925832748413,
|
| 1660 |
+
"eiv_extra:Serious_vs._Humorous": 0.5850942730903625,
|
| 1661 |
+
"eiv_extra:Soft_vs._Harsh": 0.09257349371910095,
|
| 1662 |
+
"eiv_extra:Submissive_vs._Dominant": 0.0757392942905426,
|
| 1663 |
+
"eiv_extra:Valence": 0.07790891081094742,
|
| 1664 |
+
"eiv_extra:Vulnerable_vs._Emotionally_Detached": 2.74296236038208,
|
| 1665 |
+
"eiv_extra:Warm_vs._Cold": 0.031936533749103546,
|
| 1666 |
+
"eiv_extra:score_background_quality": 3.7538554668426514,
|
| 1667 |
+
"eiv_extra:score_content_enjoyment": 4.738227367401123,
|
| 1668 |
+
"eiv_extra:score_overall_quality": 2.980515956878662,
|
| 1669 |
+
"eiv_extra:score_speech_quality": 2.0064468383789062,
|
| 1670 |
+
"audiobox:CE": 6.332377910614014,
|
| 1671 |
+
"audiobox:CU": 7.166062831878662,
|
| 1672 |
+
"audiobox:PC": 1.473143219947815,
|
| 1673 |
+
"audiobox:PQ": 8.235105514526367,
|
| 1674 |
+
"dnsmos:SIG_raw": 4.102573871612549,
|
| 1675 |
+
"dnsmos:BAK_raw": 4.359593868255615,
|
| 1676 |
+
"dnsmos:OVRL_raw": 3.884467601776123,
|
| 1677 |
+
"dnsmos:SIG": 3.5948486328125,
|
| 1678 |
+
"dnsmos:BAK": 4.1043195724487305,
|
| 1679 |
+
"dnsmos:OVRL": 3.344606876373291,
|
| 1680 |
+
"dnsmos:P808_MOS": 4.108819007873535,
|
| 1681 |
+
"burst_count_log1p": 0.04047524929046631,
|
| 1682 |
+
"voiceclap_attribute:Affection": -0.18862557411193848,
|
| 1683 |
+
"voiceclap_attribute:Age": 3.4040963649749756,
|
| 1684 |
+
"voiceclap_attribute:Amusement": -0.19016557931900024,
|
| 1685 |
+
"voiceclap_attribute:Anger": -0.16420531272888184,
|
| 1686 |
+
"voiceclap_attribute:Arousal": 0.9585616588592529,
|
| 1687 |
+
"voiceclap_attribute:Astonishment_Surprise": -0.10098510980606079,
|
| 1688 |
+
"voiceclap_attribute:Authenticity": 2.788632869720459,
|
| 1689 |
+
"voiceclap_attribute:Awe": -0.03645056486129761,
|
| 1690 |
+
"voiceclap_attribute:Background_Noise": 0.07136785984039307,
|
| 1691 |
+
"voiceclap_attribute:Bitterness": 0.018249094486236572,
|
| 1692 |
+
"voiceclap_attribute:Concentration": 2.511523723602295,
|
| 1693 |
+
"voiceclap_attribute:Confident_vs._Hesitant": 0.846072793006897,
|
| 1694 |
+
"voiceclap_attribute:Confusion": -0.07008308172225952,
|
| 1695 |
+
"voiceclap_attribute:Contemplation": 1.5571472644805908,
|
| 1696 |
+
"voiceclap_attribute:Contempt": -0.06581413745880127,
|
| 1697 |
+
"voiceclap_attribute:Contentment": 1.2753262519836426,
|
| 1698 |
+
"voiceclap_attribute:Disappointment": 0.15679579973220825,
|
| 1699 |
+
"voiceclap_attribute:Disgust": -0.049069106578826904,
|
| 1700 |
+
"voiceclap_attribute:Distress": 0.024075031280517578,
|
| 1701 |
+
"voiceclap_attribute:Doubt": 0.1326856017112732,
|
| 1702 |
+
"voiceclap_attribute:Elation": -0.16824287176132202,
|
| 1703 |
+
"voiceclap_attribute:Embarrassment": 0.018223822116851807,
|
| 1704 |
+
"voiceclap_attribute:Emotional_Numbness": 0.13345128297805786,
|
| 1705 |
+
"voiceclap_attribute:Fatigue_Exhaustion": -0.0531897246837616,
|
| 1706 |
+
"voiceclap_attribute:Fear": 0.08092629909515381,
|
| 1707 |
+
"voiceclap_attribute:Gender": -0.9553482532501221,
|
| 1708 |
+
"voiceclap_attribute:Helplessness": 0.08257275819778442,
|
| 1709 |
+
"voiceclap_attribute:High-Pitched_vs._Low-Pitched": 1.8002386093139648,
|
| 1710 |
+
"voiceclap_attribute:Hope_Enthusiasm_Optimism": 0.5178375244140625,
|
| 1711 |
+
"voiceclap_attribute:Impatience_and_Irritability": -0.14171338081359863,
|
| 1712 |
+
"voiceclap_attribute:Infatuation": -0.14687985181808472,
|
| 1713 |
+
"voiceclap_attribute:Interest": 2.068772315979004,
|
| 1714 |
+
"voiceclap_attribute:Intoxication_Altered_States_of_Consciousness": -0.0049021244049072266,
|
| 1715 |
+
"voiceclap_attribute:Jealousy_&_Envy": -0.031171441078186035,
|
| 1716 |
+
"voiceclap_attribute:Longing": -0.09596216678619385,
|
| 1717 |
+
"voiceclap_attribute:Malevolence_Malice": -0.09980767965316772,
|
| 1718 |
+
"voiceclap_attribute:Monotone_vs._Expressive": 1.0708472728729248,
|
| 1719 |
+
"voiceclap_attribute:Pain": -0.04731819033622742,
|
| 1720 |
+
"voiceclap_attribute:Pleasure_Ecstasy": -0.029730260372161865,
|
| 1721 |
+
"voiceclap_attribute:Pride": 0.6441671252250671,
|
| 1722 |
+
"voiceclap_attribute:Recording_Quality": 2.5456807613372803,
|
| 1723 |
+
"voiceclap_attribute:Relief": -0.1848393678665161,
|
| 1724 |
+
"voiceclap_attribute:Sadness": 0.09262484312057495,
|
| 1725 |
+
"voiceclap_attribute:Serious_vs._Humorous": 0.5472368001937866,
|
| 1726 |
+
"voiceclap_attribute:Sexual_Lust": -0.12053167819976807,
|
| 1727 |
+
"voiceclap_attribute:Shame": -0.04380720853805542,
|
| 1728 |
+
"voiceclap_attribute:Soft_vs._Harsh": 0.1730102300643921,
|
| 1729 |
+
"voiceclap_attribute:Sourness": 0.046891987323760986,
|
| 1730 |
+
"voiceclap_attribute:Submissive_vs._Dominant": 0.37337106466293335,
|
| 1731 |
+
"voiceclap_attribute:Teasing": -0.26313477754592896,
|
| 1732 |
+
"voiceclap_attribute:Thankfulness_Gratitude": -0.32050418853759766,
|
| 1733 |
+
"voiceclap_attribute:Triumph": 0.0025238394737243652,
|
| 1734 |
+
"voiceclap_attribute:Valence": -0.1255829781293869,
|
| 1735 |
+
"voiceclap_attribute:Vulnerable_vs._Emotionally_Detached": 2.356182098388672,
|
| 1736 |
+
"voiceclap_attribute:Warm_vs._Cold": 0.03749736398458481,
|
| 1737 |
+
"voiceclap_attribute:duration": 5.944973945617676,
|
| 1738 |
+
"voiceclap_attribute:score_background_quality": 3.6200366020202637,
|
| 1739 |
+
"voiceclap_attribute:score_content_enjoyment": 4.772791862487793,
|
| 1740 |
+
"voiceclap_attribute:score_overall_quality": 2.8904526233673096,
|
| 1741 |
+
"voiceclap_attribute:score_speech_quality": 2.051372528076172,
|
| 1742 |
+
"voiceclap_attribute:talking_speed": 18.39326286315918
|
| 1743 |
+
},
|
| 1744 |
+
"asr": "A lo largo de ciento cincuenta mil kilómetros, la reducción total de emisiones es de hasta un setenta y tres por ciento.",
|
| 1745 |
+
"audio_sha256": "f2485b9712ff457f59f374b95ce1e98c9bcb5b21acbc8c8c38a637d3781ef4e6",
|
| 1746 |
+
"speaker": "S2",
|
| 1747 |
+
"seconds": 5.84,
|
| 1748 |
+
"media_member": "es-S2.mp3",
|
| 1749 |
+
"wav_member": "es-S2.wav",
|
| 1750 |
+
"source_split": "train",
|
| 1751 |
+
"source_audio": "Original media crop, not a codec reconstruction"
|
| 1752 |
+
}
|
| 1753 |
+
}
|
| 1754 |
+
}
|
generation_config.json
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_from_model_config": true,
|
| 3 |
+
"output_attentions": false,
|
| 4 |
+
"output_hidden_states": false,
|
| 5 |
+
"pad_token_id": 151643,
|
| 6 |
+
"transformers_version": "5.14.1"
|
| 7 |
+
}
|
gpt2_decoder.py
ADDED
|
@@ -0,0 +1,721 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# coding=utf-8
|
| 2 |
+
from __future__ import annotations
|
| 3 |
+
|
| 4 |
+
from dataclasses import dataclass
|
| 5 |
+
from typing import Optional
|
| 6 |
+
|
| 7 |
+
import torch
|
| 8 |
+
import torch.nn as nn
|
| 9 |
+
import torch.utils.checkpoint
|
| 10 |
+
from transformers.activations import ACT2FN
|
| 11 |
+
from transformers.modeling_outputs import BaseModelOutputWithPast
|
| 12 |
+
from transformers.models.gpt2.configuration_gpt2 import GPT2Config
|
| 13 |
+
|
| 14 |
+
try:
|
| 15 |
+
from flash_attn import flash_attn_func, flash_attn_varlen_func
|
| 16 |
+
from flash_attn.bert_padding import pad_input, unpad_input
|
| 17 |
+
|
| 18 |
+
_FLASH_ATTN_AVAILABLE = True
|
| 19 |
+
except Exception:
|
| 20 |
+
flash_attn_func = None
|
| 21 |
+
flash_attn_varlen_func = None
|
| 22 |
+
pad_input = None
|
| 23 |
+
unpad_input = None
|
| 24 |
+
_FLASH_ATTN_AVAILABLE = False
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
@dataclass
|
| 28 |
+
class PackedSequenceMetadata:
|
| 29 |
+
cu_seqlens: torch.Tensor
|
| 30 |
+
max_seqlen: int
|
| 31 |
+
indices: Optional[torch.Tensor] = None
|
| 32 |
+
batch_size: Optional[int] = None
|
| 33 |
+
seq_len: Optional[int] = None
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
def _is_static_kv_cache_layer(layer_past: object) -> bool:
|
| 37 |
+
return isinstance(layer_past, dict) and bool(layer_past.get("static_kv_cache", False))
|
| 38 |
+
|
| 39 |
+
|
| 40 |
+
class MossTTSNanoGPT2RotaryEmbedding(nn.Module):
|
| 41 |
+
def __init__(self, dim: int, base: float = 10000.0) -> None:
|
| 42 |
+
super().__init__()
|
| 43 |
+
if dim % 2 != 0:
|
| 44 |
+
raise ValueError(f"RoPE head_dim must be even, got {dim}")
|
| 45 |
+
self.dim = int(dim)
|
| 46 |
+
self.base = float(base)
|
| 47 |
+
self.register_buffer("inv_freq", self._compute_inv_freq(), persistent=False)
|
| 48 |
+
|
| 49 |
+
def _compute_inv_freq(self, device: Optional[torch.device] = None) -> torch.Tensor:
|
| 50 |
+
return 1.0 / (
|
| 51 |
+
self.base ** (torch.arange(0, self.dim, 2, device=device, dtype=torch.float32) / self.dim)
|
| 52 |
+
)
|
| 53 |
+
|
| 54 |
+
def forward(
|
| 55 |
+
self,
|
| 56 |
+
position_ids: torch.LongTensor,
|
| 57 |
+
*,
|
| 58 |
+
device: torch.device,
|
| 59 |
+
dtype: torch.dtype,
|
| 60 |
+
) -> tuple[torch.Tensor, torch.Tensor]:
|
| 61 |
+
if position_ids.ndim == 1:
|
| 62 |
+
position_ids = position_ids.unsqueeze(0)
|
| 63 |
+
inv_freq = self._compute_inv_freq(device=device)
|
| 64 |
+
freqs = torch.einsum("bs,d->bsd", position_ids.to(device=device, dtype=inv_freq.dtype), inv_freq)
|
| 65 |
+
cos = freqs.cos().repeat_interleave(2, dim=-1).unsqueeze(2).to(dtype=dtype)
|
| 66 |
+
sin = freqs.sin().repeat_interleave(2, dim=-1).unsqueeze(2).to(dtype=dtype)
|
| 67 |
+
return cos, sin
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
def rotate_half(hidden_states: torch.Tensor) -> torch.Tensor:
|
| 71 |
+
even = hidden_states[..., ::2]
|
| 72 |
+
odd = hidden_states[..., 1::2]
|
| 73 |
+
return torch.stack((-odd, even), dim=-1).reshape_as(hidden_states)
|
| 74 |
+
|
| 75 |
+
|
| 76 |
+
def apply_rotary_pos_emb(
|
| 77 |
+
hidden_states: torch.Tensor,
|
| 78 |
+
cos: torch.Tensor,
|
| 79 |
+
sin: torch.Tensor,
|
| 80 |
+
) -> torch.Tensor:
|
| 81 |
+
return (hidden_states * cos) + (rotate_half(hidden_states) * sin)
|
| 82 |
+
|
| 83 |
+
|
| 84 |
+
class MossTTSNanoGPT2MLP(nn.Module):
|
| 85 |
+
def __init__(self, config: GPT2Config) -> None:
|
| 86 |
+
super().__init__()
|
| 87 |
+
hidden_size = int(config.hidden_size)
|
| 88 |
+
inner_size = int(config.n_inner or 4 * hidden_size)
|
| 89 |
+
self.fc_in = nn.Linear(hidden_size, inner_size)
|
| 90 |
+
self.fc_out = nn.Linear(inner_size, hidden_size)
|
| 91 |
+
self.act = ACT2FN[config.activation_function]
|
| 92 |
+
self.dropout = nn.Dropout(config.resid_pdrop)
|
| 93 |
+
|
| 94 |
+
def forward(self, hidden_states: torch.Tensor) -> torch.Tensor:
|
| 95 |
+
hidden_states = self.fc_in(hidden_states)
|
| 96 |
+
hidden_states = self.act(hidden_states)
|
| 97 |
+
hidden_states = self.fc_out(hidden_states)
|
| 98 |
+
return self.dropout(hidden_states)
|
| 99 |
+
|
| 100 |
+
|
| 101 |
+
class MossTTSNanoGPT2Attention(nn.Module):
|
| 102 |
+
def __init__(self, config: GPT2Config, layer_idx: int, attn_implementation: str) -> None:
|
| 103 |
+
super().__init__()
|
| 104 |
+
hidden_size = int(config.hidden_size)
|
| 105 |
+
num_heads = int(config.num_attention_heads)
|
| 106 |
+
if hidden_size % num_heads != 0:
|
| 107 |
+
raise ValueError(f"hidden_size={hidden_size} must be divisible by num_attention_heads={num_heads}")
|
| 108 |
+
|
| 109 |
+
self.num_heads = num_heads
|
| 110 |
+
self.head_dim = hidden_size // num_heads
|
| 111 |
+
self.embed_dim = hidden_size
|
| 112 |
+
self.layer_idx = layer_idx
|
| 113 |
+
self.attn_implementation = attn_implementation
|
| 114 |
+
self.attn_dropout = float(config.attn_pdrop)
|
| 115 |
+
self.resid_dropout = nn.Dropout(config.resid_pdrop)
|
| 116 |
+
self.scale_attn_weights = bool(getattr(config, "scale_attn_weights", True))
|
| 117 |
+
self.scale_attn_by_inverse_layer_idx = bool(getattr(config, "scale_attn_by_inverse_layer_idx", False))
|
| 118 |
+
self.position_embedding_type = str(getattr(config, "position_embedding_type", "absolute")).lower()
|
| 119 |
+
if self.position_embedding_type not in {"absolute", "rope"}:
|
| 120 |
+
raise ValueError(f"Unsupported position_embedding_type={self.position_embedding_type!r}")
|
| 121 |
+
|
| 122 |
+
self.c_attn = nn.Linear(hidden_size, 3 * hidden_size)
|
| 123 |
+
self.c_proj = nn.Linear(hidden_size, hidden_size)
|
| 124 |
+
self.rotary_emb = None
|
| 125 |
+
if self.position_embedding_type == "rope":
|
| 126 |
+
self.rotary_emb = MossTTSNanoGPT2RotaryEmbedding(
|
| 127 |
+
self.head_dim,
|
| 128 |
+
base=float(getattr(config, "rope_base", 10000.0)),
|
| 129 |
+
)
|
| 130 |
+
|
| 131 |
+
def _split_heads(self, tensor: torch.Tensor) -> torch.Tensor:
|
| 132 |
+
if tensor.ndim == 3:
|
| 133 |
+
batch_size, seq_len, _ = tensor.shape
|
| 134 |
+
return tensor.view(batch_size, seq_len, self.num_heads, self.head_dim)
|
| 135 |
+
if tensor.ndim == 2:
|
| 136 |
+
total_tokens, _ = tensor.shape
|
| 137 |
+
return tensor.view(total_tokens, self.num_heads, self.head_dim)
|
| 138 |
+
raise ValueError(f"Unsupported tensor rank for attention split: {tensor.ndim}")
|
| 139 |
+
|
| 140 |
+
def _merge_heads(self, tensor: torch.Tensor) -> torch.Tensor:
|
| 141 |
+
if tensor.ndim == 4:
|
| 142 |
+
batch_size, seq_len, _, _ = tensor.shape
|
| 143 |
+
return tensor.reshape(batch_size, seq_len, self.embed_dim)
|
| 144 |
+
if tensor.ndim == 3:
|
| 145 |
+
total_tokens, _, _ = tensor.shape
|
| 146 |
+
return tensor.reshape(total_tokens, self.embed_dim)
|
| 147 |
+
raise ValueError(f"Unsupported tensor rank for attention merge: {tensor.ndim}")
|
| 148 |
+
|
| 149 |
+
def _causal_attention_mask(
|
| 150 |
+
self,
|
| 151 |
+
attention_mask: Optional[torch.Tensor],
|
| 152 |
+
query_length: int,
|
| 153 |
+
key_length: int,
|
| 154 |
+
device: torch.device,
|
| 155 |
+
) -> torch.Tensor:
|
| 156 |
+
query_positions = torch.arange(query_length, device=device, dtype=torch.long)
|
| 157 |
+
query_positions = query_positions + max(key_length - query_length, 0)
|
| 158 |
+
key_positions = torch.arange(key_length, device=device, dtype=torch.long)
|
| 159 |
+
causal = key_positions.unsqueeze(0) <= query_positions.unsqueeze(1)
|
| 160 |
+
causal = causal.unsqueeze(0).unsqueeze(0)
|
| 161 |
+
if attention_mask is None:
|
| 162 |
+
return causal
|
| 163 |
+
key_mask = attention_mask[:, None, None, :].to(dtype=torch.bool)
|
| 164 |
+
return causal & key_mask
|
| 165 |
+
|
| 166 |
+
def _eager_attention(
|
| 167 |
+
self,
|
| 168 |
+
query: torch.Tensor,
|
| 169 |
+
key: torch.Tensor,
|
| 170 |
+
value: torch.Tensor,
|
| 171 |
+
attention_mask: Optional[torch.Tensor],
|
| 172 |
+
) -> torch.Tensor:
|
| 173 |
+
query = query.transpose(1, 2)
|
| 174 |
+
key = key.transpose(1, 2)
|
| 175 |
+
value = value.transpose(1, 2)
|
| 176 |
+
|
| 177 |
+
scale = 1.0
|
| 178 |
+
if self.scale_attn_weights:
|
| 179 |
+
scale /= self.head_dim ** 0.5
|
| 180 |
+
if self.scale_attn_by_inverse_layer_idx:
|
| 181 |
+
scale /= float(self.layer_idx + 1)
|
| 182 |
+
|
| 183 |
+
scores = torch.matmul(query, key.transpose(-1, -2)) * scale
|
| 184 |
+
causal_mask = self._causal_attention_mask(
|
| 185 |
+
attention_mask=attention_mask,
|
| 186 |
+
query_length=query.shape[-2],
|
| 187 |
+
key_length=key.shape[-2],
|
| 188 |
+
device=query.device,
|
| 189 |
+
)
|
| 190 |
+
scores = scores.masked_fill(~causal_mask, torch.finfo(scores.dtype).min)
|
| 191 |
+
probs = torch.softmax(scores, dim=-1)
|
| 192 |
+
if self.training and self.attn_dropout > 0:
|
| 193 |
+
probs = torch.dropout(probs, self.attn_dropout, train=True)
|
| 194 |
+
output = torch.matmul(probs, value)
|
| 195 |
+
return output.transpose(1, 2).contiguous()
|
| 196 |
+
|
| 197 |
+
def _sdpa_attention(
|
| 198 |
+
self,
|
| 199 |
+
query: torch.Tensor,
|
| 200 |
+
key: torch.Tensor,
|
| 201 |
+
value: torch.Tensor,
|
| 202 |
+
attention_mask: Optional[torch.Tensor],
|
| 203 |
+
) -> torch.Tensor:
|
| 204 |
+
query = query.transpose(1, 2)
|
| 205 |
+
key = key.transpose(1, 2)
|
| 206 |
+
value = value.transpose(1, 2)
|
| 207 |
+
mask = None
|
| 208 |
+
if attention_mask is not None or query.shape[-2] != key.shape[-2]:
|
| 209 |
+
mask = self._causal_attention_mask(
|
| 210 |
+
attention_mask=attention_mask,
|
| 211 |
+
query_length=query.shape[-2],
|
| 212 |
+
key_length=key.shape[-2],
|
| 213 |
+
device=query.device,
|
| 214 |
+
)
|
| 215 |
+
output = torch.nn.functional.scaled_dot_product_attention(
|
| 216 |
+
query,
|
| 217 |
+
key,
|
| 218 |
+
value,
|
| 219 |
+
attn_mask=mask,
|
| 220 |
+
dropout_p=self.attn_dropout if self.training else 0.0,
|
| 221 |
+
is_causal=mask is None,
|
| 222 |
+
)
|
| 223 |
+
return output.transpose(1, 2).contiguous()
|
| 224 |
+
|
| 225 |
+
def _flash_attention(
|
| 226 |
+
self,
|
| 227 |
+
query: torch.Tensor,
|
| 228 |
+
key: torch.Tensor,
|
| 229 |
+
value: torch.Tensor,
|
| 230 |
+
attention_mask: Optional[torch.Tensor],
|
| 231 |
+
packed_metadata: Optional[PackedSequenceMetadata],
|
| 232 |
+
) -> torch.Tensor:
|
| 233 |
+
if not _FLASH_ATTN_AVAILABLE:
|
| 234 |
+
raise ImportError("flash_attn is not installed, but attn_implementation='flash_attention_2' was requested.")
|
| 235 |
+
if query.device.type != "cuda":
|
| 236 |
+
raise ValueError("flash_attention_2 requires CUDA tensors.")
|
| 237 |
+
if query.dtype not in (torch.float16, torch.bfloat16):
|
| 238 |
+
raise ValueError(
|
| 239 |
+
f"flash_attention_2 requires fp16/bf16 tensors, but received dtype={query.dtype}."
|
| 240 |
+
)
|
| 241 |
+
|
| 242 |
+
dropout_p = self.attn_dropout if self.training else 0.0
|
| 243 |
+
if packed_metadata is not None:
|
| 244 |
+
if packed_metadata.indices is not None:
|
| 245 |
+
query = query.reshape(-1, self.num_heads, self.head_dim).index_select(0, packed_metadata.indices)
|
| 246 |
+
key = key.reshape(-1, self.num_heads, self.head_dim).index_select(0, packed_metadata.indices)
|
| 247 |
+
value = value.reshape(-1, self.num_heads, self.head_dim).index_select(0, packed_metadata.indices)
|
| 248 |
+
output = flash_attn_varlen_func(
|
| 249 |
+
query,
|
| 250 |
+
key,
|
| 251 |
+
value,
|
| 252 |
+
packed_metadata.cu_seqlens,
|
| 253 |
+
packed_metadata.cu_seqlens,
|
| 254 |
+
packed_metadata.max_seqlen,
|
| 255 |
+
packed_metadata.max_seqlen,
|
| 256 |
+
dropout_p=dropout_p,
|
| 257 |
+
causal=True,
|
| 258 |
+
)
|
| 259 |
+
if packed_metadata.indices is None:
|
| 260 |
+
return output
|
| 261 |
+
return pad_input(
|
| 262 |
+
output,
|
| 263 |
+
packed_metadata.indices,
|
| 264 |
+
packed_metadata.batch_size,
|
| 265 |
+
packed_metadata.seq_len,
|
| 266 |
+
)
|
| 267 |
+
|
| 268 |
+
if attention_mask is None or bool(attention_mask.all()):
|
| 269 |
+
return flash_attn_func(
|
| 270 |
+
query,
|
| 271 |
+
key,
|
| 272 |
+
value,
|
| 273 |
+
dropout_p=dropout_p,
|
| 274 |
+
causal=True,
|
| 275 |
+
)
|
| 276 |
+
|
| 277 |
+
if query.shape[1] != key.shape[1]:
|
| 278 |
+
query_attention_mask = attention_mask[:, -query.shape[1] :]
|
| 279 |
+
unpadded_query, query_indices, cu_seqlens_q, max_seqlen_q, _ = unpad_input(
|
| 280 |
+
query,
|
| 281 |
+
query_attention_mask,
|
| 282 |
+
)
|
| 283 |
+
unpadded_key, _, cu_seqlens_k, max_seqlen_k, _ = unpad_input(key, attention_mask)
|
| 284 |
+
unpadded_value, _, _, _, _ = unpad_input(value, attention_mask)
|
| 285 |
+
output = flash_attn_varlen_func(
|
| 286 |
+
unpadded_query,
|
| 287 |
+
unpadded_key,
|
| 288 |
+
unpadded_value,
|
| 289 |
+
cu_seqlens_q,
|
| 290 |
+
cu_seqlens_k,
|
| 291 |
+
max_seqlen_q,
|
| 292 |
+
max_seqlen_k,
|
| 293 |
+
dropout_p=dropout_p,
|
| 294 |
+
causal=True,
|
| 295 |
+
)
|
| 296 |
+
return pad_input(output, query_indices, query.shape[0], query.shape[1])
|
| 297 |
+
|
| 298 |
+
unpadded_query, indices, cu_seqlens, max_seqlen, _ = unpad_input(query, attention_mask)
|
| 299 |
+
unpadded_key, _, _, _, _ = unpad_input(key, attention_mask)
|
| 300 |
+
unpadded_value, _, _, _, _ = unpad_input(value, attention_mask)
|
| 301 |
+
output = flash_attn_varlen_func(
|
| 302 |
+
unpadded_query,
|
| 303 |
+
unpadded_key,
|
| 304 |
+
unpadded_value,
|
| 305 |
+
cu_seqlens,
|
| 306 |
+
cu_seqlens,
|
| 307 |
+
max_seqlen,
|
| 308 |
+
max_seqlen,
|
| 309 |
+
dropout_p=dropout_p,
|
| 310 |
+
causal=True,
|
| 311 |
+
)
|
| 312 |
+
return pad_input(output, indices, query.shape[0], query.shape[1])
|
| 313 |
+
|
| 314 |
+
def forward(
|
| 315 |
+
self,
|
| 316 |
+
hidden_states: torch.Tensor,
|
| 317 |
+
attention_mask: Optional[torch.Tensor] = None,
|
| 318 |
+
position_ids: Optional[torch.LongTensor] = None,
|
| 319 |
+
packed_metadata: Optional[PackedSequenceMetadata] = None,
|
| 320 |
+
layer_past: Optional[tuple[torch.Tensor, torch.Tensor]] = None,
|
| 321 |
+
use_cache: bool = False,
|
| 322 |
+
) -> tuple[torch.Tensor, Optional[tuple[torch.Tensor, torch.Tensor]]]:
|
| 323 |
+
qkv = self.c_attn(hidden_states)
|
| 324 |
+
query, key, value = qkv.split(self.embed_dim, dim=-1)
|
| 325 |
+
query = self._split_heads(query)
|
| 326 |
+
key = self._split_heads(key)
|
| 327 |
+
value = self._split_heads(value)
|
| 328 |
+
|
| 329 |
+
if self.rotary_emb is not None:
|
| 330 |
+
if position_ids is None:
|
| 331 |
+
raise ValueError("position_ids must be provided when position_embedding_type='rope'.")
|
| 332 |
+
cos, sin = self.rotary_emb(
|
| 333 |
+
position_ids.to(device=query.device),
|
| 334 |
+
device=query.device,
|
| 335 |
+
dtype=query.dtype,
|
| 336 |
+
)
|
| 337 |
+
query = apply_rotary_pos_emb(query, cos, sin)
|
| 338 |
+
key = apply_rotary_pos_emb(key, cos, sin)
|
| 339 |
+
|
| 340 |
+
static_layer_past = layer_past is not None and _is_static_kv_cache_layer(layer_past)
|
| 341 |
+
if static_layer_past:
|
| 342 |
+
past_length = int(layer_past.get("length", 0))
|
| 343 |
+
new_length = past_length + int(key.shape[1])
|
| 344 |
+
key_cache = layer_past["key"]
|
| 345 |
+
value_cache = layer_past["value"]
|
| 346 |
+
if new_length > int(key_cache.shape[1]):
|
| 347 |
+
raise ValueError(
|
| 348 |
+
f"Static KV cache is too short: need {new_length}, capacity={int(key_cache.shape[1])}."
|
| 349 |
+
)
|
| 350 |
+
key_cache[:, past_length:new_length].copy_(key)
|
| 351 |
+
value_cache[:, past_length:new_length].copy_(value)
|
| 352 |
+
key = key_cache[:, :new_length]
|
| 353 |
+
value = value_cache[:, :new_length]
|
| 354 |
+
layer_past["length"] = new_length
|
| 355 |
+
elif layer_past is not None:
|
| 356 |
+
past_key, past_value = layer_past
|
| 357 |
+
key = torch.cat([past_key.to(device=key.device, dtype=key.dtype), key], dim=1)
|
| 358 |
+
value = torch.cat([past_value.to(device=value.device, dtype=value.dtype), value], dim=1)
|
| 359 |
+
|
| 360 |
+
present = layer_past if (use_cache and static_layer_past) else ((key, value) if use_cache else None)
|
| 361 |
+
|
| 362 |
+
if self.attn_implementation == "flash_attention_2":
|
| 363 |
+
attn_output = self._flash_attention(
|
| 364 |
+
query=query,
|
| 365 |
+
key=key,
|
| 366 |
+
value=value,
|
| 367 |
+
attention_mask=attention_mask,
|
| 368 |
+
packed_metadata=packed_metadata,
|
| 369 |
+
)
|
| 370 |
+
elif self.attn_implementation == "sdpa":
|
| 371 |
+
attn_output = self._sdpa_attention(
|
| 372 |
+
query=query,
|
| 373 |
+
key=key,
|
| 374 |
+
value=value,
|
| 375 |
+
attention_mask=attention_mask,
|
| 376 |
+
)
|
| 377 |
+
else:
|
| 378 |
+
attn_output = self._eager_attention(
|
| 379 |
+
query=query,
|
| 380 |
+
key=key,
|
| 381 |
+
value=value,
|
| 382 |
+
attention_mask=attention_mask,
|
| 383 |
+
)
|
| 384 |
+
|
| 385 |
+
attn_output = self._merge_heads(attn_output)
|
| 386 |
+
attn_output = self.c_proj(attn_output)
|
| 387 |
+
return self.resid_dropout(attn_output), present
|
| 388 |
+
|
| 389 |
+
|
| 390 |
+
class MossTTSNanoGPT2Block(nn.Module):
|
| 391 |
+
def __init__(self, config: GPT2Config, layer_idx: int, attn_implementation: str) -> None:
|
| 392 |
+
super().__init__()
|
| 393 |
+
hidden_size = int(config.hidden_size)
|
| 394 |
+
self.ln_1 = nn.LayerNorm(hidden_size, eps=config.layer_norm_epsilon)
|
| 395 |
+
self.attn = MossTTSNanoGPT2Attention(config, layer_idx=layer_idx, attn_implementation=attn_implementation)
|
| 396 |
+
self.ln_2 = nn.LayerNorm(hidden_size, eps=config.layer_norm_epsilon)
|
| 397 |
+
self.mlp = MossTTSNanoGPT2MLP(config)
|
| 398 |
+
|
| 399 |
+
def forward(
|
| 400 |
+
self,
|
| 401 |
+
hidden_states: torch.Tensor,
|
| 402 |
+
attention_mask: Optional[torch.Tensor] = None,
|
| 403 |
+
position_ids: Optional[torch.LongTensor] = None,
|
| 404 |
+
packed_metadata: Optional[PackedSequenceMetadata] = None,
|
| 405 |
+
layer_past: Optional[tuple[torch.Tensor, torch.Tensor]] = None,
|
| 406 |
+
use_cache: bool = False,
|
| 407 |
+
) -> tuple[torch.Tensor, Optional[tuple[torch.Tensor, torch.Tensor]]]:
|
| 408 |
+
attn_output, present = self.attn(
|
| 409 |
+
self.ln_1(hidden_states),
|
| 410 |
+
attention_mask=attention_mask,
|
| 411 |
+
position_ids=position_ids,
|
| 412 |
+
packed_metadata=packed_metadata,
|
| 413 |
+
layer_past=layer_past,
|
| 414 |
+
use_cache=use_cache,
|
| 415 |
+
)
|
| 416 |
+
hidden_states = hidden_states + attn_output
|
| 417 |
+
hidden_states = hidden_states + self.mlp(self.ln_2(hidden_states))
|
| 418 |
+
return hidden_states, present
|
| 419 |
+
|
| 420 |
+
|
| 421 |
+
class MossTTSNanoGPT2Model(nn.Module):
|
| 422 |
+
def __init__(self, config: GPT2Config, attn_implementation: str = "eager") -> None:
|
| 423 |
+
super().__init__()
|
| 424 |
+
self.config = config
|
| 425 |
+
self.attn_implementation = attn_implementation
|
| 426 |
+
self.position_embedding_type = str(getattr(config, "position_embedding_type", "absolute")).lower()
|
| 427 |
+
if self.position_embedding_type not in {"absolute", "rope"}:
|
| 428 |
+
raise ValueError(f"Unsupported position_embedding_type={self.position_embedding_type!r}")
|
| 429 |
+
hidden_size = int(config.hidden_size)
|
| 430 |
+
self.wte = nn.Embedding(config.vocab_size, hidden_size)
|
| 431 |
+
self.wpe = nn.Embedding(config.n_positions, hidden_size) if self.position_embedding_type == "absolute" else nn.Identity()
|
| 432 |
+
self.drop = nn.Dropout(config.embd_pdrop)
|
| 433 |
+
self.h = nn.ModuleList(
|
| 434 |
+
[MossTTSNanoGPT2Block(config, layer_idx=index, attn_implementation=attn_implementation) for index in range(config.n_layer)]
|
| 435 |
+
)
|
| 436 |
+
self.ln_f = nn.LayerNorm(hidden_size, eps=config.layer_norm_epsilon)
|
| 437 |
+
self.gradient_checkpointing = False
|
| 438 |
+
self._reset_parameters()
|
| 439 |
+
|
| 440 |
+
def _reset_parameters(self) -> None:
|
| 441 |
+
init_std = float(self.config.initializer_range)
|
| 442 |
+
for module in self.modules():
|
| 443 |
+
if isinstance(module, nn.Linear):
|
| 444 |
+
nn.init.normal_(module.weight, mean=0.0, std=init_std)
|
| 445 |
+
if module.bias is not None:
|
| 446 |
+
nn.init.zeros_(module.bias)
|
| 447 |
+
elif isinstance(module, nn.Embedding):
|
| 448 |
+
nn.init.normal_(module.weight, mean=0.0, std=init_std)
|
| 449 |
+
elif isinstance(module, nn.LayerNorm):
|
| 450 |
+
nn.init.ones_(module.weight)
|
| 451 |
+
nn.init.zeros_(module.bias)
|
| 452 |
+
|
| 453 |
+
@staticmethod
|
| 454 |
+
def _normalize_num_sequences(
|
| 455 |
+
cu_seqlens: torch.Tensor,
|
| 456 |
+
num_sequences: Optional[torch.Tensor],
|
| 457 |
+
device: torch.device,
|
| 458 |
+
) -> torch.Tensor:
|
| 459 |
+
if cu_seqlens.ndim == 1:
|
| 460 |
+
cu_seqlens = cu_seqlens.unsqueeze(0)
|
| 461 |
+
if num_sequences is None:
|
| 462 |
+
diffs = cu_seqlens[:, 1:] - cu_seqlens[:, :-1]
|
| 463 |
+
return diffs.gt(0).sum(dim=-1).to(device=device, dtype=torch.long)
|
| 464 |
+
if num_sequences.ndim == 0:
|
| 465 |
+
num_sequences = num_sequences.unsqueeze(0)
|
| 466 |
+
return num_sequences.to(device=device, dtype=torch.long)
|
| 467 |
+
|
| 468 |
+
@staticmethod
|
| 469 |
+
def _packed_segments_from_cu_seqlens(
|
| 470 |
+
cu_seqlens: torch.Tensor,
|
| 471 |
+
num_sequences: Optional[torch.Tensor],
|
| 472 |
+
device: torch.device,
|
| 473 |
+
) -> tuple[torch.Tensor, torch.Tensor, torch.Tensor]:
|
| 474 |
+
if cu_seqlens.ndim == 1:
|
| 475 |
+
cu_seqlens = cu_seqlens.unsqueeze(0)
|
| 476 |
+
cu_seqlens = cu_seqlens.to(device=device)
|
| 477 |
+
batch_size, boundary_count = cu_seqlens.shape
|
| 478 |
+
segment_slots = boundary_count - 1
|
| 479 |
+
if segment_slots <= 0:
|
| 480 |
+
empty = torch.empty(0, dtype=torch.long, device=device)
|
| 481 |
+
return empty, empty, empty
|
| 482 |
+
|
| 483 |
+
counts = MossTTSNanoGPT2Model._normalize_num_sequences(cu_seqlens, num_sequences, device=device)
|
| 484 |
+
counts = counts.clamp(min=0, max=segment_slots)
|
| 485 |
+
segment_slots = int(counts.max().item()) if counts.numel() > 0 else 0
|
| 486 |
+
if segment_slots <= 0:
|
| 487 |
+
empty = torch.empty(0, dtype=torch.long, device=device)
|
| 488 |
+
return empty, empty, empty
|
| 489 |
+
cu_seqlens = cu_seqlens[:, : segment_slots + 1]
|
| 490 |
+
slot_ids = torch.arange(segment_slots, device=device).unsqueeze(0)
|
| 491 |
+
valid_slots = slot_ids < counts.unsqueeze(1)
|
| 492 |
+
|
| 493 |
+
starts = cu_seqlens[:, :-1].to(dtype=torch.long)
|
| 494 |
+
ends = cu_seqlens[:, 1:].to(dtype=torch.long)
|
| 495 |
+
lengths = (ends - starts).clamp_min(0)
|
| 496 |
+
lengths = torch.where(valid_slots, lengths, torch.zeros((), dtype=torch.long, device=device))
|
| 497 |
+
|
| 498 |
+
batch_ids = torch.arange(batch_size, device=device, dtype=torch.long).unsqueeze(1).expand(batch_size, segment_slots)
|
| 499 |
+
batch_ids = batch_ids.reshape(-1)
|
| 500 |
+
starts = starts.reshape(-1)
|
| 501 |
+
lengths = lengths.reshape(-1)
|
| 502 |
+
|
| 503 |
+
valid_segments = lengths.gt(0)
|
| 504 |
+
valid_count = int(valid_segments.to(dtype=torch.long).sum().item())
|
| 505 |
+
if valid_count <= 0:
|
| 506 |
+
empty = torch.empty(0, dtype=torch.long, device=device)
|
| 507 |
+
return empty, empty, empty
|
| 508 |
+
if valid_count == lengths.numel():
|
| 509 |
+
return batch_ids, starts, lengths
|
| 510 |
+
|
| 511 |
+
valid_order = torch.argsort(valid_segments.to(dtype=torch.long), descending=True, stable=True)[:valid_count]
|
| 512 |
+
return (
|
| 513 |
+
batch_ids.index_select(0, valid_order),
|
| 514 |
+
starts.index_select(0, valid_order),
|
| 515 |
+
lengths.index_select(0, valid_order),
|
| 516 |
+
)
|
| 517 |
+
|
| 518 |
+
@staticmethod
|
| 519 |
+
def _packed_token_indices(
|
| 520 |
+
batch_ids: torch.Tensor,
|
| 521 |
+
starts: torch.Tensor,
|
| 522 |
+
lengths: torch.Tensor,
|
| 523 |
+
seq_len: int,
|
| 524 |
+
) -> tuple[torch.Tensor, torch.Tensor]:
|
| 525 |
+
total_tokens = int(lengths.sum().item())
|
| 526 |
+
if total_tokens <= 0:
|
| 527 |
+
empty = torch.empty(0, dtype=torch.long, device=lengths.device)
|
| 528 |
+
return empty, empty
|
| 529 |
+
|
| 530 |
+
segment_ids = torch.repeat_interleave(
|
| 531 |
+
torch.arange(lengths.numel(), device=lengths.device, dtype=torch.long),
|
| 532 |
+
lengths,
|
| 533 |
+
output_size=total_tokens,
|
| 534 |
+
)
|
| 535 |
+
segment_starts = torch.cumsum(lengths, dim=0) - lengths
|
| 536 |
+
positions = torch.arange(total_tokens, device=lengths.device, dtype=torch.long) - segment_starts[segment_ids]
|
| 537 |
+
indices = batch_ids[segment_ids] * seq_len + starts[segment_ids] + positions
|
| 538 |
+
return indices, positions
|
| 539 |
+
|
| 540 |
+
@staticmethod
|
| 541 |
+
def build_packed_position_ids(
|
| 542 |
+
attention_mask: Optional[torch.Tensor],
|
| 543 |
+
cu_seqlens: torch.Tensor,
|
| 544 |
+
num_sequences: Optional[torch.Tensor],
|
| 545 |
+
sequence_length: Optional[int] = None,
|
| 546 |
+
) -> torch.Tensor:
|
| 547 |
+
if cu_seqlens.ndim == 1:
|
| 548 |
+
cu_seqlens = cu_seqlens.unsqueeze(0)
|
| 549 |
+
batch_size = cu_seqlens.shape[0]
|
| 550 |
+
seq_len = int(sequence_length or (cu_seqlens.shape[1] - 1))
|
| 551 |
+
device = cu_seqlens.device
|
| 552 |
+
position_ids = torch.zeros((batch_size, seq_len), dtype=torch.long, device=device)
|
| 553 |
+
batch_ids, starts, lengths = MossTTSNanoGPT2Model._packed_segments_from_cu_seqlens(
|
| 554 |
+
cu_seqlens,
|
| 555 |
+
num_sequences,
|
| 556 |
+
device,
|
| 557 |
+
)
|
| 558 |
+
if lengths.numel() > 0:
|
| 559 |
+
indices, positions = MossTTSNanoGPT2Model._packed_token_indices(batch_ids, starts, lengths, seq_len)
|
| 560 |
+
position_ids.view(-1).scatter_(0, indices, positions)
|
| 561 |
+
if attention_mask is not None:
|
| 562 |
+
position_ids = position_ids * attention_mask.to(dtype=position_ids.dtype)
|
| 563 |
+
return position_ids
|
| 564 |
+
|
| 565 |
+
@staticmethod
|
| 566 |
+
def build_packed_metadata(
|
| 567 |
+
hidden_states: torch.Tensor,
|
| 568 |
+
cu_seqlens: torch.Tensor,
|
| 569 |
+
num_sequences: Optional[torch.Tensor],
|
| 570 |
+
) -> PackedSequenceMetadata:
|
| 571 |
+
if cu_seqlens.ndim == 1:
|
| 572 |
+
cu_seqlens = cu_seqlens.unsqueeze(0)
|
| 573 |
+
device = hidden_states.device
|
| 574 |
+
seq_len = hidden_states.shape[1]
|
| 575 |
+
batch_ids, starts, lengths = MossTTSNanoGPT2Model._packed_segments_from_cu_seqlens(
|
| 576 |
+
cu_seqlens,
|
| 577 |
+
num_sequences,
|
| 578 |
+
device,
|
| 579 |
+
)
|
| 580 |
+
if lengths.numel() == 0:
|
| 581 |
+
raise ValueError("cu_seqlens did not describe any non-empty packed sequences.")
|
| 582 |
+
|
| 583 |
+
indices, _ = MossTTSNanoGPT2Model._packed_token_indices(batch_ids, starts, lengths, seq_len)
|
| 584 |
+
cumulative = torch.empty(lengths.numel() + 1, dtype=torch.int32, device=device)
|
| 585 |
+
cumulative[0] = 0
|
| 586 |
+
cumulative[1:] = lengths.to(dtype=torch.int32).cumsum(dim=0)
|
| 587 |
+
return PackedSequenceMetadata(
|
| 588 |
+
cu_seqlens=cumulative,
|
| 589 |
+
max_seqlen=int(lengths.max().item()),
|
| 590 |
+
indices=indices,
|
| 591 |
+
batch_size=hidden_states.shape[0],
|
| 592 |
+
seq_len=hidden_states.shape[1],
|
| 593 |
+
)
|
| 594 |
+
|
| 595 |
+
def forward(
|
| 596 |
+
self,
|
| 597 |
+
input_ids: Optional[torch.LongTensor] = None,
|
| 598 |
+
past_key_values: Optional[tuple[tuple[torch.Tensor, torch.Tensor], ...]] = None,
|
| 599 |
+
attention_mask: Optional[torch.Tensor] = None,
|
| 600 |
+
position_ids: Optional[torch.LongTensor] = None,
|
| 601 |
+
inputs_embeds: Optional[torch.FloatTensor] = None,
|
| 602 |
+
use_cache: Optional[bool] = None,
|
| 603 |
+
output_attentions: Optional[bool] = None,
|
| 604 |
+
output_hidden_states: Optional[bool] = None,
|
| 605 |
+
return_dict: bool = True,
|
| 606 |
+
cu_seqlens: Optional[torch.Tensor] = None,
|
| 607 |
+
num_sequences: Optional[torch.Tensor] = None,
|
| 608 |
+
) -> BaseModelOutputWithPast:
|
| 609 |
+
del input_ids, output_attentions
|
| 610 |
+
|
| 611 |
+
if inputs_embeds is None:
|
| 612 |
+
raise ValueError("inputs_embeds must be provided.")
|
| 613 |
+
|
| 614 |
+
use_cache = bool(use_cache)
|
| 615 |
+
if use_cache and cu_seqlens is not None:
|
| 616 |
+
raise ValueError("use_cache=True is not supported together with cu_seqlens packing.")
|
| 617 |
+
|
| 618 |
+
hidden_states = inputs_embeds
|
| 619 |
+
query_attention_mask = None
|
| 620 |
+
if attention_mask is not None:
|
| 621 |
+
attention_mask = attention_mask.to(dtype=torch.bool, device=hidden_states.device)
|
| 622 |
+
query_attention_mask = attention_mask[:, -hidden_states.shape[1] :]
|
| 623 |
+
|
| 624 |
+
packed_metadata = None
|
| 625 |
+
if position_ids is None:
|
| 626 |
+
if cu_seqlens is not None:
|
| 627 |
+
if attention_mask is None:
|
| 628 |
+
raise ValueError("attention_mask must be provided with cu_seqlens packing.")
|
| 629 |
+
position_ids = self.build_packed_position_ids(
|
| 630 |
+
attention_mask=attention_mask,
|
| 631 |
+
cu_seqlens=cu_seqlens.to(device=hidden_states.device),
|
| 632 |
+
num_sequences=num_sequences.to(device=hidden_states.device) if num_sequences is not None else None,
|
| 633 |
+
sequence_length=hidden_states.shape[1],
|
| 634 |
+
)
|
| 635 |
+
elif attention_mask is not None:
|
| 636 |
+
position_ids = attention_mask.long().cumsum(dim=-1) - 1
|
| 637 |
+
position_ids = position_ids.masked_fill(~attention_mask, 0)
|
| 638 |
+
position_ids = position_ids[:, -hidden_states.shape[1] :]
|
| 639 |
+
else:
|
| 640 |
+
past_length = 0
|
| 641 |
+
if past_key_values is not None and len(past_key_values) > 0:
|
| 642 |
+
first_layer_past = past_key_values[0]
|
| 643 |
+
if _is_static_kv_cache_layer(first_layer_past):
|
| 644 |
+
past_length = int(first_layer_past.get("length", 0))
|
| 645 |
+
else:
|
| 646 |
+
past_length = first_layer_past[0].shape[1]
|
| 647 |
+
position_ids = torch.arange(hidden_states.shape[1], device=hidden_states.device, dtype=torch.long)
|
| 648 |
+
position_ids = position_ids + past_length
|
| 649 |
+
position_ids = position_ids.unsqueeze(0).expand(hidden_states.shape[0], -1)
|
| 650 |
+
|
| 651 |
+
if cu_seqlens is not None and self.attn_implementation == "flash_attention_2":
|
| 652 |
+
packed_metadata = self.build_packed_metadata(
|
| 653 |
+
hidden_states=hidden_states,
|
| 654 |
+
cu_seqlens=cu_seqlens.to(device=hidden_states.device),
|
| 655 |
+
num_sequences=num_sequences.to(device=hidden_states.device) if num_sequences is not None else None,
|
| 656 |
+
)
|
| 657 |
+
|
| 658 |
+
if self.position_embedding_type == "absolute":
|
| 659 |
+
hidden_states = hidden_states + self.wpe(position_ids)
|
| 660 |
+
hidden_states = self.drop(hidden_states)
|
| 661 |
+
if query_attention_mask is not None:
|
| 662 |
+
hidden_states = hidden_states * query_attention_mask.unsqueeze(-1).to(dtype=hidden_states.dtype)
|
| 663 |
+
|
| 664 |
+
all_hidden_states = () if output_hidden_states else None
|
| 665 |
+
presents = [] if use_cache else None
|
| 666 |
+
for layer_index, block in enumerate(self.h):
|
| 667 |
+
if output_hidden_states:
|
| 668 |
+
all_hidden_states = all_hidden_states + (hidden_states,)
|
| 669 |
+
|
| 670 |
+
if self.gradient_checkpointing and self.training:
|
| 671 |
+
if use_cache:
|
| 672 |
+
raise ValueError("use_cache=True is not supported when gradient checkpointing is enabled during training.")
|
| 673 |
+
|
| 674 |
+
def custom_forward(*inputs):
|
| 675 |
+
output, _ = block(
|
| 676 |
+
inputs[0],
|
| 677 |
+
attention_mask=inputs[1],
|
| 678 |
+
position_ids=inputs[2],
|
| 679 |
+
packed_metadata=packed_metadata,
|
| 680 |
+
layer_past=None,
|
| 681 |
+
use_cache=False,
|
| 682 |
+
)
|
| 683 |
+
return output
|
| 684 |
+
|
| 685 |
+
hidden_states = torch.utils.checkpoint.checkpoint(
|
| 686 |
+
custom_forward,
|
| 687 |
+
hidden_states,
|
| 688 |
+
attention_mask,
|
| 689 |
+
position_ids,
|
| 690 |
+
use_reentrant=False,
|
| 691 |
+
)
|
| 692 |
+
present = None
|
| 693 |
+
else:
|
| 694 |
+
hidden_states, present = block(
|
| 695 |
+
hidden_states,
|
| 696 |
+
attention_mask=attention_mask,
|
| 697 |
+
position_ids=position_ids,
|
| 698 |
+
packed_metadata=packed_metadata,
|
| 699 |
+
layer_past=None if past_key_values is None else past_key_values[layer_index],
|
| 700 |
+
use_cache=use_cache,
|
| 701 |
+
)
|
| 702 |
+
if query_attention_mask is not None:
|
| 703 |
+
hidden_states = hidden_states * query_attention_mask.unsqueeze(-1).to(dtype=hidden_states.dtype)
|
| 704 |
+
if presents is not None:
|
| 705 |
+
presents.append(present)
|
| 706 |
+
|
| 707 |
+
hidden_states = self.ln_f(hidden_states)
|
| 708 |
+
if query_attention_mask is not None:
|
| 709 |
+
hidden_states = hidden_states * query_attention_mask.unsqueeze(-1).to(dtype=hidden_states.dtype)
|
| 710 |
+
if output_hidden_states:
|
| 711 |
+
all_hidden_states = all_hidden_states + (hidden_states,)
|
| 712 |
+
|
| 713 |
+
if not return_dict:
|
| 714 |
+
return (hidden_states, tuple(presents) if presents is not None else None, all_hidden_states, None)
|
| 715 |
+
|
| 716 |
+
return BaseModelOutputWithPast(
|
| 717 |
+
last_hidden_state=hidden_states,
|
| 718 |
+
past_key_values=tuple(presents) if presents is not None else None,
|
| 719 |
+
hidden_states=all_hidden_states,
|
| 720 |
+
attentions=None,
|
| 721 |
+
)
|
model-00001-of-00003.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:3c8b9d4e555370073a298b34d65927b7956752de969aade484f05544c9d4acaa
|
| 3 |
+
size 3994689160
|
model-00002-of-00003.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a9d4328d7b8a2f7e677f3e9aa35568f14de8f4e0fb7df615fc36adc5cfb8c2a0
|
| 3 |
+
size 3961231200
|
model-00003-of-00003.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b87a011a7f1e37373e5a4489e9dbbffbb298c4760505e94474bfc63f37d1660c
|
| 3 |
+
size 304110936
|
model.safetensors.index.json
ADDED
|
@@ -0,0 +1,433 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"metadata": {
|
| 3 |
+
"total_parameters": 4129990144,
|
| 4 |
+
"total_size": 8259980288
|
| 5 |
+
},
|
| 6 |
+
"weight_map": {
|
| 7 |
+
"audio_embeddings.0.weight": "model-00001-of-00003.safetensors",
|
| 8 |
+
"audio_embeddings.1.weight": "model-00001-of-00003.safetensors",
|
| 9 |
+
"audio_embeddings.10.weight": "model-00001-of-00003.safetensors",
|
| 10 |
+
"audio_embeddings.11.weight": "model-00001-of-00003.safetensors",
|
| 11 |
+
"audio_embeddings.2.weight": "model-00001-of-00003.safetensors",
|
| 12 |
+
"audio_embeddings.3.weight": "model-00001-of-00003.safetensors",
|
| 13 |
+
"audio_embeddings.4.weight": "model-00001-of-00003.safetensors",
|
| 14 |
+
"audio_embeddings.5.weight": "model-00001-of-00003.safetensors",
|
| 15 |
+
"audio_embeddings.6.weight": "model-00001-of-00003.safetensors",
|
| 16 |
+
"audio_embeddings.7.weight": "model-00001-of-00003.safetensors",
|
| 17 |
+
"audio_embeddings.8.weight": "model-00001-of-00003.safetensors",
|
| 18 |
+
"audio_embeddings.9.weight": "model-00001-of-00003.safetensors",
|
| 19 |
+
"local_text_lm_head.weight": "model-00001-of-00003.safetensors",
|
| 20 |
+
"local_transformer.h.0.attn.c_attn.bias": "model-00001-of-00003.safetensors",
|
| 21 |
+
"local_transformer.h.0.attn.c_attn.weight": "model-00001-of-00003.safetensors",
|
| 22 |
+
"local_transformer.h.0.attn.c_proj.bias": "model-00001-of-00003.safetensors",
|
| 23 |
+
"local_transformer.h.0.attn.c_proj.weight": "model-00001-of-00003.safetensors",
|
| 24 |
+
"local_transformer.h.0.ln_1.bias": "model-00001-of-00003.safetensors",
|
| 25 |
+
"local_transformer.h.0.ln_1.weight": "model-00001-of-00003.safetensors",
|
| 26 |
+
"local_transformer.h.0.ln_2.bias": "model-00001-of-00003.safetensors",
|
| 27 |
+
"local_transformer.h.0.ln_2.weight": "model-00001-of-00003.safetensors",
|
| 28 |
+
"local_transformer.h.0.mlp.fc_in.bias": "model-00001-of-00003.safetensors",
|
| 29 |
+
"local_transformer.h.0.mlp.fc_in.weight": "model-00001-of-00003.safetensors",
|
| 30 |
+
"local_transformer.h.0.mlp.fc_out.bias": "model-00001-of-00003.safetensors",
|
| 31 |
+
"local_transformer.h.0.mlp.fc_out.weight": "model-00001-of-00003.safetensors",
|
| 32 |
+
"local_transformer.ln_f.bias": "model-00001-of-00003.safetensors",
|
| 33 |
+
"local_transformer.ln_f.weight": "model-00001-of-00003.safetensors",
|
| 34 |
+
"transformer.embed_tokens.weight": "model-00001-of-00003.safetensors",
|
| 35 |
+
"transformer.layers.0.input_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 36 |
+
"transformer.layers.0.mlp.down_proj.weight": "model-00001-of-00003.safetensors",
|
| 37 |
+
"transformer.layers.0.mlp.gate_proj.weight": "model-00001-of-00003.safetensors",
|
| 38 |
+
"transformer.layers.0.mlp.up_proj.weight": "model-00001-of-00003.safetensors",
|
| 39 |
+
"transformer.layers.0.post_attention_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 40 |
+
"transformer.layers.0.self_attn.k_norm.weight": "model-00001-of-00003.safetensors",
|
| 41 |
+
"transformer.layers.0.self_attn.k_proj.weight": "model-00001-of-00003.safetensors",
|
| 42 |
+
"transformer.layers.0.self_attn.o_proj.weight": "model-00001-of-00003.safetensors",
|
| 43 |
+
"transformer.layers.0.self_attn.q_norm.weight": "model-00001-of-00003.safetensors",
|
| 44 |
+
"transformer.layers.0.self_attn.q_proj.weight": "model-00001-of-00003.safetensors",
|
| 45 |
+
"transformer.layers.0.self_attn.v_proj.weight": "model-00001-of-00003.safetensors",
|
| 46 |
+
"transformer.layers.1.input_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 47 |
+
"transformer.layers.1.mlp.down_proj.weight": "model-00001-of-00003.safetensors",
|
| 48 |
+
"transformer.layers.1.mlp.gate_proj.weight": "model-00001-of-00003.safetensors",
|
| 49 |
+
"transformer.layers.1.mlp.up_proj.weight": "model-00001-of-00003.safetensors",
|
| 50 |
+
"transformer.layers.1.post_attention_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 51 |
+
"transformer.layers.1.self_attn.k_norm.weight": "model-00001-of-00003.safetensors",
|
| 52 |
+
"transformer.layers.1.self_attn.k_proj.weight": "model-00001-of-00003.safetensors",
|
| 53 |
+
"transformer.layers.1.self_attn.o_proj.weight": "model-00001-of-00003.safetensors",
|
| 54 |
+
"transformer.layers.1.self_attn.q_norm.weight": "model-00001-of-00003.safetensors",
|
| 55 |
+
"transformer.layers.1.self_attn.q_proj.weight": "model-00001-of-00003.safetensors",
|
| 56 |
+
"transformer.layers.1.self_attn.v_proj.weight": "model-00001-of-00003.safetensors",
|
| 57 |
+
"transformer.layers.10.input_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 58 |
+
"transformer.layers.10.mlp.down_proj.weight": "model-00001-of-00003.safetensors",
|
| 59 |
+
"transformer.layers.10.mlp.gate_proj.weight": "model-00001-of-00003.safetensors",
|
| 60 |
+
"transformer.layers.10.mlp.up_proj.weight": "model-00001-of-00003.safetensors",
|
| 61 |
+
"transformer.layers.10.post_attention_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 62 |
+
"transformer.layers.10.self_attn.k_norm.weight": "model-00001-of-00003.safetensors",
|
| 63 |
+
"transformer.layers.10.self_attn.k_proj.weight": "model-00001-of-00003.safetensors",
|
| 64 |
+
"transformer.layers.10.self_attn.o_proj.weight": "model-00001-of-00003.safetensors",
|
| 65 |
+
"transformer.layers.10.self_attn.q_norm.weight": "model-00001-of-00003.safetensors",
|
| 66 |
+
"transformer.layers.10.self_attn.q_proj.weight": "model-00001-of-00003.safetensors",
|
| 67 |
+
"transformer.layers.10.self_attn.v_proj.weight": "model-00001-of-00003.safetensors",
|
| 68 |
+
"transformer.layers.11.input_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 69 |
+
"transformer.layers.11.mlp.down_proj.weight": "model-00001-of-00003.safetensors",
|
| 70 |
+
"transformer.layers.11.mlp.gate_proj.weight": "model-00001-of-00003.safetensors",
|
| 71 |
+
"transformer.layers.11.mlp.up_proj.weight": "model-00001-of-00003.safetensors",
|
| 72 |
+
"transformer.layers.11.post_attention_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 73 |
+
"transformer.layers.11.self_attn.k_norm.weight": "model-00001-of-00003.safetensors",
|
| 74 |
+
"transformer.layers.11.self_attn.k_proj.weight": "model-00001-of-00003.safetensors",
|
| 75 |
+
"transformer.layers.11.self_attn.o_proj.weight": "model-00001-of-00003.safetensors",
|
| 76 |
+
"transformer.layers.11.self_attn.q_norm.weight": "model-00001-of-00003.safetensors",
|
| 77 |
+
"transformer.layers.11.self_attn.q_proj.weight": "model-00001-of-00003.safetensors",
|
| 78 |
+
"transformer.layers.11.self_attn.v_proj.weight": "model-00001-of-00003.safetensors",
|
| 79 |
+
"transformer.layers.12.input_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 80 |
+
"transformer.layers.12.mlp.down_proj.weight": "model-00001-of-00003.safetensors",
|
| 81 |
+
"transformer.layers.12.mlp.gate_proj.weight": "model-00001-of-00003.safetensors",
|
| 82 |
+
"transformer.layers.12.mlp.up_proj.weight": "model-00001-of-00003.safetensors",
|
| 83 |
+
"transformer.layers.12.post_attention_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 84 |
+
"transformer.layers.12.self_attn.k_norm.weight": "model-00001-of-00003.safetensors",
|
| 85 |
+
"transformer.layers.12.self_attn.k_proj.weight": "model-00001-of-00003.safetensors",
|
| 86 |
+
"transformer.layers.12.self_attn.o_proj.weight": "model-00001-of-00003.safetensors",
|
| 87 |
+
"transformer.layers.12.self_attn.q_norm.weight": "model-00001-of-00003.safetensors",
|
| 88 |
+
"transformer.layers.12.self_attn.q_proj.weight": "model-00001-of-00003.safetensors",
|
| 89 |
+
"transformer.layers.12.self_attn.v_proj.weight": "model-00001-of-00003.safetensors",
|
| 90 |
+
"transformer.layers.13.input_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 91 |
+
"transformer.layers.13.mlp.down_proj.weight": "model-00001-of-00003.safetensors",
|
| 92 |
+
"transformer.layers.13.mlp.gate_proj.weight": "model-00001-of-00003.safetensors",
|
| 93 |
+
"transformer.layers.13.mlp.up_proj.weight": "model-00001-of-00003.safetensors",
|
| 94 |
+
"transformer.layers.13.post_attention_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 95 |
+
"transformer.layers.13.self_attn.k_norm.weight": "model-00001-of-00003.safetensors",
|
| 96 |
+
"transformer.layers.13.self_attn.k_proj.weight": "model-00001-of-00003.safetensors",
|
| 97 |
+
"transformer.layers.13.self_attn.o_proj.weight": "model-00001-of-00003.safetensors",
|
| 98 |
+
"transformer.layers.13.self_attn.q_norm.weight": "model-00001-of-00003.safetensors",
|
| 99 |
+
"transformer.layers.13.self_attn.q_proj.weight": "model-00001-of-00003.safetensors",
|
| 100 |
+
"transformer.layers.13.self_attn.v_proj.weight": "model-00001-of-00003.safetensors",
|
| 101 |
+
"transformer.layers.14.input_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 102 |
+
"transformer.layers.14.mlp.down_proj.weight": "model-00001-of-00003.safetensors",
|
| 103 |
+
"transformer.layers.14.mlp.gate_proj.weight": "model-00001-of-00003.safetensors",
|
| 104 |
+
"transformer.layers.14.mlp.up_proj.weight": "model-00001-of-00003.safetensors",
|
| 105 |
+
"transformer.layers.14.post_attention_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 106 |
+
"transformer.layers.14.self_attn.k_norm.weight": "model-00001-of-00003.safetensors",
|
| 107 |
+
"transformer.layers.14.self_attn.k_proj.weight": "model-00001-of-00003.safetensors",
|
| 108 |
+
"transformer.layers.14.self_attn.o_proj.weight": "model-00001-of-00003.safetensors",
|
| 109 |
+
"transformer.layers.14.self_attn.q_norm.weight": "model-00001-of-00003.safetensors",
|
| 110 |
+
"transformer.layers.14.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 111 |
+
"transformer.layers.14.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 112 |
+
"transformer.layers.15.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 113 |
+
"transformer.layers.15.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 114 |
+
"transformer.layers.15.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 115 |
+
"transformer.layers.15.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 116 |
+
"transformer.layers.15.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 117 |
+
"transformer.layers.15.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 118 |
+
"transformer.layers.15.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 119 |
+
"transformer.layers.15.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 120 |
+
"transformer.layers.15.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 121 |
+
"transformer.layers.15.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 122 |
+
"transformer.layers.15.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 123 |
+
"transformer.layers.16.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 124 |
+
"transformer.layers.16.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 125 |
+
"transformer.layers.16.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 126 |
+
"transformer.layers.16.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 127 |
+
"transformer.layers.16.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 128 |
+
"transformer.layers.16.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 129 |
+
"transformer.layers.16.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 130 |
+
"transformer.layers.16.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 131 |
+
"transformer.layers.16.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 132 |
+
"transformer.layers.16.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 133 |
+
"transformer.layers.16.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 134 |
+
"transformer.layers.17.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 135 |
+
"transformer.layers.17.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 136 |
+
"transformer.layers.17.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 137 |
+
"transformer.layers.17.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 138 |
+
"transformer.layers.17.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 139 |
+
"transformer.layers.17.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 140 |
+
"transformer.layers.17.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 141 |
+
"transformer.layers.17.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 142 |
+
"transformer.layers.17.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 143 |
+
"transformer.layers.17.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 144 |
+
"transformer.layers.17.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 145 |
+
"transformer.layers.18.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 146 |
+
"transformer.layers.18.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 147 |
+
"transformer.layers.18.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 148 |
+
"transformer.layers.18.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 149 |
+
"transformer.layers.18.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 150 |
+
"transformer.layers.18.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 151 |
+
"transformer.layers.18.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 152 |
+
"transformer.layers.18.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 153 |
+
"transformer.layers.18.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 154 |
+
"transformer.layers.18.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 155 |
+
"transformer.layers.18.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 156 |
+
"transformer.layers.19.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 157 |
+
"transformer.layers.19.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 158 |
+
"transformer.layers.19.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 159 |
+
"transformer.layers.19.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 160 |
+
"transformer.layers.19.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 161 |
+
"transformer.layers.19.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 162 |
+
"transformer.layers.19.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 163 |
+
"transformer.layers.19.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 164 |
+
"transformer.layers.19.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 165 |
+
"transformer.layers.19.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 166 |
+
"transformer.layers.19.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 167 |
+
"transformer.layers.2.input_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 168 |
+
"transformer.layers.2.mlp.down_proj.weight": "model-00001-of-00003.safetensors",
|
| 169 |
+
"transformer.layers.2.mlp.gate_proj.weight": "model-00001-of-00003.safetensors",
|
| 170 |
+
"transformer.layers.2.mlp.up_proj.weight": "model-00001-of-00003.safetensors",
|
| 171 |
+
"transformer.layers.2.post_attention_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 172 |
+
"transformer.layers.2.self_attn.k_norm.weight": "model-00001-of-00003.safetensors",
|
| 173 |
+
"transformer.layers.2.self_attn.k_proj.weight": "model-00001-of-00003.safetensors",
|
| 174 |
+
"transformer.layers.2.self_attn.o_proj.weight": "model-00001-of-00003.safetensors",
|
| 175 |
+
"transformer.layers.2.self_attn.q_norm.weight": "model-00001-of-00003.safetensors",
|
| 176 |
+
"transformer.layers.2.self_attn.q_proj.weight": "model-00001-of-00003.safetensors",
|
| 177 |
+
"transformer.layers.2.self_attn.v_proj.weight": "model-00001-of-00003.safetensors",
|
| 178 |
+
"transformer.layers.20.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 179 |
+
"transformer.layers.20.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 180 |
+
"transformer.layers.20.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 181 |
+
"transformer.layers.20.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 182 |
+
"transformer.layers.20.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 183 |
+
"transformer.layers.20.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 184 |
+
"transformer.layers.20.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 185 |
+
"transformer.layers.20.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 186 |
+
"transformer.layers.20.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 187 |
+
"transformer.layers.20.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 188 |
+
"transformer.layers.20.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 189 |
+
"transformer.layers.21.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 190 |
+
"transformer.layers.21.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 191 |
+
"transformer.layers.21.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 192 |
+
"transformer.layers.21.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 193 |
+
"transformer.layers.21.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 194 |
+
"transformer.layers.21.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 195 |
+
"transformer.layers.21.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 196 |
+
"transformer.layers.21.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 197 |
+
"transformer.layers.21.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 198 |
+
"transformer.layers.21.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 199 |
+
"transformer.layers.21.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 200 |
+
"transformer.layers.22.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 201 |
+
"transformer.layers.22.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 202 |
+
"transformer.layers.22.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 203 |
+
"transformer.layers.22.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 204 |
+
"transformer.layers.22.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 205 |
+
"transformer.layers.22.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 206 |
+
"transformer.layers.22.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 207 |
+
"transformer.layers.22.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 208 |
+
"transformer.layers.22.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 209 |
+
"transformer.layers.22.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 210 |
+
"transformer.layers.22.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 211 |
+
"transformer.layers.23.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 212 |
+
"transformer.layers.23.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 213 |
+
"transformer.layers.23.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 214 |
+
"transformer.layers.23.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 215 |
+
"transformer.layers.23.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 216 |
+
"transformer.layers.23.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 217 |
+
"transformer.layers.23.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 218 |
+
"transformer.layers.23.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 219 |
+
"transformer.layers.23.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 220 |
+
"transformer.layers.23.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 221 |
+
"transformer.layers.23.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 222 |
+
"transformer.layers.24.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 223 |
+
"transformer.layers.24.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 224 |
+
"transformer.layers.24.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 225 |
+
"transformer.layers.24.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 226 |
+
"transformer.layers.24.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 227 |
+
"transformer.layers.24.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 228 |
+
"transformer.layers.24.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 229 |
+
"transformer.layers.24.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 230 |
+
"transformer.layers.24.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 231 |
+
"transformer.layers.24.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 232 |
+
"transformer.layers.24.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 233 |
+
"transformer.layers.25.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 234 |
+
"transformer.layers.25.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 235 |
+
"transformer.layers.25.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 236 |
+
"transformer.layers.25.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 237 |
+
"transformer.layers.25.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 238 |
+
"transformer.layers.25.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 239 |
+
"transformer.layers.25.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 240 |
+
"transformer.layers.25.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 241 |
+
"transformer.layers.25.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 242 |
+
"transformer.layers.25.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 243 |
+
"transformer.layers.25.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 244 |
+
"transformer.layers.26.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 245 |
+
"transformer.layers.26.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 246 |
+
"transformer.layers.26.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 247 |
+
"transformer.layers.26.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 248 |
+
"transformer.layers.26.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 249 |
+
"transformer.layers.26.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 250 |
+
"transformer.layers.26.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 251 |
+
"transformer.layers.26.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 252 |
+
"transformer.layers.26.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 253 |
+
"transformer.layers.26.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 254 |
+
"transformer.layers.26.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 255 |
+
"transformer.layers.27.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 256 |
+
"transformer.layers.27.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 257 |
+
"transformer.layers.27.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 258 |
+
"transformer.layers.27.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 259 |
+
"transformer.layers.27.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 260 |
+
"transformer.layers.27.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 261 |
+
"transformer.layers.27.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 262 |
+
"transformer.layers.27.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 263 |
+
"transformer.layers.27.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 264 |
+
"transformer.layers.27.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 265 |
+
"transformer.layers.27.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 266 |
+
"transformer.layers.28.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 267 |
+
"transformer.layers.28.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 268 |
+
"transformer.layers.28.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 269 |
+
"transformer.layers.28.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 270 |
+
"transformer.layers.28.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 271 |
+
"transformer.layers.28.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 272 |
+
"transformer.layers.28.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 273 |
+
"transformer.layers.28.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 274 |
+
"transformer.layers.28.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 275 |
+
"transformer.layers.28.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 276 |
+
"transformer.layers.28.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 277 |
+
"transformer.layers.29.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 278 |
+
"transformer.layers.29.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 279 |
+
"transformer.layers.29.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 280 |
+
"transformer.layers.29.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 281 |
+
"transformer.layers.29.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 282 |
+
"transformer.layers.29.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 283 |
+
"transformer.layers.29.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 284 |
+
"transformer.layers.29.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 285 |
+
"transformer.layers.29.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 286 |
+
"transformer.layers.29.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 287 |
+
"transformer.layers.29.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 288 |
+
"transformer.layers.3.input_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 289 |
+
"transformer.layers.3.mlp.down_proj.weight": "model-00001-of-00003.safetensors",
|
| 290 |
+
"transformer.layers.3.mlp.gate_proj.weight": "model-00001-of-00003.safetensors",
|
| 291 |
+
"transformer.layers.3.mlp.up_proj.weight": "model-00001-of-00003.safetensors",
|
| 292 |
+
"transformer.layers.3.post_attention_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 293 |
+
"transformer.layers.3.self_attn.k_norm.weight": "model-00001-of-00003.safetensors",
|
| 294 |
+
"transformer.layers.3.self_attn.k_proj.weight": "model-00001-of-00003.safetensors",
|
| 295 |
+
"transformer.layers.3.self_attn.o_proj.weight": "model-00001-of-00003.safetensors",
|
| 296 |
+
"transformer.layers.3.self_attn.q_norm.weight": "model-00001-of-00003.safetensors",
|
| 297 |
+
"transformer.layers.3.self_attn.q_proj.weight": "model-00001-of-00003.safetensors",
|
| 298 |
+
"transformer.layers.3.self_attn.v_proj.weight": "model-00001-of-00003.safetensors",
|
| 299 |
+
"transformer.layers.30.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 300 |
+
"transformer.layers.30.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 301 |
+
"transformer.layers.30.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 302 |
+
"transformer.layers.30.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 303 |
+
"transformer.layers.30.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 304 |
+
"transformer.layers.30.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 305 |
+
"transformer.layers.30.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 306 |
+
"transformer.layers.30.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 307 |
+
"transformer.layers.30.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 308 |
+
"transformer.layers.30.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 309 |
+
"transformer.layers.30.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 310 |
+
"transformer.layers.31.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 311 |
+
"transformer.layers.31.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 312 |
+
"transformer.layers.31.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 313 |
+
"transformer.layers.31.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 314 |
+
"transformer.layers.31.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 315 |
+
"transformer.layers.31.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 316 |
+
"transformer.layers.31.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 317 |
+
"transformer.layers.31.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 318 |
+
"transformer.layers.31.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 319 |
+
"transformer.layers.31.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 320 |
+
"transformer.layers.31.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 321 |
+
"transformer.layers.32.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 322 |
+
"transformer.layers.32.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 323 |
+
"transformer.layers.32.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 324 |
+
"transformer.layers.32.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 325 |
+
"transformer.layers.32.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 326 |
+
"transformer.layers.32.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 327 |
+
"transformer.layers.32.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 328 |
+
"transformer.layers.32.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 329 |
+
"transformer.layers.32.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 330 |
+
"transformer.layers.32.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 331 |
+
"transformer.layers.32.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 332 |
+
"transformer.layers.33.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 333 |
+
"transformer.layers.33.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 334 |
+
"transformer.layers.33.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 335 |
+
"transformer.layers.33.mlp.up_proj.weight": "model-00002-of-00003.safetensors",
|
| 336 |
+
"transformer.layers.33.post_attention_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 337 |
+
"transformer.layers.33.self_attn.k_norm.weight": "model-00002-of-00003.safetensors",
|
| 338 |
+
"transformer.layers.33.self_attn.k_proj.weight": "model-00002-of-00003.safetensors",
|
| 339 |
+
"transformer.layers.33.self_attn.o_proj.weight": "model-00002-of-00003.safetensors",
|
| 340 |
+
"transformer.layers.33.self_attn.q_norm.weight": "model-00002-of-00003.safetensors",
|
| 341 |
+
"transformer.layers.33.self_attn.q_proj.weight": "model-00002-of-00003.safetensors",
|
| 342 |
+
"transformer.layers.33.self_attn.v_proj.weight": "model-00002-of-00003.safetensors",
|
| 343 |
+
"transformer.layers.34.input_layernorm.weight": "model-00002-of-00003.safetensors",
|
| 344 |
+
"transformer.layers.34.mlp.down_proj.weight": "model-00002-of-00003.safetensors",
|
| 345 |
+
"transformer.layers.34.mlp.gate_proj.weight": "model-00002-of-00003.safetensors",
|
| 346 |
+
"transformer.layers.34.mlp.up_proj.weight": "model-00003-of-00003.safetensors",
|
| 347 |
+
"transformer.layers.34.post_attention_layernorm.weight": "model-00003-of-00003.safetensors",
|
| 348 |
+
"transformer.layers.34.self_attn.k_norm.weight": "model-00003-of-00003.safetensors",
|
| 349 |
+
"transformer.layers.34.self_attn.k_proj.weight": "model-00003-of-00003.safetensors",
|
| 350 |
+
"transformer.layers.34.self_attn.o_proj.weight": "model-00003-of-00003.safetensors",
|
| 351 |
+
"transformer.layers.34.self_attn.q_norm.weight": "model-00003-of-00003.safetensors",
|
| 352 |
+
"transformer.layers.34.self_attn.q_proj.weight": "model-00003-of-00003.safetensors",
|
| 353 |
+
"transformer.layers.34.self_attn.v_proj.weight": "model-00003-of-00003.safetensors",
|
| 354 |
+
"transformer.layers.35.input_layernorm.weight": "model-00003-of-00003.safetensors",
|
| 355 |
+
"transformer.layers.35.mlp.down_proj.weight": "model-00003-of-00003.safetensors",
|
| 356 |
+
"transformer.layers.35.mlp.gate_proj.weight": "model-00003-of-00003.safetensors",
|
| 357 |
+
"transformer.layers.35.mlp.up_proj.weight": "model-00003-of-00003.safetensors",
|
| 358 |
+
"transformer.layers.35.post_attention_layernorm.weight": "model-00003-of-00003.safetensors",
|
| 359 |
+
"transformer.layers.35.self_attn.k_norm.weight": "model-00003-of-00003.safetensors",
|
| 360 |
+
"transformer.layers.35.self_attn.k_proj.weight": "model-00003-of-00003.safetensors",
|
| 361 |
+
"transformer.layers.35.self_attn.o_proj.weight": "model-00003-of-00003.safetensors",
|
| 362 |
+
"transformer.layers.35.self_attn.q_norm.weight": "model-00003-of-00003.safetensors",
|
| 363 |
+
"transformer.layers.35.self_attn.q_proj.weight": "model-00003-of-00003.safetensors",
|
| 364 |
+
"transformer.layers.35.self_attn.v_proj.weight": "model-00003-of-00003.safetensors",
|
| 365 |
+
"transformer.layers.4.input_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 366 |
+
"transformer.layers.4.mlp.down_proj.weight": "model-00001-of-00003.safetensors",
|
| 367 |
+
"transformer.layers.4.mlp.gate_proj.weight": "model-00001-of-00003.safetensors",
|
| 368 |
+
"transformer.layers.4.mlp.up_proj.weight": "model-00001-of-00003.safetensors",
|
| 369 |
+
"transformer.layers.4.post_attention_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 370 |
+
"transformer.layers.4.self_attn.k_norm.weight": "model-00001-of-00003.safetensors",
|
| 371 |
+
"transformer.layers.4.self_attn.k_proj.weight": "model-00001-of-00003.safetensors",
|
| 372 |
+
"transformer.layers.4.self_attn.o_proj.weight": "model-00001-of-00003.safetensors",
|
| 373 |
+
"transformer.layers.4.self_attn.q_norm.weight": "model-00001-of-00003.safetensors",
|
| 374 |
+
"transformer.layers.4.self_attn.q_proj.weight": "model-00001-of-00003.safetensors",
|
| 375 |
+
"transformer.layers.4.self_attn.v_proj.weight": "model-00001-of-00003.safetensors",
|
| 376 |
+
"transformer.layers.5.input_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 377 |
+
"transformer.layers.5.mlp.down_proj.weight": "model-00001-of-00003.safetensors",
|
| 378 |
+
"transformer.layers.5.mlp.gate_proj.weight": "model-00001-of-00003.safetensors",
|
| 379 |
+
"transformer.layers.5.mlp.up_proj.weight": "model-00001-of-00003.safetensors",
|
| 380 |
+
"transformer.layers.5.post_attention_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 381 |
+
"transformer.layers.5.self_attn.k_norm.weight": "model-00001-of-00003.safetensors",
|
| 382 |
+
"transformer.layers.5.self_attn.k_proj.weight": "model-00001-of-00003.safetensors",
|
| 383 |
+
"transformer.layers.5.self_attn.o_proj.weight": "model-00001-of-00003.safetensors",
|
| 384 |
+
"transformer.layers.5.self_attn.q_norm.weight": "model-00001-of-00003.safetensors",
|
| 385 |
+
"transformer.layers.5.self_attn.q_proj.weight": "model-00001-of-00003.safetensors",
|
| 386 |
+
"transformer.layers.5.self_attn.v_proj.weight": "model-00001-of-00003.safetensors",
|
| 387 |
+
"transformer.layers.6.input_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 388 |
+
"transformer.layers.6.mlp.down_proj.weight": "model-00001-of-00003.safetensors",
|
| 389 |
+
"transformer.layers.6.mlp.gate_proj.weight": "model-00001-of-00003.safetensors",
|
| 390 |
+
"transformer.layers.6.mlp.up_proj.weight": "model-00001-of-00003.safetensors",
|
| 391 |
+
"transformer.layers.6.post_attention_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 392 |
+
"transformer.layers.6.self_attn.k_norm.weight": "model-00001-of-00003.safetensors",
|
| 393 |
+
"transformer.layers.6.self_attn.k_proj.weight": "model-00001-of-00003.safetensors",
|
| 394 |
+
"transformer.layers.6.self_attn.o_proj.weight": "model-00001-of-00003.safetensors",
|
| 395 |
+
"transformer.layers.6.self_attn.q_norm.weight": "model-00001-of-00003.safetensors",
|
| 396 |
+
"transformer.layers.6.self_attn.q_proj.weight": "model-00001-of-00003.safetensors",
|
| 397 |
+
"transformer.layers.6.self_attn.v_proj.weight": "model-00001-of-00003.safetensors",
|
| 398 |
+
"transformer.layers.7.input_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 399 |
+
"transformer.layers.7.mlp.down_proj.weight": "model-00001-of-00003.safetensors",
|
| 400 |
+
"transformer.layers.7.mlp.gate_proj.weight": "model-00001-of-00003.safetensors",
|
| 401 |
+
"transformer.layers.7.mlp.up_proj.weight": "model-00001-of-00003.safetensors",
|
| 402 |
+
"transformer.layers.7.post_attention_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 403 |
+
"transformer.layers.7.self_attn.k_norm.weight": "model-00001-of-00003.safetensors",
|
| 404 |
+
"transformer.layers.7.self_attn.k_proj.weight": "model-00001-of-00003.safetensors",
|
| 405 |
+
"transformer.layers.7.self_attn.o_proj.weight": "model-00001-of-00003.safetensors",
|
| 406 |
+
"transformer.layers.7.self_attn.q_norm.weight": "model-00001-of-00003.safetensors",
|
| 407 |
+
"transformer.layers.7.self_attn.q_proj.weight": "model-00001-of-00003.safetensors",
|
| 408 |
+
"transformer.layers.7.self_attn.v_proj.weight": "model-00001-of-00003.safetensors",
|
| 409 |
+
"transformer.layers.8.input_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 410 |
+
"transformer.layers.8.mlp.down_proj.weight": "model-00001-of-00003.safetensors",
|
| 411 |
+
"transformer.layers.8.mlp.gate_proj.weight": "model-00001-of-00003.safetensors",
|
| 412 |
+
"transformer.layers.8.mlp.up_proj.weight": "model-00001-of-00003.safetensors",
|
| 413 |
+
"transformer.layers.8.post_attention_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 414 |
+
"transformer.layers.8.self_attn.k_norm.weight": "model-00001-of-00003.safetensors",
|
| 415 |
+
"transformer.layers.8.self_attn.k_proj.weight": "model-00001-of-00003.safetensors",
|
| 416 |
+
"transformer.layers.8.self_attn.o_proj.weight": "model-00001-of-00003.safetensors",
|
| 417 |
+
"transformer.layers.8.self_attn.q_norm.weight": "model-00001-of-00003.safetensors",
|
| 418 |
+
"transformer.layers.8.self_attn.q_proj.weight": "model-00001-of-00003.safetensors",
|
| 419 |
+
"transformer.layers.8.self_attn.v_proj.weight": "model-00001-of-00003.safetensors",
|
| 420 |
+
"transformer.layers.9.input_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 421 |
+
"transformer.layers.9.mlp.down_proj.weight": "model-00001-of-00003.safetensors",
|
| 422 |
+
"transformer.layers.9.mlp.gate_proj.weight": "model-00001-of-00003.safetensors",
|
| 423 |
+
"transformer.layers.9.mlp.up_proj.weight": "model-00001-of-00003.safetensors",
|
| 424 |
+
"transformer.layers.9.post_attention_layernorm.weight": "model-00001-of-00003.safetensors",
|
| 425 |
+
"transformer.layers.9.self_attn.k_norm.weight": "model-00001-of-00003.safetensors",
|
| 426 |
+
"transformer.layers.9.self_attn.k_proj.weight": "model-00001-of-00003.safetensors",
|
| 427 |
+
"transformer.layers.9.self_attn.o_proj.weight": "model-00001-of-00003.safetensors",
|
| 428 |
+
"transformer.layers.9.self_attn.q_norm.weight": "model-00001-of-00003.safetensors",
|
| 429 |
+
"transformer.layers.9.self_attn.q_proj.weight": "model-00001-of-00003.safetensors",
|
| 430 |
+
"transformer.layers.9.self_attn.v_proj.weight": "model-00001-of-00003.safetensors",
|
| 431 |
+
"transformer.norm.weight": "model-00003-of-00003.safetensors"
|
| 432 |
+
}
|
| 433 |
+
}
|
modeling_moss_tts.py
ADDED
|
@@ -0,0 +1,623 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# coding=utf-8
|
| 2 |
+
"""Modeling code for the MOSS-TTS-Local-Transformer-v1.5 HuggingFace release."""
|
| 3 |
+
|
| 4 |
+
from __future__ import annotations
|
| 5 |
+
|
| 6 |
+
from dataclasses import dataclass
|
| 7 |
+
from typing import Any, Optional, Union
|
| 8 |
+
|
| 9 |
+
import torch
|
| 10 |
+
import torch.nn as nn
|
| 11 |
+
from transformers.modeling_outputs import BaseModelOutputWithPast
|
| 12 |
+
from transformers.modeling_utils import PreTrainedModel
|
| 13 |
+
from transformers.models.gpt2.configuration_gpt2 import GPT2Config
|
| 14 |
+
from transformers.utils import ModelOutput
|
| 15 |
+
|
| 16 |
+
from .configuration_moss_tts import MossTTSLocalConfig
|
| 17 |
+
from .gpt2_decoder import MossTTSNanoGPT2Model
|
| 18 |
+
from .qwen3_decoder import MossQwen3Model
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
@dataclass
|
| 22 |
+
class MossTTSLocalOutput(ModelOutput):
|
| 23 |
+
last_hidden_state: Optional[torch.FloatTensor] = None
|
| 24 |
+
past_key_values: Optional[tuple[tuple[torch.Tensor, torch.Tensor], ...]] = None
|
| 25 |
+
hidden_states: Optional[tuple[torch.FloatTensor, ...]] = None
|
| 26 |
+
attentions: Optional[tuple[torch.FloatTensor, ...]] = None
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
def _find_last_equal(input_ids: torch.LongTensor, value: int) -> torch.LongTensor:
|
| 30 |
+
matches = input_ids.eq(int(value))
|
| 31 |
+
if not bool(matches.any(dim=1).all().item()):
|
| 32 |
+
raise ValueError(f"Every sample must contain token id {int(value)}.")
|
| 33 |
+
positions = torch.arange(input_ids.shape[1], device=input_ids.device, dtype=torch.long)
|
| 34 |
+
masked_positions = positions.unsqueeze(0).masked_fill(~matches, -1)
|
| 35 |
+
return masked_positions.max(dim=1).values
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
class MossTTSLocalPreTrainedModel(PreTrainedModel):
|
| 39 |
+
config_class = MossTTSLocalConfig
|
| 40 |
+
base_model_prefix = "transformer"
|
| 41 |
+
supports_gradient_checkpointing = True
|
| 42 |
+
_no_split_modules = ["MossTTSNanoGPT2Block", "MossQwen3DecoderLayer"]
|
| 43 |
+
_supports_flash_attn_2 = True
|
| 44 |
+
_supports_sdpa = True
|
| 45 |
+
_supports_cache_class = True
|
| 46 |
+
|
| 47 |
+
def _set_gradient_checkpointing(self, module: nn.Module, value: bool = False) -> None:
|
| 48 |
+
if isinstance(module, MossTTSNanoGPT2Model) or isinstance(module, MossQwen3Model):
|
| 49 |
+
module.gradient_checkpointing = value
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
class MossTTSLocalModel(MossTTSLocalPreTrainedModel):
|
| 53 |
+
_tied_weights_keys = None
|
| 54 |
+
|
| 55 |
+
def __init__(self, config: MossTTSLocalConfig) -> None:
|
| 56 |
+
super().__init__(config)
|
| 57 |
+
self._tied_weights_keys = self._build_tied_weights_keys(config)
|
| 58 |
+
|
| 59 |
+
config.qwen3_config.pad_token_id = config.pad_token_id
|
| 60 |
+
config.qwen3_config._attn_implementation = config.attn_implementation
|
| 61 |
+
local_gpt2_config = config.gpt2_config.to_dict()
|
| 62 |
+
local_gpt2_config["n_layer"] = int(getattr(config, "local_transformer_layers", config.gpt2_config.n_layer))
|
| 63 |
+
local_gpt2_config["n_positions"] = int(config.n_vq) + 1
|
| 64 |
+
local_gpt2_config["n_ctx"] = int(config.n_vq) + 1
|
| 65 |
+
local_gpt2_config = GPT2Config(**local_gpt2_config)
|
| 66 |
+
local_gpt2_config.pad_token_id = config.pad_token_id
|
| 67 |
+
local_gpt2_config._attn_implementation = config.local_transformer_attn_implementation
|
| 68 |
+
|
| 69 |
+
self.transformer = MossQwen3Model(config.qwen3_config)
|
| 70 |
+
self.local_transformer = MossTTSNanoGPT2Model(
|
| 71 |
+
local_gpt2_config,
|
| 72 |
+
attn_implementation=config.local_transformer_attn_implementation,
|
| 73 |
+
)
|
| 74 |
+
self.local_transformer.wte = nn.Identity()
|
| 75 |
+
|
| 76 |
+
hidden_size = int(config.hidden_size)
|
| 77 |
+
self.audio_embeddings = nn.ModuleList(
|
| 78 |
+
[
|
| 79 |
+
nn.Embedding(int(config.audio_codebook_sizes[index]), hidden_size)
|
| 80 |
+
for index in range(config.n_vq)
|
| 81 |
+
]
|
| 82 |
+
)
|
| 83 |
+
self.text_lm_head = nn.Linear(hidden_size, int(config.vocab_size), bias=False)
|
| 84 |
+
self.audio_lm_heads = nn.ModuleList(
|
| 85 |
+
[
|
| 86 |
+
nn.Linear(hidden_size, int(config.audio_codebook_sizes[index]), bias=False)
|
| 87 |
+
for index in range(config.n_vq)
|
| 88 |
+
]
|
| 89 |
+
)
|
| 90 |
+
self.local_text_lm_head = (
|
| 91 |
+
nn.Linear(hidden_size, 2, bias=False)
|
| 92 |
+
if self._use_binary_local_text_head()
|
| 93 |
+
else None
|
| 94 |
+
)
|
| 95 |
+
|
| 96 |
+
self.post_init()
|
| 97 |
+
self.tie_weights()
|
| 98 |
+
self.initialize_local_text_lm_head_from_text_lm_head()
|
| 99 |
+
|
| 100 |
+
def can_generate(self) -> bool:
|
| 101 |
+
return True
|
| 102 |
+
|
| 103 |
+
@staticmethod
|
| 104 |
+
def _build_tied_weights_keys(config: MossTTSLocalConfig) -> dict[str, str]:
|
| 105 |
+
tied_weights = {"text_lm_head.weight": "transformer.embed_tokens.weight"}
|
| 106 |
+
tied_weights.update(
|
| 107 |
+
{
|
| 108 |
+
f"audio_lm_heads.{index}.weight": f"audio_embeddings.{index}.weight"
|
| 109 |
+
for index in range(config.n_vq)
|
| 110 |
+
}
|
| 111 |
+
)
|
| 112 |
+
return tied_weights
|
| 113 |
+
|
| 114 |
+
def tie_weights(self, *args, **kwargs) -> None:
|
| 115 |
+
del args, kwargs
|
| 116 |
+
self.text_lm_head.weight = self.transformer.embed_tokens.weight
|
| 117 |
+
for embedding, head in zip(self.audio_embeddings, self.audio_lm_heads):
|
| 118 |
+
head.weight = embedding.weight
|
| 119 |
+
|
| 120 |
+
def get_input_embeddings(self) -> nn.Embedding:
|
| 121 |
+
return self.transformer.embed_tokens
|
| 122 |
+
|
| 123 |
+
def set_input_embeddings(self, value: nn.Embedding) -> None:
|
| 124 |
+
self.transformer.embed_tokens = value
|
| 125 |
+
self.tie_weights()
|
| 126 |
+
self.initialize_local_text_lm_head_from_text_lm_head()
|
| 127 |
+
|
| 128 |
+
def get_output_embeddings(self) -> nn.Linear:
|
| 129 |
+
return self.text_lm_head
|
| 130 |
+
|
| 131 |
+
def set_output_embeddings(self, new_embeddings: nn.Linear) -> None:
|
| 132 |
+
self.text_lm_head = new_embeddings
|
| 133 |
+
self.tie_weights()
|
| 134 |
+
self.initialize_local_text_lm_head_from_text_lm_head()
|
| 135 |
+
|
| 136 |
+
def _use_binary_local_text_head(self) -> bool:
|
| 137 |
+
return str(getattr(self.config, "local_text_head_mode", "full_vocab")).strip().lower() == "binary"
|
| 138 |
+
|
| 139 |
+
def _local_text_candidate_ids(self, device: torch.device) -> torch.LongTensor:
|
| 140 |
+
return torch.tensor(
|
| 141 |
+
[
|
| 142 |
+
int(self.config.audio_assistant_slot_token_id),
|
| 143 |
+
int(self.config.audio_end_token_id),
|
| 144 |
+
],
|
| 145 |
+
dtype=torch.long,
|
| 146 |
+
device=device,
|
| 147 |
+
)
|
| 148 |
+
|
| 149 |
+
def initialize_local_text_lm_head_from_text_lm_head(self) -> None:
|
| 150 |
+
if not self._use_binary_local_text_head() or self.local_text_lm_head is None:
|
| 151 |
+
return
|
| 152 |
+
candidate_ids = self._local_text_candidate_ids(self.text_lm_head.weight.device)
|
| 153 |
+
with torch.no_grad():
|
| 154 |
+
source_weight = self.text_lm_head.weight.index_select(0, candidate_ids)
|
| 155 |
+
if tuple(source_weight.shape) == tuple(self.local_text_lm_head.weight.shape):
|
| 156 |
+
self.local_text_lm_head.weight.copy_(
|
| 157 |
+
source_weight.to(
|
| 158 |
+
device=self.local_text_lm_head.weight.device,
|
| 159 |
+
dtype=self.local_text_lm_head.weight.dtype,
|
| 160 |
+
)
|
| 161 |
+
)
|
| 162 |
+
|
| 163 |
+
def _resolve_fixed_nq(
|
| 164 |
+
self,
|
| 165 |
+
n_vq_for_inference: Optional[int] = None,
|
| 166 |
+
nq: Optional[int] = None,
|
| 167 |
+
) -> int:
|
| 168 |
+
requested = n_vq_for_inference if n_vq_for_inference is not None else nq
|
| 169 |
+
config_nq = int(self.config.n_vq)
|
| 170 |
+
if requested is not None and int(requested) != config_nq:
|
| 171 |
+
raise ValueError(
|
| 172 |
+
"This MOSS-TTS-Local-Transformer-v1.5 release is trained with a fixed RVQ depth. "
|
| 173 |
+
f"Expected n_vq={config_nq}, got {int(requested)}."
|
| 174 |
+
)
|
| 175 |
+
return config_nq
|
| 176 |
+
|
| 177 |
+
def _build_inputs_embeds(self, input_ids: torch.LongTensor) -> torch.FloatTensor:
|
| 178 |
+
if input_ids.ndim != 3 or input_ids.shape[-1] != self.config.n_vq + 1:
|
| 179 |
+
raise ValueError(
|
| 180 |
+
f"Expected input_ids shape [batch, seq, {self.config.n_vq + 1}], "
|
| 181 |
+
f"got {tuple(input_ids.shape)}."
|
| 182 |
+
)
|
| 183 |
+
text_ids = input_ids[..., 0]
|
| 184 |
+
inputs_embeds = self.transformer.embed_tokens(text_ids)
|
| 185 |
+
for channel_index, embedding in enumerate(self.audio_embeddings):
|
| 186 |
+
channel_ids = input_ids[..., channel_index + 1]
|
| 187 |
+
valid_mask = channel_ids.ne(self.config.audio_pad_token_id)
|
| 188 |
+
safe_ids = channel_ids.masked_fill(~valid_mask, 0)
|
| 189 |
+
audio_embeds = embedding(safe_ids) * valid_mask.unsqueeze(-1)
|
| 190 |
+
inputs_embeds = inputs_embeds + audio_embeds
|
| 191 |
+
return inputs_embeds
|
| 192 |
+
|
| 193 |
+
def _global_hidden_to_local(self, hidden_states: torch.FloatTensor) -> torch.FloatTensor:
|
| 194 |
+
return hidden_states
|
| 195 |
+
|
| 196 |
+
@staticmethod
|
| 197 |
+
def _local_past_length(past_key_values: Optional[tuple[Any, ...]]) -> int:
|
| 198 |
+
if past_key_values is None or len(past_key_values) == 0:
|
| 199 |
+
return 0
|
| 200 |
+
first_layer_past = past_key_values[0]
|
| 201 |
+
if isinstance(first_layer_past, dict) and bool(first_layer_past.get("static_kv_cache", False)):
|
| 202 |
+
return int(first_layer_past.get("length", 0))
|
| 203 |
+
return int(first_layer_past[0].shape[1])
|
| 204 |
+
|
| 205 |
+
def _new_static_local_past_key_values(
|
| 206 |
+
self,
|
| 207 |
+
batch_size: int,
|
| 208 |
+
max_length: int,
|
| 209 |
+
device: torch.device,
|
| 210 |
+
dtype: torch.dtype,
|
| 211 |
+
) -> tuple[dict[str, Any], ...]:
|
| 212 |
+
layers = []
|
| 213 |
+
for block in self.local_transformer.h:
|
| 214 |
+
attn = block.attn
|
| 215 |
+
cache_shape = (
|
| 216 |
+
int(batch_size),
|
| 217 |
+
int(max_length),
|
| 218 |
+
int(attn.num_heads),
|
| 219 |
+
int(attn.head_dim),
|
| 220 |
+
)
|
| 221 |
+
layers.append(
|
| 222 |
+
{
|
| 223 |
+
"static_kv_cache": True,
|
| 224 |
+
"key": torch.empty(cache_shape, device=device, dtype=dtype),
|
| 225 |
+
"value": torch.empty(cache_shape, device=device, dtype=dtype),
|
| 226 |
+
"length": 0,
|
| 227 |
+
}
|
| 228 |
+
)
|
| 229 |
+
return tuple(layers)
|
| 230 |
+
|
| 231 |
+
def _decode_local_hidden_states_with_cache(
|
| 232 |
+
self,
|
| 233 |
+
local_inputs_embeds: torch.FloatTensor,
|
| 234 |
+
past_key_values: Optional[tuple[Any, ...]] = None,
|
| 235 |
+
) -> tuple[torch.FloatTensor, Optional[tuple[Any, ...]]]:
|
| 236 |
+
if (
|
| 237 |
+
past_key_values is None
|
| 238 |
+
and not self.training
|
| 239 |
+
and bool(getattr(self.config, "use_static_local_kv_cache", True))
|
| 240 |
+
):
|
| 241 |
+
max_length = max(int(getattr(self.config, "n_vq", 0)) + 1, int(local_inputs_embeds.shape[1]))
|
| 242 |
+
past_key_values = self._new_static_local_past_key_values(
|
| 243 |
+
batch_size=int(local_inputs_embeds.shape[0]),
|
| 244 |
+
max_length=max_length,
|
| 245 |
+
device=local_inputs_embeds.device,
|
| 246 |
+
dtype=local_inputs_embeds.dtype,
|
| 247 |
+
)
|
| 248 |
+
past_length = self._local_past_length(past_key_values)
|
| 249 |
+
local_seq_len = int(local_inputs_embeds.shape[1])
|
| 250 |
+
local_position_ids = torch.arange(
|
| 251 |
+
past_length,
|
| 252 |
+
past_length + local_seq_len,
|
| 253 |
+
device=local_inputs_embeds.device,
|
| 254 |
+
dtype=torch.long,
|
| 255 |
+
).unsqueeze(0)
|
| 256 |
+
if int(local_inputs_embeds.shape[0]) != 1:
|
| 257 |
+
local_position_ids = local_position_ids.expand(int(local_inputs_embeds.shape[0]), -1)
|
| 258 |
+
local_outputs = self.local_transformer(
|
| 259 |
+
input_ids=None,
|
| 260 |
+
past_key_values=past_key_values,
|
| 261 |
+
attention_mask=None,
|
| 262 |
+
position_ids=local_position_ids,
|
| 263 |
+
inputs_embeds=local_inputs_embeds,
|
| 264 |
+
use_cache=True,
|
| 265 |
+
output_attentions=False,
|
| 266 |
+
output_hidden_states=False,
|
| 267 |
+
return_dict=True,
|
| 268 |
+
cu_seqlens=None,
|
| 269 |
+
num_sequences=None,
|
| 270 |
+
)
|
| 271 |
+
return local_outputs.last_hidden_state, local_outputs.past_key_values
|
| 272 |
+
|
| 273 |
+
def forward(
|
| 274 |
+
self,
|
| 275 |
+
input_ids: Optional[torch.LongTensor] = None,
|
| 276 |
+
attention_mask: Optional[torch.Tensor] = None,
|
| 277 |
+
position_ids: Optional[torch.LongTensor] = None,
|
| 278 |
+
past_key_values: Optional[tuple[tuple[torch.Tensor, torch.Tensor], ...]] = None,
|
| 279 |
+
inputs_embeds: Optional[torch.FloatTensor] = None,
|
| 280 |
+
use_cache: Optional[bool] = None,
|
| 281 |
+
output_attentions: Optional[bool] = None,
|
| 282 |
+
output_hidden_states: Optional[bool] = None,
|
| 283 |
+
return_dict: Optional[bool] = True,
|
| 284 |
+
**kwargs,
|
| 285 |
+
) -> Union[tuple, MossTTSLocalOutput]:
|
| 286 |
+
del kwargs
|
| 287 |
+
if inputs_embeds is None:
|
| 288 |
+
if input_ids is None:
|
| 289 |
+
raise ValueError("Either input_ids or inputs_embeds must be provided.")
|
| 290 |
+
inputs_embeds = self._build_inputs_embeds(input_ids)
|
| 291 |
+
outputs = self.transformer(
|
| 292 |
+
input_ids=None,
|
| 293 |
+
attention_mask=attention_mask,
|
| 294 |
+
position_ids=position_ids,
|
| 295 |
+
past_key_values=past_key_values,
|
| 296 |
+
inputs_embeds=inputs_embeds,
|
| 297 |
+
use_cache=use_cache,
|
| 298 |
+
output_attentions=output_attentions,
|
| 299 |
+
output_hidden_states=output_hidden_states,
|
| 300 |
+
return_dict=True,
|
| 301 |
+
cu_seqlens=None,
|
| 302 |
+
num_sequences=None,
|
| 303 |
+
)
|
| 304 |
+
if not return_dict:
|
| 305 |
+
return (
|
| 306 |
+
outputs.last_hidden_state,
|
| 307 |
+
outputs.past_key_values,
|
| 308 |
+
outputs.hidden_states,
|
| 309 |
+
outputs.attentions,
|
| 310 |
+
)
|
| 311 |
+
return MossTTSLocalOutput(
|
| 312 |
+
last_hidden_state=outputs.last_hidden_state,
|
| 313 |
+
past_key_values=outputs.past_key_values,
|
| 314 |
+
hidden_states=outputs.hidden_states,
|
| 315 |
+
attentions=outputs.attentions,
|
| 316 |
+
)
|
| 317 |
+
|
| 318 |
+
def _decode_local_last_hidden_state(
|
| 319 |
+
self,
|
| 320 |
+
local_inputs_embeds: torch.FloatTensor,
|
| 321 |
+
) -> torch.FloatTensor:
|
| 322 |
+
local_seq_len = int(local_inputs_embeds.shape[1])
|
| 323 |
+
local_position_ids = torch.arange(
|
| 324 |
+
0,
|
| 325 |
+
local_seq_len,
|
| 326 |
+
device=local_inputs_embeds.device,
|
| 327 |
+
dtype=torch.long,
|
| 328 |
+
).unsqueeze(0)
|
| 329 |
+
if int(local_inputs_embeds.shape[0]) != 1:
|
| 330 |
+
local_position_ids = local_position_ids.expand(int(local_inputs_embeds.shape[0]), -1)
|
| 331 |
+
local_outputs = self.local_transformer(
|
| 332 |
+
input_ids=None,
|
| 333 |
+
attention_mask=None,
|
| 334 |
+
position_ids=local_position_ids,
|
| 335 |
+
inputs_embeds=local_inputs_embeds,
|
| 336 |
+
use_cache=False,
|
| 337 |
+
output_attentions=False,
|
| 338 |
+
output_hidden_states=False,
|
| 339 |
+
return_dict=True,
|
| 340 |
+
cu_seqlens=None,
|
| 341 |
+
num_sequences=None,
|
| 342 |
+
)
|
| 343 |
+
return local_outputs.last_hidden_state[:, -1, :]
|
| 344 |
+
|
| 345 |
+
def _filter_logits(
|
| 346 |
+
self,
|
| 347 |
+
logits: torch.FloatTensor,
|
| 348 |
+
top_k: Optional[int],
|
| 349 |
+
top_p: Optional[float],
|
| 350 |
+
) -> torch.FloatTensor:
|
| 351 |
+
scores = logits
|
| 352 |
+
if top_k is not None and int(top_k) > 0 and int(top_k) < scores.shape[-1]:
|
| 353 |
+
kth = torch.topk(scores, int(top_k), dim=-1).values[..., -1, None]
|
| 354 |
+
scores = scores.masked_fill(scores < kth, -torch.inf)
|
| 355 |
+
if top_p is not None and 0.0 < float(top_p) < 1.0:
|
| 356 |
+
sorted_scores, sorted_indices = torch.sort(scores, descending=True, dim=-1)
|
| 357 |
+
sorted_probs = torch.softmax(sorted_scores, dim=-1)
|
| 358 |
+
cumulative_probs = sorted_probs.cumsum(dim=-1)
|
| 359 |
+
sorted_mask = cumulative_probs > float(top_p)
|
| 360 |
+
sorted_mask[..., 1:] = sorted_mask[..., :-1].clone()
|
| 361 |
+
sorted_mask[..., 0] = False
|
| 362 |
+
remove_mask = torch.zeros_like(scores, dtype=torch.bool)
|
| 363 |
+
remove_mask.scatter_(dim=-1, index=sorted_indices, src=sorted_mask)
|
| 364 |
+
scores = scores.masked_fill(remove_mask, -torch.inf)
|
| 365 |
+
return scores
|
| 366 |
+
|
| 367 |
+
def _apply_repetition_penalty(
|
| 368 |
+
self,
|
| 369 |
+
scores: torch.FloatTensor,
|
| 370 |
+
previous_token_ids: Optional[torch.LongTensor],
|
| 371 |
+
penalty: float,
|
| 372 |
+
) -> torch.FloatTensor:
|
| 373 |
+
if previous_token_ids is None or float(penalty) == 1.0:
|
| 374 |
+
return scores
|
| 375 |
+
if previous_token_ids.ndim == 1:
|
| 376 |
+
previous_token_ids = previous_token_ids.unsqueeze(0)
|
| 377 |
+
updated = scores.clone()
|
| 378 |
+
for batch_index in range(updated.shape[0]):
|
| 379 |
+
unique_token_ids = torch.unique(previous_token_ids[batch_index])
|
| 380 |
+
unique_token_ids = unique_token_ids[
|
| 381 |
+
(unique_token_ids >= 0) & (unique_token_ids < updated.shape[-1])
|
| 382 |
+
]
|
| 383 |
+
if unique_token_ids.numel() == 0:
|
| 384 |
+
continue
|
| 385 |
+
token_scores = updated[batch_index].index_select(0, unique_token_ids)
|
| 386 |
+
token_scores = torch.where(
|
| 387 |
+
token_scores < 0,
|
| 388 |
+
token_scores * float(penalty),
|
| 389 |
+
token_scores / float(penalty),
|
| 390 |
+
)
|
| 391 |
+
updated[batch_index].scatter_(0, unique_token_ids, token_scores)
|
| 392 |
+
return updated
|
| 393 |
+
|
| 394 |
+
def _sample_next_token(
|
| 395 |
+
self,
|
| 396 |
+
logits: torch.FloatTensor,
|
| 397 |
+
do_sample: bool,
|
| 398 |
+
temperature: float,
|
| 399 |
+
top_k: Optional[int],
|
| 400 |
+
top_p: Optional[float],
|
| 401 |
+
previous_token_ids: Optional[torch.LongTensor] = None,
|
| 402 |
+
repetition_penalty: float = 1.0,
|
| 403 |
+
) -> torch.LongTensor:
|
| 404 |
+
scores = logits.float()
|
| 405 |
+
scores = self._apply_repetition_penalty(scores, previous_token_ids, repetition_penalty)
|
| 406 |
+
if not do_sample:
|
| 407 |
+
return torch.argmax(scores, dim=-1)
|
| 408 |
+
if float(temperature) <= 0:
|
| 409 |
+
raise ValueError("temperature must be positive when do_sample=True.")
|
| 410 |
+
scores = scores / float(temperature)
|
| 411 |
+
scores = self._filter_logits(scores, top_k=top_k, top_p=top_p)
|
| 412 |
+
probs = torch.softmax(scores, dim=-1)
|
| 413 |
+
return torch.multinomial(probs, num_samples=1).squeeze(-1)
|
| 414 |
+
|
| 415 |
+
def _sample_next_assistant_text_token(
|
| 416 |
+
self,
|
| 417 |
+
local_hidden_states: torch.FloatTensor,
|
| 418 |
+
do_sample: bool,
|
| 419 |
+
temperature: float,
|
| 420 |
+
top_k: Optional[int],
|
| 421 |
+
top_p: Optional[float],
|
| 422 |
+
) -> torch.LongTensor:
|
| 423 |
+
if self._use_binary_local_text_head() and self.local_text_lm_head is not None:
|
| 424 |
+
logits = self.local_text_lm_head(local_hidden_states)
|
| 425 |
+
sampled_indices = self._sample_next_token(
|
| 426 |
+
logits=logits,
|
| 427 |
+
do_sample=do_sample,
|
| 428 |
+
temperature=temperature,
|
| 429 |
+
top_k=top_k,
|
| 430 |
+
top_p=top_p,
|
| 431 |
+
)
|
| 432 |
+
candidate_ids = self._local_text_candidate_ids(logits.device)
|
| 433 |
+
return candidate_ids[sampled_indices]
|
| 434 |
+
|
| 435 |
+
candidate_ids = self._local_text_candidate_ids(local_hidden_states.device)
|
| 436 |
+
logits = self.text_lm_head(local_hidden_states).index_select(dim=-1, index=candidate_ids)
|
| 437 |
+
sampled_indices = self._sample_next_token(
|
| 438 |
+
logits=logits,
|
| 439 |
+
do_sample=do_sample,
|
| 440 |
+
temperature=temperature,
|
| 441 |
+
top_k=top_k,
|
| 442 |
+
top_p=top_p,
|
| 443 |
+
)
|
| 444 |
+
return candidate_ids[sampled_indices]
|
| 445 |
+
|
| 446 |
+
def _build_generation_row(
|
| 447 |
+
self,
|
| 448 |
+
batch_size: int,
|
| 449 |
+
device: torch.device,
|
| 450 |
+
audio_token_ids: torch.LongTensor,
|
| 451 |
+
) -> torch.LongTensor:
|
| 452 |
+
row = torch.full(
|
| 453 |
+
(batch_size, 1, self.config.n_vq + 1),
|
| 454 |
+
int(self.config.audio_pad_token_id),
|
| 455 |
+
dtype=torch.long,
|
| 456 |
+
device=device,
|
| 457 |
+
)
|
| 458 |
+
row[:, :, 0] = int(self.config.audio_assistant_slot_token_id)
|
| 459 |
+
row[:, :, 1:] = audio_token_ids.unsqueeze(1)
|
| 460 |
+
return row
|
| 461 |
+
|
| 462 |
+
@torch.inference_mode()
|
| 463 |
+
def generate(
|
| 464 |
+
self,
|
| 465 |
+
input_ids: torch.LongTensor,
|
| 466 |
+
attention_mask: Optional[torch.Tensor] = None,
|
| 467 |
+
max_new_tokens: Optional[int] = None,
|
| 468 |
+
max_new_frames: Optional[int] = None,
|
| 469 |
+
do_sample: bool = True,
|
| 470 |
+
text_temperature: float = 1.0,
|
| 471 |
+
text_top_p: float = 1.0,
|
| 472 |
+
text_top_k: int = 50,
|
| 473 |
+
audio_temperature: Optional[float] = None,
|
| 474 |
+
audio_top_p: Optional[float] = None,
|
| 475 |
+
audio_top_k: Optional[int] = None,
|
| 476 |
+
audio_repetition_penalty: Optional[float] = None,
|
| 477 |
+
temperature: float = 1.0,
|
| 478 |
+
top_p: float = 0.95,
|
| 479 |
+
top_k: int = 50,
|
| 480 |
+
repetition_penalty: float = 1.0,
|
| 481 |
+
use_kv_cache: bool = True,
|
| 482 |
+
n_vq_for_inference: Optional[int] = None,
|
| 483 |
+
nq: Optional[int] = None,
|
| 484 |
+
**kwargs,
|
| 485 |
+
) -> list[tuple[int, torch.LongTensor]]:
|
| 486 |
+
del kwargs
|
| 487 |
+
self._resolve_fixed_nq(n_vq_for_inference=n_vq_for_inference, nq=nq)
|
| 488 |
+
|
| 489 |
+
if input_ids.ndim == 2:
|
| 490 |
+
input_ids = input_ids.unsqueeze(0)
|
| 491 |
+
if input_ids.ndim != 3:
|
| 492 |
+
raise ValueError(f"Expected input_ids with 3 dims, got {tuple(input_ids.shape)}.")
|
| 493 |
+
if input_ids.shape[-1] != self.config.n_vq + 1:
|
| 494 |
+
raise ValueError(
|
| 495 |
+
f"Expected {self.config.n_vq + 1} channels from config.n_vq, got {input_ids.shape[-1]}."
|
| 496 |
+
)
|
| 497 |
+
if attention_mask is None:
|
| 498 |
+
attention_mask = torch.ones(input_ids.shape[:2], dtype=torch.bool, device=input_ids.device)
|
| 499 |
+
elif attention_mask.ndim == 1:
|
| 500 |
+
attention_mask = attention_mask.unsqueeze(0)
|
| 501 |
+
attention_mask = attention_mask.to(device=input_ids.device, dtype=torch.bool)
|
| 502 |
+
|
| 503 |
+
frame_budget = max_new_frames if max_new_frames is not None else max_new_tokens
|
| 504 |
+
if frame_budget is None:
|
| 505 |
+
frame_budget = 4096
|
| 506 |
+
frame_budget = int(frame_budget)
|
| 507 |
+
|
| 508 |
+
audio_temperature = float(temperature if audio_temperature is None else audio_temperature)
|
| 509 |
+
audio_top_p = float(top_p if audio_top_p is None else audio_top_p)
|
| 510 |
+
audio_top_k = int(top_k if audio_top_k is None else audio_top_k)
|
| 511 |
+
audio_repetition_penalty = float(
|
| 512 |
+
repetition_penalty if audio_repetition_penalty is None else audio_repetition_penalty
|
| 513 |
+
)
|
| 514 |
+
|
| 515 |
+
batch_size = input_ids.shape[0]
|
| 516 |
+
input_ids_length = input_ids.shape[1]
|
| 517 |
+
current_input_ids = input_ids
|
| 518 |
+
current_attention_mask = attention_mask
|
| 519 |
+
current_model_input_ids = current_input_ids
|
| 520 |
+
generated_frames: list[torch.LongTensor] = []
|
| 521 |
+
finished = torch.zeros(batch_size, dtype=torch.bool, device=input_ids.device)
|
| 522 |
+
past_key_values = None
|
| 523 |
+
local_dtype = self.local_transformer.ln_f.weight.dtype
|
| 524 |
+
|
| 525 |
+
for _ in range(frame_budget):
|
| 526 |
+
generated_audio_history = torch.stack(generated_frames, dim=1) if generated_frames else None
|
| 527 |
+
global_inputs_embeds = self._build_inputs_embeds(current_model_input_ids)
|
| 528 |
+
global_outputs = self.transformer(
|
| 529 |
+
input_ids=None,
|
| 530 |
+
past_key_values=past_key_values,
|
| 531 |
+
attention_mask=current_attention_mask,
|
| 532 |
+
position_ids=None,
|
| 533 |
+
inputs_embeds=global_inputs_embeds,
|
| 534 |
+
use_cache=use_kv_cache,
|
| 535 |
+
output_attentions=False,
|
| 536 |
+
output_hidden_states=False,
|
| 537 |
+
return_dict=True,
|
| 538 |
+
cu_seqlens=None,
|
| 539 |
+
num_sequences=None,
|
| 540 |
+
)
|
| 541 |
+
global_hidden_states = global_outputs.last_hidden_state[:, -1, :]
|
| 542 |
+
local_global_hidden_states = self._global_hidden_to_local(global_hidden_states).to(dtype=local_dtype)
|
| 543 |
+
|
| 544 |
+
local_prefix_hidden_states, local_prefix_past_key_values = self._decode_local_hidden_states_with_cache(
|
| 545 |
+
local_global_hidden_states.unsqueeze(1)
|
| 546 |
+
)
|
| 547 |
+
local_hidden_states = local_prefix_hidden_states[:, -1, :]
|
| 548 |
+
next_text_tokens = self._sample_next_assistant_text_token(
|
| 549 |
+
local_hidden_states=local_hidden_states,
|
| 550 |
+
do_sample=do_sample,
|
| 551 |
+
temperature=text_temperature,
|
| 552 |
+
top_k=text_top_k,
|
| 553 |
+
top_p=text_top_p,
|
| 554 |
+
)
|
| 555 |
+
should_continue = next_text_tokens.eq(int(self.config.audio_assistant_slot_token_id)) & ~finished
|
| 556 |
+
finished = finished | next_text_tokens.eq(int(self.config.audio_end_token_id))
|
| 557 |
+
if not bool(should_continue.any().item()):
|
| 558 |
+
break
|
| 559 |
+
|
| 560 |
+
next_frame_tokens = []
|
| 561 |
+
for channel_index in range(int(self.config.n_vq)):
|
| 562 |
+
channel_logits = self.audio_lm_heads[channel_index](local_hidden_states)
|
| 563 |
+
channel_token = self._sample_next_token(
|
| 564 |
+
logits=channel_logits,
|
| 565 |
+
do_sample=do_sample,
|
| 566 |
+
temperature=audio_temperature,
|
| 567 |
+
top_k=audio_top_k,
|
| 568 |
+
top_p=audio_top_p,
|
| 569 |
+
previous_token_ids=(
|
| 570 |
+
None
|
| 571 |
+
if generated_audio_history is None
|
| 572 |
+
else generated_audio_history[:, :, channel_index]
|
| 573 |
+
),
|
| 574 |
+
repetition_penalty=audio_repetition_penalty,
|
| 575 |
+
)
|
| 576 |
+
next_frame_tokens.append(channel_token)
|
| 577 |
+
if channel_index + 1 < int(self.config.n_vq):
|
| 578 |
+
current_local_input = self.audio_embeddings[channel_index](channel_token).to(dtype=local_dtype)
|
| 579 |
+
local_token_hidden_states, local_prefix_past_key_values = (
|
| 580 |
+
self._decode_local_hidden_states_with_cache(
|
| 581 |
+
current_local_input.unsqueeze(1),
|
| 582 |
+
past_key_values=local_prefix_past_key_values,
|
| 583 |
+
)
|
| 584 |
+
)
|
| 585 |
+
local_hidden_states = local_token_hidden_states[:, -1, :]
|
| 586 |
+
|
| 587 |
+
next_frame = torch.stack(next_frame_tokens, dim=-1)
|
| 588 |
+
next_frame = next_frame.masked_fill(
|
| 589 |
+
~should_continue.unsqueeze(-1),
|
| 590 |
+
int(self.config.audio_pad_token_id),
|
| 591 |
+
)
|
| 592 |
+
generated_frames.append(next_frame)
|
| 593 |
+
|
| 594 |
+
next_row = self._build_generation_row(
|
| 595 |
+
batch_size=batch_size,
|
| 596 |
+
device=input_ids.device,
|
| 597 |
+
audio_token_ids=next_frame,
|
| 598 |
+
)
|
| 599 |
+
if bool((~should_continue).any().item()):
|
| 600 |
+
next_row[~should_continue, 0, 0] = int(self.config.pad_token_id)
|
| 601 |
+
next_row[~should_continue, 0, 1:] = int(self.config.audio_pad_token_id)
|
| 602 |
+
|
| 603 |
+
current_input_ids = torch.cat([current_input_ids, next_row], dim=1)
|
| 604 |
+
current_attention_mask = torch.cat(
|
| 605 |
+
[current_attention_mask, should_continue.unsqueeze(1)],
|
| 606 |
+
dim=1,
|
| 607 |
+
)
|
| 608 |
+
if use_kv_cache:
|
| 609 |
+
current_model_input_ids = next_row
|
| 610 |
+
past_key_values = global_outputs.past_key_values
|
| 611 |
+
else:
|
| 612 |
+
current_model_input_ids = current_input_ids
|
| 613 |
+
|
| 614 |
+
start_indices = _find_last_equal(input_ids[..., 0], int(self.config.audio_start_token_id))
|
| 615 |
+
start_lengths = input_ids_length - start_indices - 1
|
| 616 |
+
outputs: list[tuple[int, torch.LongTensor]] = []
|
| 617 |
+
for start_index, start_length, generation_ids in zip(
|
| 618 |
+
start_indices.tolist(),
|
| 619 |
+
start_lengths.tolist(),
|
| 620 |
+
current_input_ids,
|
| 621 |
+
):
|
| 622 |
+
outputs.append((int(start_length), generation_ids[int(start_index):].detach().cpu()))
|
| 623 |
+
return outputs
|
podcast_infer.py
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Portable two-speaker podcast inference for the merged NotebookLM Edition."""
|
| 2 |
+
import argparse,json,math
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
import numpy as np
|
| 5 |
+
import torch
|
| 6 |
+
import base_runtime
|
| 7 |
+
|
| 8 |
+
LANGUAGES={'en':'English','de':'German','fr':'French','es':'Spanish','nl':'Dutch'}
|
| 9 |
+
|
| 10 |
+
def row_from_dialogue(dialogue,references,context_codes=None,context_description=''):
|
| 11 |
+
language=dialogue['language']; turns=dialogue['turns']
|
| 12 |
+
if language not in LANGUAGES or not turns:raise ValueError('Supported language and nonempty turns required')
|
| 13 |
+
if set(references)!={'S1','S2'}:raise ValueError('Supply separate S1 and S2 identity references')
|
| 14 |
+
for codes in references.values():
|
| 15 |
+
if codes.ndim!=2 or codes.shape[1]!=12 or not 63<=len(codes)<=187:raise ValueError('Each reference must have 12 codebooks and 5.04–14.96 seconds')
|
| 16 |
+
script=[];words=[];seconds=0.;pause=float(dialogue.get('pause_s',.24))
|
| 17 |
+
if not 0<=pause<=3:raise ValueError('Pause out of range')
|
| 18 |
+
for i,t in enumerate(turns):
|
| 19 |
+
if t['speaker'] not in references or not t['text'].strip() or not .4<=t['seconds']<=60:raise ValueError('Invalid turn')
|
| 20 |
+
if '\n' in t['direction'] or '\n' in t['text']:raise ValueError('Use separate turns for separate lines')
|
| 21 |
+
script.append('(speaker='+t['speaker']+', '+t['direction']+') ['+format(t['seconds'],'.2f')+' seconds duration] '+t['text'])
|
| 22 |
+
words.append(t['text']);seconds+=t['seconds']
|
| 23 |
+
if i<len(turns)-1 and pause:script.append('['+format(pause,'.2f')+' seconds pause]');seconds+=pause
|
| 24 |
+
if not 1<=seconds<=65:raise ValueError('This tested release limits one joint continuation to 65 seconds')
|
| 25 |
+
if context_codes is not None and (context_codes.ndim!=2 or context_codes.shape[1]!=12 or len(context_codes)>750):raise ValueError('Conversation context must be <=60 seconds')
|
| 26 |
+
return dict(language=language,plain=' '.join(words),instruction='GENERAL: '+dialogue.get('general','')+'\nSCRIPT:\n'+'\n'.join(script),
|
| 27 |
+
frames=round(seconds*12.5),speaker_references=references,context_codes=context_codes,context_description=context_description)
|
| 28 |
+
|
| 29 |
+
def generation_inputs(proc,row):
|
| 30 |
+
user=proc.build_user_message(text=row['plain'],instruction=row['instruction'],tokens=row['frames'],language=LANGUAGES[row['language']],reference=None)
|
| 31 |
+
blocks=[];audio=[]
|
| 32 |
+
for speaker in ['S1','S2']:
|
| 33 |
+
blocks.append('Speaker '+speaker+' identity reference:\n<|audio|>');audio.append(torch.as_tensor(row['speaker_references'][speaker],dtype=torch.long))
|
| 34 |
+
context=row.get('context_codes')
|
| 35 |
+
if context is not None and len(context):
|
| 36 |
+
blocks.append('Previous conversation, chronological and strictly before target:\n'+row['context_description']+'\n<|audio|>');audio.append(torch.as_tensor(context,dtype=torch.long))
|
| 37 |
+
marker='- Reference(s):\nNone\n'
|
| 38 |
+
if user['content'].count(marker)!=1:raise RuntimeError('Native processor reference wrapper changed')
|
| 39 |
+
user['content']=user['content'].replace(marker,'- Reference(s):\n'+'\n'.join(blocks)+'\n',1)
|
| 40 |
+
user['audio_codes_list']=audio;user.pop('text',None)
|
| 41 |
+
user['content']='<|im_start|>user\n'+user['content']+'<|im_end|>\n<|im_start|>assistant\n'
|
| 42 |
+
if user['content'].count('<|audio|>')!=len(audio):raise RuntimeError('Audio placeholders lost')
|
| 43 |
+
return proc([[user]],mode='generation',apply_chat_template=False)
|
| 44 |
+
|
| 45 |
+
def encode_reference(proc,path,device='cuda:0',context=False):
|
| 46 |
+
import soundfile as sf
|
| 47 |
+
wave,sr=sf.read(path,dtype='float32',always_2d=True)
|
| 48 |
+
minimum=.08 if context else 5.04;maximum=60 if context else 14.96
|
| 49 |
+
if len(wave)/sr<minimum or not np.isfinite(wave).all():raise ValueError('Reference is too short or nonfinite')
|
| 50 |
+
wave=wave[:round(maximum*sr)]
|
| 51 |
+
with torch.inference_mode():codes=proc.encode_audios_from_wav([torch.from_numpy(wave.T.copy())],sr,n_vq=12)[0]
|
| 52 |
+
return codes[:750 if context else 187].cpu().numpy()
|
| 53 |
+
|
| 54 |
+
def generate(model,proc,row,seed=20261103):
|
| 55 |
+
batch=generation_inputs(proc,row);device=next(model.parameters()).device
|
| 56 |
+
if len(batch['input_ids'][0])>30000:raise ValueError('Packed prefix too long; never silently truncate references')
|
| 57 |
+
torch.manual_seed(seed);torch.cuda.manual_seed_all(seed)
|
| 58 |
+
cap=min(1000,row['frames']+125)
|
| 59 |
+
with torch.inference_mode(),torch.autocast('cuda',dtype=torch.bfloat16):
|
| 60 |
+
result=model.generate(input_ids=batch['input_ids'].to(device),attention_mask=batch['attention_mask'].to(device),
|
| 61 |
+
max_new_frames=cap,do_sample=True,audio_temperature=1.,audio_top_p=.95,audio_top_k=50,audio_repetition_penalty=1.,use_kv_cache=True)
|
| 62 |
+
prefix,sequence=result[0]
|
| 63 |
+
if prefix!=0 or sequence.ndim!=2 or sequence.shape[1]!=13:raise ValueError('Invalid MOSS output')
|
| 64 |
+
codes=sequence[1:,1:];codes=codes[(codes[:,0]>=0)&(codes[:,0]!=model.config.audio_pad_token_id)].cpu()
|
| 65 |
+
if len(codes)<2 or codes.min()<0 or codes.max()>1023:raise ValueError('Invalid generated codec indices')
|
| 66 |
+
return codes,{'frames':len(codes),'frame_cap':len(codes)>=cap,'requested_seconds':row['frames']/12.5,'sampling':{'temperature':1.,'top_p':.95,'top_k':50,'cfg':1.}}
|
| 67 |
+
|
| 68 |
+
def main():
|
| 69 |
+
p=argparse.ArgumentParser(description=__doc__)
|
| 70 |
+
p.add_argument('--model',default='laion/Humaneness-Voice-Large-NotebookLM-Edition')
|
| 71 |
+
p.add_argument('--codec',default='OpenMOSS-Team/MOSS-Audio-Tokenizer-v2')
|
| 72 |
+
p.add_argument('--dialogue',type=Path,required=True);p.add_argument('--reference-s1',required=True);p.add_argument('--reference-s2',required=True)
|
| 73 |
+
p.add_argument('--context');p.add_argument('--context-description',default='');p.add_argument('--seed',type=int,default=20261103);p.add_argument('--output',type=Path,required=True)
|
| 74 |
+
a=p.parse_args()
|
| 75 |
+
if a.output.exists():raise FileExistsError(a.output)
|
| 76 |
+
model,proc=base_runtime.load_model(a.model);base_runtime.load_codec(proc,a.codec)
|
| 77 |
+
refs={s:encode_reference(proc,f) for s,f in [('S1',a.reference_s1),('S2',a.reference_s2)]}
|
| 78 |
+
context=encode_reference(proc,a.context,context=True) if a.context else None
|
| 79 |
+
row=row_from_dialogue(json.loads(a.dialogue.read_text()),refs,context,a.context_description)
|
| 80 |
+
codes,meta=generate(model,proc,row,a.seed);wave,sr=base_runtime.decode(proc,codes)
|
| 81 |
+
import soundfile as sf
|
| 82 |
+
a.output.parent.mkdir(parents=True,exist_ok=True);sf.write(a.output,wave,sr,subtype='PCM_16');print(json.dumps(meta))
|
| 83 |
+
|
| 84 |
+
if __name__=='__main__':main()
|
processing_moss_tts.py
ADDED
|
@@ -0,0 +1,914 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# coding=utf-8
|
| 2 |
+
"""Processor for the MOSS-TTS-Local-Transformer-v1.5 HuggingFace release."""
|
| 3 |
+
|
| 4 |
+
from __future__ import annotations
|
| 5 |
+
|
| 6 |
+
import os
|
| 7 |
+
import re
|
| 8 |
+
from dataclasses import dataclass
|
| 9 |
+
from pathlib import Path
|
| 10 |
+
from typing import Any, Dict, List, Optional, Sequence, Tuple, Union, cast
|
| 11 |
+
|
| 12 |
+
import torch
|
| 13 |
+
import torchaudio
|
| 14 |
+
from transformers import (
|
| 15 |
+
AutoConfig,
|
| 16 |
+
AutoModel,
|
| 17 |
+
AutoTokenizer,
|
| 18 |
+
BatchFeature,
|
| 19 |
+
PreTrainedTokenizerBase,
|
| 20 |
+
ProcessorMixin,
|
| 21 |
+
logging,
|
| 22 |
+
processing_utils,
|
| 23 |
+
)
|
| 24 |
+
|
| 25 |
+
from .configuration_moss_tts import MossTTSLocalConfig
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
if hasattr(processing_utils, "MODALITY_TO_BASE_CLASS_MAPPING"):
|
| 29 |
+
processing_utils.MODALITY_TO_BASE_CLASS_MAPPING["audio_tokenizer"] = "PreTrainedModel"
|
| 30 |
+
else:
|
| 31 |
+
processing_utils.AUTO_TO_BASE_CLASS_MAPPING["AutoModel"] = "PreTrainedModel"
|
| 32 |
+
logger = logging.get_logger(__name__)
|
| 33 |
+
|
| 34 |
+
AUDIO_PLACEHOLDER = "<|audio|>"
|
| 35 |
+
USER_ROLE_PREFIX = "user\n"
|
| 36 |
+
USER_TEMPLATE_REFERENCE_PREFIX = (
|
| 37 |
+
"<user_inst>\n"
|
| 38 |
+
"- Reference(s):\n"
|
| 39 |
+
)
|
| 40 |
+
USER_TEMPLATE_AFTER_REFERENCE_SUFFIX = (
|
| 41 |
+
"\n"
|
| 42 |
+
"- Text:\n"
|
| 43 |
+
)
|
| 44 |
+
USER_TEMPLATE_SUFFIX = "\n</user_inst>"
|
| 45 |
+
ASSISTANT_TURN_PREFIX = "\n"
|
| 46 |
+
ASSISTANT_ROLE_PREFIX = "assistant\n"
|
| 47 |
+
USER_MESSAGE_FIELDS = (
|
| 48 |
+
"text",
|
| 49 |
+
"reference",
|
| 50 |
+
"instruction",
|
| 51 |
+
"tokens",
|
| 52 |
+
"quality",
|
| 53 |
+
"sound_event",
|
| 54 |
+
"ambient_sound",
|
| 55 |
+
"language",
|
| 56 |
+
)
|
| 57 |
+
|
| 58 |
+
|
| 59 |
+
def _normalize_template_value(value: Any) -> str:
|
| 60 |
+
if value is None:
|
| 61 |
+
return "None"
|
| 62 |
+
resolved = str(value).strip()
|
| 63 |
+
return resolved or "None"
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
def _render_user_prompt_after_reference(
|
| 67 |
+
language_code: object | None = None,
|
| 68 |
+
prompt_fields: Optional[Dict[str, Any]] = None,
|
| 69 |
+
) -> str:
|
| 70 |
+
fields = dict(prompt_fields or {})
|
| 71 |
+
return (
|
| 72 |
+
"\n- Instruction:\n"
|
| 73 |
+
+ _normalize_template_value(fields.get("instruction"))
|
| 74 |
+
+ "\n- Tokens:\n"
|
| 75 |
+
+ _normalize_template_value(fields.get("tokens"))
|
| 76 |
+
+ "\n- Quality:\n"
|
| 77 |
+
+ _normalize_template_value(fields.get("quality"))
|
| 78 |
+
+ "\n- Sound Event:\n"
|
| 79 |
+
+ _normalize_template_value(fields.get("sound_event"))
|
| 80 |
+
+ "\n- Ambient Sound:\n"
|
| 81 |
+
+ _normalize_template_value(fields.get("ambient_sound"))
|
| 82 |
+
+ "\n- Language:\n"
|
| 83 |
+
+ _normalize_template_value(fields.get("language", language_code))
|
| 84 |
+
+ USER_TEMPLATE_AFTER_REFERENCE_SUFFIX
|
| 85 |
+
)
|
| 86 |
+
|
| 87 |
+
|
| 88 |
+
@dataclass
|
| 89 |
+
class Message:
|
| 90 |
+
def to_dict(self) -> Dict[str, Any]:
|
| 91 |
+
raise NotImplementedError
|
| 92 |
+
|
| 93 |
+
|
| 94 |
+
@dataclass
|
| 95 |
+
class UserMessage(Message):
|
| 96 |
+
text: Optional[str] = None
|
| 97 |
+
reference: Optional[List[Optional[Union[str, os.PathLike, torch.Tensor]]]] = None
|
| 98 |
+
instruction: Optional[str] = None
|
| 99 |
+
tokens: Optional[int] = None
|
| 100 |
+
quality: Optional[str] = None
|
| 101 |
+
sound_event: Optional[str] = None
|
| 102 |
+
ambient_sound: Optional[str] = None
|
| 103 |
+
language: Optional[str] = None
|
| 104 |
+
|
| 105 |
+
def __post_init__(self) -> None:
|
| 106 |
+
template = """<user_inst>
|
| 107 |
+
- Reference(s):
|
| 108 |
+
{reference}
|
| 109 |
+
- Instruction:
|
| 110 |
+
{instruction}
|
| 111 |
+
- Tokens:
|
| 112 |
+
{tokens}
|
| 113 |
+
- Quality:
|
| 114 |
+
{quality}
|
| 115 |
+
- Sound Event:
|
| 116 |
+
{sound_event}
|
| 117 |
+
- Ambient Sound:
|
| 118 |
+
{ambient_sound}
|
| 119 |
+
- Language:
|
| 120 |
+
{language}
|
| 121 |
+
- Text:
|
| 122 |
+
{text}
|
| 123 |
+
</user_inst>"""
|
| 124 |
+
|
| 125 |
+
audio_codes_list: list[Union[str, os.PathLike, torch.Tensor]] = []
|
| 126 |
+
if self.reference is None:
|
| 127 |
+
reference = "None"
|
| 128 |
+
else:
|
| 129 |
+
reference_items: list[str] = []
|
| 130 |
+
for speaker_idx, speaker_reference in enumerate(self.reference):
|
| 131 |
+
if speaker_reference is None:
|
| 132 |
+
continue
|
| 133 |
+
# Keep raw audio placeholders directly under "- Reference(s):".
|
| 134 |
+
# Speaker labels such as "[S1]:" change the token sequence and
|
| 135 |
+
# can affect voice-clone conditioning.
|
| 136 |
+
reference_items.append(AUDIO_PLACEHOLDER)
|
| 137 |
+
audio_codes_list.append(speaker_reference)
|
| 138 |
+
reference = "\n".join(reference_items) if reference_items else "None"
|
| 139 |
+
|
| 140 |
+
self._content = (
|
| 141 |
+
template.replace("{reference}", str(reference))
|
| 142 |
+
.replace("{instruction}", str(self.instruction))
|
| 143 |
+
.replace("{tokens}", str(self.tokens))
|
| 144 |
+
.replace("{quality}", str(self.quality))
|
| 145 |
+
.replace("{sound_event}", str(self.sound_event))
|
| 146 |
+
.replace("{ambient_sound}", str(self.ambient_sound))
|
| 147 |
+
.replace("{language}", str(self.language))
|
| 148 |
+
.replace("{text}", str(self.text))
|
| 149 |
+
)
|
| 150 |
+
self._audio_codes_list = audio_codes_list
|
| 151 |
+
|
| 152 |
+
def to_dict(self) -> Dict[str, Any]:
|
| 153 |
+
return {
|
| 154 |
+
"role": "user",
|
| 155 |
+
"content": self._content,
|
| 156 |
+
"audio_codes_list": self._audio_codes_list,
|
| 157 |
+
"text": self.text,
|
| 158 |
+
"instruction": self.instruction,
|
| 159 |
+
"tokens": self.tokens,
|
| 160 |
+
"quality": self.quality,
|
| 161 |
+
"sound_event": self.sound_event,
|
| 162 |
+
"ambient_sound": self.ambient_sound,
|
| 163 |
+
"language": self.language,
|
| 164 |
+
}
|
| 165 |
+
|
| 166 |
+
|
| 167 |
+
@dataclass
|
| 168 |
+
class AssistantMessage(Message):
|
| 169 |
+
audio_codes_list: List[Union[str, os.PathLike, torch.Tensor]]
|
| 170 |
+
content: str = AUDIO_PLACEHOLDER
|
| 171 |
+
|
| 172 |
+
def to_dict(self) -> Dict[str, Any]:
|
| 173 |
+
return {
|
| 174 |
+
"role": "assistant",
|
| 175 |
+
"content": self.content,
|
| 176 |
+
"audio_codes_list": self.audio_codes_list,
|
| 177 |
+
}
|
| 178 |
+
|
| 179 |
+
|
| 180 |
+
class MossTTSLocalProcessor(ProcessorMixin):
|
| 181 |
+
attributes = ["tokenizer"]
|
| 182 |
+
tokenizer_class = "AutoTokenizer"
|
| 183 |
+
audio_tokenizer_class = "AutoModel"
|
| 184 |
+
|
| 185 |
+
tokenizer: PreTrainedTokenizerBase
|
| 186 |
+
audio_tokenizer: Any
|
| 187 |
+
|
| 188 |
+
def __init__(
|
| 189 |
+
self,
|
| 190 |
+
tokenizer: PreTrainedTokenizerBase,
|
| 191 |
+
audio_tokenizer: Any = None,
|
| 192 |
+
model_config: Optional[MossTTSLocalConfig] = None,
|
| 193 |
+
**kwargs,
|
| 194 |
+
) -> None:
|
| 195 |
+
super().__init__(tokenizer=tokenizer, audio_tokenizer=audio_tokenizer, **kwargs)
|
| 196 |
+
self.tokenizer = tokenizer
|
| 197 |
+
self.audio_tokenizer = audio_tokenizer
|
| 198 |
+
self.model_config = model_config or MossTTSLocalConfig()
|
| 199 |
+
|
| 200 |
+
def _id_to_token(token_id: int) -> str:
|
| 201 |
+
token = tokenizer.convert_ids_to_tokens(int(token_id))
|
| 202 |
+
if isinstance(token, list):
|
| 203 |
+
return token[0] if token else ""
|
| 204 |
+
return cast(str, token)
|
| 205 |
+
|
| 206 |
+
self.audio_user_slot_token = _id_to_token(self.model_config.audio_user_slot_token_id)
|
| 207 |
+
self.audio_assistant_slot_token = _id_to_token(self.model_config.audio_assistant_slot_token_id)
|
| 208 |
+
self.audio_start_token = _id_to_token(self.model_config.audio_start_token_id)
|
| 209 |
+
self.audio_end_token = _id_to_token(self.model_config.audio_end_token_id)
|
| 210 |
+
|
| 211 |
+
@classmethod
|
| 212 |
+
def from_pretrained(cls, pretrained_model_name_or_path, *args, **kwargs):
|
| 213 |
+
trust_remote_code = kwargs.pop("trust_remote_code", True)
|
| 214 |
+
kwargs.pop("_from_auto", None)
|
| 215 |
+
codec_path = kwargs.pop("codec_path", None)
|
| 216 |
+
codec_weight_dtype = kwargs.pop("codec_weight_dtype", "fp32")
|
| 217 |
+
codec_compute_dtype = kwargs.pop("codec_compute_dtype", None)
|
| 218 |
+
codec_attention_implementation = kwargs.pop("codec_attention_implementation", None)
|
| 219 |
+
|
| 220 |
+
codec_kwargs: Dict[str, Any] = {}
|
| 221 |
+
if codec_weight_dtype is not None:
|
| 222 |
+
# Default to fp32 codec weights; callers can pass codec_weight_dtype="bf16" to reduce memory.
|
| 223 |
+
codec_kwargs["codec_weight_dtype"] = codec_weight_dtype
|
| 224 |
+
|
| 225 |
+
model_ref = Path(str(pretrained_model_name_or_path))
|
| 226 |
+
model_ref_or_name = model_ref if model_ref.exists() else pretrained_model_name_or_path
|
| 227 |
+
model_config = cast(
|
| 228 |
+
MossTTSLocalConfig,
|
| 229 |
+
AutoConfig.from_pretrained(
|
| 230 |
+
model_ref_or_name,
|
| 231 |
+
*args,
|
| 232 |
+
trust_remote_code=trust_remote_code,
|
| 233 |
+
**kwargs,
|
| 234 |
+
),
|
| 235 |
+
)
|
| 236 |
+
|
| 237 |
+
if codec_path is None:
|
| 238 |
+
try:
|
| 239 |
+
processor_dict, _ = cls.get_processor_dict(
|
| 240 |
+
pretrained_model_name_or_path,
|
| 241 |
+
**dict(kwargs),
|
| 242 |
+
)
|
| 243 |
+
codec_path = processor_dict.get("audio_tokenizer_name_or_path")
|
| 244 |
+
audio_tokenizer_dict = processor_dict.get("audio_tokenizer", {})
|
| 245 |
+
if isinstance(audio_tokenizer_dict, dict):
|
| 246 |
+
codec_path = audio_tokenizer_dict.get("audio_tokenizer_name_or_path") or codec_path
|
| 247 |
+
except Exception:
|
| 248 |
+
codec_path = None
|
| 249 |
+
if codec_path is None:
|
| 250 |
+
codec_path = getattr(model_config, "audio_tokenizer_name_or_path", None)
|
| 251 |
+
if codec_path is None:
|
| 252 |
+
codec_path = "OpenMOSS-Team/MOSS-Audio-Tokenizer-v2"
|
| 253 |
+
|
| 254 |
+
tokenizer = AutoTokenizer.from_pretrained(
|
| 255 |
+
model_ref_or_name,
|
| 256 |
+
*args,
|
| 257 |
+
trust_remote_code=trust_remote_code,
|
| 258 |
+
**kwargs,
|
| 259 |
+
)
|
| 260 |
+
audio_tokenizer = AutoModel.from_pretrained(
|
| 261 |
+
codec_path,
|
| 262 |
+
trust_remote_code=trust_remote_code,
|
| 263 |
+
**kwargs,
|
| 264 |
+
**codec_kwargs,
|
| 265 |
+
)
|
| 266 |
+
if codec_compute_dtype is not None and hasattr(audio_tokenizer, "set_compute_dtype"):
|
| 267 |
+
audio_tokenizer.set_compute_dtype(codec_compute_dtype)
|
| 268 |
+
if codec_attention_implementation is not None and hasattr(
|
| 269 |
+
audio_tokenizer, "set_attention_implementation"
|
| 270 |
+
):
|
| 271 |
+
audio_tokenizer.set_attention_implementation(codec_attention_implementation)
|
| 272 |
+
return cls(
|
| 273 |
+
tokenizer=tokenizer,
|
| 274 |
+
audio_tokenizer=audio_tokenizer,
|
| 275 |
+
model_config=model_config,
|
| 276 |
+
**kwargs,
|
| 277 |
+
)
|
| 278 |
+
|
| 279 |
+
@staticmethod
|
| 280 |
+
def build_user_message(
|
| 281 |
+
text: Optional[str] = None,
|
| 282 |
+
reference: Optional[List[Optional[Union[str, os.PathLike, torch.Tensor]]]] = None,
|
| 283 |
+
instruction: Optional[str] = None,
|
| 284 |
+
tokens: Optional[int] = None,
|
| 285 |
+
quality: Optional[str] = None,
|
| 286 |
+
sound_event: Optional[str] = None,
|
| 287 |
+
ambient_sound: Optional[str] = None,
|
| 288 |
+
language: Optional[str] = None,
|
| 289 |
+
) -> Dict[str, Any]:
|
| 290 |
+
if reference is not None and not isinstance(reference, list):
|
| 291 |
+
reference = [reference]
|
| 292 |
+
return UserMessage(
|
| 293 |
+
text=text,
|
| 294 |
+
reference=reference,
|
| 295 |
+
instruction=instruction,
|
| 296 |
+
tokens=tokens,
|
| 297 |
+
quality=quality,
|
| 298 |
+
sound_event=sound_event,
|
| 299 |
+
ambient_sound=ambient_sound,
|
| 300 |
+
language=language,
|
| 301 |
+
).to_dict()
|
| 302 |
+
|
| 303 |
+
@staticmethod
|
| 304 |
+
def build_assistant_message(
|
| 305 |
+
audio_codes_list: List[Union[str, os.PathLike, torch.Tensor]],
|
| 306 |
+
content: str = AUDIO_PLACEHOLDER,
|
| 307 |
+
) -> Dict[str, Any]:
|
| 308 |
+
return AssistantMessage(audio_codes_list=audio_codes_list, content=content).to_dict()
|
| 309 |
+
|
| 310 |
+
def _assert_fixed_nq(self, n_vq: Optional[int]) -> int:
|
| 311 |
+
config_nq = int(self.model_config.n_vq)
|
| 312 |
+
if n_vq is not None and int(n_vq) != config_nq:
|
| 313 |
+
raise ValueError(
|
| 314 |
+
"This MOSS-TTS-Local-Transformer-v1.5 release uses the RVQ depth stored in the model config. "
|
| 315 |
+
f"Expected n_vq={config_nq}, got {int(n_vq)}."
|
| 316 |
+
)
|
| 317 |
+
return config_nq
|
| 318 |
+
|
| 319 |
+
def _encode_text(self, text: str) -> list[int]:
|
| 320 |
+
try:
|
| 321 |
+
return list(self.tokenizer.encode(text, add_special_tokens=False))
|
| 322 |
+
except TypeError:
|
| 323 |
+
return list(self.tokenizer.encode(text))
|
| 324 |
+
|
| 325 |
+
def _build_text_rows(self, token_ids: Sequence[int], *, device: Optional[torch.device] = None) -> torch.Tensor:
|
| 326 |
+
rows = torch.full(
|
| 327 |
+
(len(token_ids), int(self.model_config.n_vq) + 1),
|
| 328 |
+
int(self.model_config.audio_pad_token_id),
|
| 329 |
+
dtype=torch.long,
|
| 330 |
+
device=device,
|
| 331 |
+
)
|
| 332 |
+
if token_ids:
|
| 333 |
+
rows[:, 0] = torch.tensor([int(token_id) for token_id in token_ids], dtype=torch.long, device=rows.device)
|
| 334 |
+
return rows
|
| 335 |
+
|
| 336 |
+
def _build_audio_rows(self, audio_tokens: torch.Tensor, slot_token_id: int) -> torch.Tensor:
|
| 337 |
+
rows = torch.full(
|
| 338 |
+
(int(audio_tokens.shape[0]), int(self.model_config.n_vq) + 1),
|
| 339 |
+
int(self.model_config.audio_pad_token_id),
|
| 340 |
+
dtype=torch.long,
|
| 341 |
+
device=audio_tokens.device,
|
| 342 |
+
)
|
| 343 |
+
if rows.shape[0] > 0:
|
| 344 |
+
rows[:, 0] = int(slot_token_id)
|
| 345 |
+
rows[:, 1:] = audio_tokens.to(dtype=torch.long)
|
| 346 |
+
return rows
|
| 347 |
+
|
| 348 |
+
def _user_prompt_prefix_ids(self) -> list[int]:
|
| 349 |
+
return (
|
| 350 |
+
[int(self.model_config.im_start_token_id)]
|
| 351 |
+
+ self._encode_text(USER_ROLE_PREFIX)
|
| 352 |
+
+ self._encode_text(USER_TEMPLATE_REFERENCE_PREFIX)
|
| 353 |
+
)
|
| 354 |
+
|
| 355 |
+
def _user_prompt_after_reference_ids(
|
| 356 |
+
self,
|
| 357 |
+
language_code: object | None,
|
| 358 |
+
prompt_fields: Optional[Dict[str, Any]],
|
| 359 |
+
) -> list[int]:
|
| 360 |
+
return self._encode_text(
|
| 361 |
+
_render_user_prompt_after_reference(
|
| 362 |
+
language_code=language_code,
|
| 363 |
+
prompt_fields=prompt_fields,
|
| 364 |
+
)
|
| 365 |
+
)
|
| 366 |
+
|
| 367 |
+
def _assistant_prompt_prefix_ids(self) -> list[int]:
|
| 368 |
+
return (
|
| 369 |
+
self._encode_text(USER_TEMPLATE_SUFFIX)
|
| 370 |
+
+ [int(self.model_config.im_end_token_id)]
|
| 371 |
+
+ self._encode_text(ASSISTANT_TURN_PREFIX)
|
| 372 |
+
+ [int(self.model_config.im_start_token_id)]
|
| 373 |
+
+ self._encode_text(ASSISTANT_ROLE_PREFIX)
|
| 374 |
+
)
|
| 375 |
+
|
| 376 |
+
def _prompt_fields_from_user_message(self, message: Dict[str, Any]) -> dict[str, Any]:
|
| 377 |
+
fields = {}
|
| 378 |
+
for key in ("instruction", "tokens", "quality", "sound_event", "ambient_sound"):
|
| 379 |
+
if key in message and message.get(key) is not None:
|
| 380 |
+
fields[key] = message.get(key)
|
| 381 |
+
if "language" in message and message.get("language") is not None:
|
| 382 |
+
fields["language"] = message.get("language")
|
| 383 |
+
return fields
|
| 384 |
+
|
| 385 |
+
def _build_generation_or_voice_clone_codes(
|
| 386 |
+
self,
|
| 387 |
+
message: Dict[str, Any],
|
| 388 |
+
n_vq: int,
|
| 389 |
+
) -> torch.Tensor:
|
| 390 |
+
if "text" not in message:
|
| 391 |
+
raise ValueError("Direct MOSS-TTS-Local-Transformer-v1.5 generation requires messages built by build_user_message(...).")
|
| 392 |
+
text = "" if message.get("text") is None else str(message.get("text"))
|
| 393 |
+
prompt_fields = self._prompt_fields_from_user_message(message)
|
| 394 |
+
language_code = message.get("language")
|
| 395 |
+
audio_codes_list = self._resolve_audio_items(message.get("audio_codes_list", []), n_vq)
|
| 396 |
+
text_token_ids = self._encode_text(text)
|
| 397 |
+
|
| 398 |
+
if audio_codes_list:
|
| 399 |
+
parts: list[torch.Tensor] = [self._build_text_rows(
|
| 400 |
+
self._user_prompt_prefix_ids(),
|
| 401 |
+
device=audio_codes_list[0].device,
|
| 402 |
+
)]
|
| 403 |
+
for reference_codes in audio_codes_list:
|
| 404 |
+
parts.append(self._build_text_rows([int(self.model_config.audio_start_token_id)], device=reference_codes.device))
|
| 405 |
+
parts.append(self._build_audio_rows(reference_codes, int(self.model_config.audio_user_slot_token_id)))
|
| 406 |
+
parts.append(self._build_text_rows([int(self.model_config.audio_end_token_id)], device=reference_codes.device))
|
| 407 |
+
parts.append(
|
| 408 |
+
self._build_text_rows(
|
| 409 |
+
self._user_prompt_after_reference_ids(language_code, prompt_fields)
|
| 410 |
+
+ text_token_ids
|
| 411 |
+
+ self._assistant_prompt_prefix_ids()
|
| 412 |
+
+ [int(self.model_config.audio_start_token_id)],
|
| 413 |
+
device=audio_codes_list[0].device,
|
| 414 |
+
)
|
| 415 |
+
)
|
| 416 |
+
return torch.cat(parts, dim=0)
|
| 417 |
+
|
| 418 |
+
prompt_token_ids = (
|
| 419 |
+
self._user_prompt_prefix_ids()
|
| 420 |
+
+ self._encode_text("None")
|
| 421 |
+
+ self._user_prompt_after_reference_ids(language_code, prompt_fields)
|
| 422 |
+
+ text_token_ids
|
| 423 |
+
+ self._assistant_prompt_prefix_ids()
|
| 424 |
+
+ [int(self.model_config.audio_start_token_id)]
|
| 425 |
+
)
|
| 426 |
+
return self._build_text_rows(prompt_token_ids)
|
| 427 |
+
|
| 428 |
+
def _build_continuation_codes(
|
| 429 |
+
self,
|
| 430 |
+
conversation: list[Dict[str, Any]],
|
| 431 |
+
n_vq: int,
|
| 432 |
+
) -> torch.Tensor:
|
| 433 |
+
if len(conversation) < 2:
|
| 434 |
+
raise ValueError("continuation mode requires a user message followed by an assistant audio message.")
|
| 435 |
+
user_message = conversation[-2]
|
| 436 |
+
assistant_message = conversation[-1]
|
| 437 |
+
if user_message.get("role") != "user" or assistant_message.get("role") != "assistant":
|
| 438 |
+
raise ValueError("continuation mode requires the last two messages to be user, assistant.")
|
| 439 |
+
if "text" not in user_message:
|
| 440 |
+
raise ValueError("Direct MOSS-TTS-Local-Transformer-v1.5 continuation requires user messages built by build_user_message(...).")
|
| 441 |
+
|
| 442 |
+
text = "" if user_message.get("text") is None else str(user_message.get("text"))
|
| 443 |
+
prompt_fields = self._prompt_fields_from_user_message(user_message)
|
| 444 |
+
language_code = user_message.get("language")
|
| 445 |
+
prompt_token_ids = (
|
| 446 |
+
self._user_prompt_prefix_ids()
|
| 447 |
+
+ self._encode_text("None")
|
| 448 |
+
+ self._user_prompt_after_reference_ids(language_code, prompt_fields)
|
| 449 |
+
+ self._encode_text(text)
|
| 450 |
+
+ self._assistant_prompt_prefix_ids()
|
| 451 |
+
+ [int(self.model_config.audio_start_token_id)]
|
| 452 |
+
)
|
| 453 |
+
audio_codes_list = self._resolve_audio_items(assistant_message.get("audio_codes_list", []), n_vq)
|
| 454 |
+
if not audio_codes_list:
|
| 455 |
+
return self._build_text_rows(prompt_token_ids)
|
| 456 |
+
if len(audio_codes_list) != 1:
|
| 457 |
+
raise ValueError("The MOSS-TTS-Local-Transformer-v1.5 continuation path expects exactly one prompt audio item.")
|
| 458 |
+
prompt_audio_codes = audio_codes_list[0]
|
| 459 |
+
return torch.cat(
|
| 460 |
+
[
|
| 461 |
+
self._build_text_rows(prompt_token_ids, device=prompt_audio_codes.device),
|
| 462 |
+
self._build_audio_rows(prompt_audio_codes, int(self.model_config.audio_assistant_slot_token_id)),
|
| 463 |
+
],
|
| 464 |
+
dim=0,
|
| 465 |
+
)
|
| 466 |
+
|
| 467 |
+
def _try_build_direct_codes(
|
| 468 |
+
self,
|
| 469 |
+
conversation: list[Dict[str, Any]],
|
| 470 |
+
mode: str,
|
| 471 |
+
n_vq: int,
|
| 472 |
+
) -> Optional[torch.Tensor]:
|
| 473 |
+
if mode == "generation" and len(conversation) == 1 and conversation[-1].get("role") == "user":
|
| 474 |
+
if "text" in conversation[-1]:
|
| 475 |
+
return self._build_generation_or_voice_clone_codes(conversation[-1], n_vq)
|
| 476 |
+
return None
|
| 477 |
+
if mode == "continuation" and len(conversation) >= 2:
|
| 478 |
+
if "text" in conversation[-2]:
|
| 479 |
+
return self._build_continuation_codes(conversation, n_vq)
|
| 480 |
+
return None
|
| 481 |
+
return None
|
| 482 |
+
|
| 483 |
+
def __call__(self, *args, **kwargs) -> BatchFeature:
|
| 484 |
+
conversations = args[0] if args else kwargs.pop("conversations")
|
| 485 |
+
mode: str = kwargs.pop("mode", "generation")
|
| 486 |
+
apply_chat_template: bool = kwargs.pop("apply_chat_template", True)
|
| 487 |
+
n_vq = self._assert_fixed_nq(kwargs.pop("n_vq", None))
|
| 488 |
+
|
| 489 |
+
kwargs.pop("return_tensors", None)
|
| 490 |
+
kwargs.pop("padding", None)
|
| 491 |
+
kwargs.pop("truncation", None)
|
| 492 |
+
|
| 493 |
+
if mode not in {"generation", "continuation", "computing_loss"}:
|
| 494 |
+
raise ValueError(f"Unsupported mode: {mode}")
|
| 495 |
+
if isinstance(conversations, (Message, dict)):
|
| 496 |
+
conversations = [conversations]
|
| 497 |
+
elif isinstance(conversations, list) and conversations and all(
|
| 498 |
+
isinstance(item, (Message, dict)) for item in conversations
|
| 499 |
+
):
|
| 500 |
+
conversations = [conversations]
|
| 501 |
+
|
| 502 |
+
input_ids_list: list[torch.Tensor] = []
|
| 503 |
+
for conversation in conversations:
|
| 504 |
+
if isinstance(conversation, (Message, dict)):
|
| 505 |
+
conversation = [conversation]
|
| 506 |
+
conversation = [self._normalize_message(message) for message in conversation]
|
| 507 |
+
|
| 508 |
+
if (mode == "generation") ^ (conversation[-1]["role"] == "user"):
|
| 509 |
+
raise ValueError("generation mode must end with a user message.")
|
| 510 |
+
if mode == "continuation" and conversation[-1]["role"] != "assistant":
|
| 511 |
+
raise ValueError("continuation mode must end with an assistant message.")
|
| 512 |
+
|
| 513 |
+
direct_codes = self._try_build_direct_codes(conversation, mode, n_vq)
|
| 514 |
+
if direct_codes is not None:
|
| 515 |
+
input_ids_list.append(direct_codes)
|
| 516 |
+
continue
|
| 517 |
+
|
| 518 |
+
unified_parts = []
|
| 519 |
+
for message_idx, message in enumerate(conversation):
|
| 520 |
+
content = str(message["content"])
|
| 521 |
+
if apply_chat_template:
|
| 522 |
+
add_generation_prompt = mode == "generation" and message_idx == len(conversation) - 1
|
| 523 |
+
try:
|
| 524 |
+
content = self.tokenizer.apply_chat_template(
|
| 525 |
+
[{"role": message["role"], "content": content}],
|
| 526 |
+
add_generation_prompt=add_generation_prompt,
|
| 527 |
+
tokenize=False,
|
| 528 |
+
)
|
| 529 |
+
except Exception:
|
| 530 |
+
logger.warning("apply_chat_template failed; falling back to raw message content.")
|
| 531 |
+
|
| 532 |
+
raw_audio_items = message.get("audio_codes_list", [])
|
| 533 |
+
audio_codes_list = self._resolve_audio_items(raw_audio_items, n_vq)
|
| 534 |
+
unified_parts.append(
|
| 535 |
+
self._get_unified_codes(
|
| 536 |
+
role=message["role"],
|
| 537 |
+
content=content,
|
| 538 |
+
audio_codes_list=audio_codes_list,
|
| 539 |
+
truncation=(mode == "continuation"),
|
| 540 |
+
)
|
| 541 |
+
)
|
| 542 |
+
|
| 543 |
+
unified_codes = torch.cat(unified_parts, dim=0)
|
| 544 |
+
if mode == "generation":
|
| 545 |
+
audio_start_row = torch.full(
|
| 546 |
+
(1, n_vq + 1),
|
| 547 |
+
int(self.model_config.audio_pad_token_id),
|
| 548 |
+
dtype=unified_codes.dtype,
|
| 549 |
+
device=unified_codes.device,
|
| 550 |
+
)
|
| 551 |
+
audio_start_row[:, 0] = int(self.model_config.audio_start_token_id)
|
| 552 |
+
unified_codes = torch.cat([unified_codes, audio_start_row], dim=0)
|
| 553 |
+
input_ids_list.append(unified_codes)
|
| 554 |
+
|
| 555 |
+
return BatchFeature(data=self._pad(input_ids_list))
|
| 556 |
+
|
| 557 |
+
def _normalize_message(self, message: Union[Message, Dict[str, Any]]) -> Dict[str, Any]:
|
| 558 |
+
if isinstance(message, Message):
|
| 559 |
+
return message.to_dict()
|
| 560 |
+
if not isinstance(message, dict):
|
| 561 |
+
raise TypeError("Each message must be a Message or dict.")
|
| 562 |
+
if "content" in message and "audio_codes_list" in message:
|
| 563 |
+
return message
|
| 564 |
+
role = message.get("role")
|
| 565 |
+
if role == "user":
|
| 566 |
+
return self.build_user_message(**{key: message.get(key) for key in USER_MESSAGE_FIELDS})
|
| 567 |
+
if role == "assistant":
|
| 568 |
+
return self.build_assistant_message(
|
| 569 |
+
audio_codes_list=message.get("audio_codes_list", []),
|
| 570 |
+
content=message.get("content", AUDIO_PLACEHOLDER),
|
| 571 |
+
)
|
| 572 |
+
raise ValueError(f"Unsupported role: {role}")
|
| 573 |
+
|
| 574 |
+
def _resolve_audio_items(
|
| 575 |
+
self,
|
| 576 |
+
raw_audio_items: list[Any],
|
| 577 |
+
n_vq: int,
|
| 578 |
+
) -> list[torch.Tensor]:
|
| 579 |
+
if not raw_audio_items:
|
| 580 |
+
return []
|
| 581 |
+
resolved: list[Optional[torch.Tensor]] = [None] * len(raw_audio_items)
|
| 582 |
+
paths: list[str] = []
|
| 583 |
+
path_positions: list[int] = []
|
| 584 |
+
for index, item in enumerate(raw_audio_items):
|
| 585 |
+
if isinstance(item, torch.Tensor):
|
| 586 |
+
if item.ndim != 2 or int(item.shape[1]) != n_vq:
|
| 587 |
+
raise ValueError(f"audio code tensor must have shape [T, {n_vq}], got {tuple(item.shape)}.")
|
| 588 |
+
resolved[index] = item.to(dtype=torch.long).cpu()
|
| 589 |
+
elif isinstance(item, (str, os.PathLike)):
|
| 590 |
+
paths.append(str(item))
|
| 591 |
+
path_positions.append(index)
|
| 592 |
+
else:
|
| 593 |
+
raise TypeError("Audio items must be tensors or path-like values.")
|
| 594 |
+
if paths:
|
| 595 |
+
encoded = self.encode_audios_from_path(paths, n_vq=n_vq)
|
| 596 |
+
for position, codes in zip(path_positions, encoded):
|
| 597 |
+
resolved[position] = codes
|
| 598 |
+
return [cast(torch.Tensor, item) for item in resolved]
|
| 599 |
+
|
| 600 |
+
def _pad(self, input_ids_list: list[torch.Tensor]) -> Dict[str, torch.Tensor]:
|
| 601 |
+
device = input_ids_list[0].device
|
| 602 |
+
lengths = torch.tensor([item.shape[0] for item in input_ids_list], device=device)
|
| 603 |
+
padded = torch.nn.utils.rnn.pad_sequence(
|
| 604 |
+
input_ids_list,
|
| 605 |
+
batch_first=True,
|
| 606 |
+
padding_value=int(self.model_config.audio_pad_token_id),
|
| 607 |
+
padding_side="left",
|
| 608 |
+
)
|
| 609 |
+
left_pad_mask = (padded.shape[1] - lengths).unsqueeze(1) > torch.arange(
|
| 610 |
+
padded.shape[1],
|
| 611 |
+
device=device,
|
| 612 |
+
).unsqueeze(0)
|
| 613 |
+
padded[..., 0][left_pad_mask] = int(self.model_config.pad_token_id)
|
| 614 |
+
attention_mask = torch.zeros(padded.shape[:2], dtype=torch.bool, device=device)
|
| 615 |
+
attention_mask[~left_pad_mask] = True
|
| 616 |
+
return {"input_ids": padded, "attention_mask": attention_mask}
|
| 617 |
+
|
| 618 |
+
@staticmethod
|
| 619 |
+
def _replace_audio_placeholders(
|
| 620 |
+
content: str,
|
| 621 |
+
lengths: list[int],
|
| 622 |
+
slot_token: str,
|
| 623 |
+
audio_start_token: str,
|
| 624 |
+
audio_end_token: str,
|
| 625 |
+
) -> str:
|
| 626 |
+
placeholder_count = content.count(AUDIO_PLACEHOLDER)
|
| 627 |
+
if placeholder_count != len(lengths):
|
| 628 |
+
raise ValueError(
|
| 629 |
+
f"Number of {AUDIO_PLACEHOLDER} ({placeholder_count}) does not match "
|
| 630 |
+
f"audio item count ({len(lengths)})."
|
| 631 |
+
)
|
| 632 |
+
lengths_iter = iter(lengths)
|
| 633 |
+
|
| 634 |
+
def replacer(_: re.Match) -> str:
|
| 635 |
+
length = int(next(lengths_iter))
|
| 636 |
+
if length <= 0:
|
| 637 |
+
return f"{audio_start_token}{audio_end_token}"
|
| 638 |
+
return f"{audio_start_token}{slot_token * length}{audio_end_token}"
|
| 639 |
+
|
| 640 |
+
return re.sub(re.escape(AUDIO_PLACEHOLDER), replacer, content)
|
| 641 |
+
|
| 642 |
+
def _get_unified_codes(
|
| 643 |
+
self,
|
| 644 |
+
role: str,
|
| 645 |
+
content: str,
|
| 646 |
+
audio_codes_list: list[torch.Tensor],
|
| 647 |
+
truncation: bool,
|
| 648 |
+
) -> torch.Tensor:
|
| 649 |
+
n_vq = int(self.model_config.n_vq)
|
| 650 |
+
slot_token = self.audio_user_slot_token if role == "user" else self.audio_assistant_slot_token
|
| 651 |
+
content = self._replace_audio_placeholders(
|
| 652 |
+
content=content,
|
| 653 |
+
lengths=[int(codes.shape[0]) for codes in audio_codes_list],
|
| 654 |
+
slot_token=slot_token,
|
| 655 |
+
audio_start_token=self.audio_start_token,
|
| 656 |
+
audio_end_token=self.audio_end_token,
|
| 657 |
+
)
|
| 658 |
+
text_codes = torch.tensor(
|
| 659 |
+
self.tokenizer.encode(content),
|
| 660 |
+
dtype=torch.long,
|
| 661 |
+
device=audio_codes_list[0].device if audio_codes_list else None,
|
| 662 |
+
)
|
| 663 |
+
|
| 664 |
+
audio_start_indices = torch.where(text_codes == int(self.model_config.audio_start_token_id))[0]
|
| 665 |
+
audio_end_indices = torch.where(text_codes == int(self.model_config.audio_end_token_id))[0]
|
| 666 |
+
if len(audio_start_indices) != len(audio_codes_list) or len(audio_end_indices) != len(audio_codes_list):
|
| 667 |
+
raise ValueError("Audio placeholders do not match the encoded audio spans.")
|
| 668 |
+
|
| 669 |
+
if not audio_codes_list:
|
| 670 |
+
audio_codes = torch.full(
|
| 671 |
+
(len(text_codes), n_vq),
|
| 672 |
+
int(self.model_config.audio_pad_token_id),
|
| 673 |
+
dtype=torch.long,
|
| 674 |
+
device=text_codes.device,
|
| 675 |
+
)
|
| 676 |
+
else:
|
| 677 |
+
pieces: list[torch.Tensor] = []
|
| 678 |
+
prefix_idx = 0
|
| 679 |
+
for start_t, end_t, codes in zip(audio_start_indices, audio_end_indices, audio_codes_list):
|
| 680 |
+
start_idx = int(start_t.item())
|
| 681 |
+
end_idx = int(end_t.item())
|
| 682 |
+
pad_before = torch.full(
|
| 683 |
+
(start_idx - prefix_idx + 1, n_vq),
|
| 684 |
+
int(self.model_config.audio_pad_token_id),
|
| 685 |
+
dtype=torch.long,
|
| 686 |
+
device=codes.device,
|
| 687 |
+
)
|
| 688 |
+
pieces.extend([pad_before, codes.to(dtype=torch.long)])
|
| 689 |
+
prefix_idx = end_idx
|
| 690 |
+
if truncation:
|
| 691 |
+
trailing = torch.zeros(
|
| 692 |
+
(0, n_vq),
|
| 693 |
+
dtype=torch.long,
|
| 694 |
+
device=audio_codes_list[0].device,
|
| 695 |
+
)
|
| 696 |
+
else:
|
| 697 |
+
last_end = int(audio_end_indices[-1].item())
|
| 698 |
+
trailing = torch.full(
|
| 699 |
+
(len(text_codes) - last_end, n_vq),
|
| 700 |
+
int(self.model_config.audio_pad_token_id),
|
| 701 |
+
dtype=torch.long,
|
| 702 |
+
device=audio_codes_list[0].device,
|
| 703 |
+
)
|
| 704 |
+
pieces.append(trailing)
|
| 705 |
+
audio_codes = torch.cat(pieces, dim=0)
|
| 706 |
+
|
| 707 |
+
if text_codes.shape[0] != audio_codes.shape[0]:
|
| 708 |
+
min_len = min(text_codes.shape[0], audio_codes.shape[0])
|
| 709 |
+
text_codes = text_codes[:min_len]
|
| 710 |
+
audio_codes = audio_codes[:min_len]
|
| 711 |
+
return torch.cat([text_codes.unsqueeze(1), audio_codes], dim=1)
|
| 712 |
+
|
| 713 |
+
def _parse_text_codes(self, start_length: int, text_codes: torch.LongTensor) -> str:
|
| 714 |
+
text = cast(str, self.tokenizer.decode(text_codes))
|
| 715 |
+
prefix = cast(str, self.tokenizer.decode(text_codes[:start_length]))
|
| 716 |
+
text = text[len(prefix):]
|
| 717 |
+
audio_pattern = re.compile(
|
| 718 |
+
rf"(?:{re.escape(self.audio_start_token)})?"
|
| 719 |
+
rf"(?:{re.escape(self.audio_assistant_slot_token)})*"
|
| 720 |
+
rf"{re.escape(self.audio_end_token)}"
|
| 721 |
+
)
|
| 722 |
+
return audio_pattern.sub(
|
| 723 |
+
lambda match: AUDIO_PLACEHOLDER if self.audio_assistant_slot_token in match.group(0) else "",
|
| 724 |
+
text,
|
| 725 |
+
)
|
| 726 |
+
|
| 727 |
+
def _parse_audio_codes(
|
| 728 |
+
self,
|
| 729 |
+
start_length: int,
|
| 730 |
+
audio_codes: torch.LongTensor,
|
| 731 |
+
*,
|
| 732 |
+
return_stereo: bool = True,
|
| 733 |
+
) -> list[torch.Tensor]:
|
| 734 |
+
is_pad = audio_codes.eq(int(self.model_config.audio_pad_token_id)).all(dim=1)
|
| 735 |
+
non_pad = ~is_pad
|
| 736 |
+
if not bool(non_pad.any().item()):
|
| 737 |
+
return []
|
| 738 |
+
idx = torch.nonzero(non_pad).squeeze(1)
|
| 739 |
+
breaks = torch.where(idx[1:] != idx[:-1] + 1)[0] + 1
|
| 740 |
+
segment_indices = [idx] if breaks.numel() == 0 else list(torch.tensor_split(idx, breaks.cpu().tolist()))
|
| 741 |
+
code_segments = [audio_codes[segment] for segment in segment_indices]
|
| 742 |
+
decoded = self.decode_audio_codes(code_segments, return_stereo=return_stereo)
|
| 743 |
+
|
| 744 |
+
if start_length > 0 and code_segments and decoded:
|
| 745 |
+
first_code_length = int(code_segments[0].shape[0])
|
| 746 |
+
if first_code_length > 0:
|
| 747 |
+
trim_ratio = max(0.0, min(float(start_length) / float(first_code_length), 1.0))
|
| 748 |
+
if trim_ratio >= 1.0:
|
| 749 |
+
decoded = decoded[1:]
|
| 750 |
+
elif trim_ratio > 0.0:
|
| 751 |
+
trim_samples = int(decoded[0].shape[-1] * trim_ratio)
|
| 752 |
+
decoded[0] = decoded[0][..., trim_samples:]
|
| 753 |
+
return decoded
|
| 754 |
+
|
| 755 |
+
def decode(self, output: Any, *, return_stereo: bool = True) -> list[Optional[AssistantMessage]]:
|
| 756 |
+
generated_messages: list[Optional[AssistantMessage]] = []
|
| 757 |
+
for start_length, generation_ids in output:
|
| 758 |
+
content = self._parse_text_codes(int(start_length), generation_ids[:, 0])
|
| 759 |
+
audio_codes_list = self._parse_audio_codes(
|
| 760 |
+
int(start_length),
|
| 761 |
+
generation_ids[:, 1:],
|
| 762 |
+
return_stereo=return_stereo,
|
| 763 |
+
)
|
| 764 |
+
if content == "":
|
| 765 |
+
generated_messages.append(None)
|
| 766 |
+
else:
|
| 767 |
+
generated_messages.append(
|
| 768 |
+
AssistantMessage(
|
| 769 |
+
content=content,
|
| 770 |
+
audio_codes_list=cast(list[Union[str, torch.Tensor]], audio_codes_list),
|
| 771 |
+
)
|
| 772 |
+
)
|
| 773 |
+
return generated_messages
|
| 774 |
+
|
| 775 |
+
@staticmethod
|
| 776 |
+
def loudness_normalize(
|
| 777 |
+
wav: torch.Tensor,
|
| 778 |
+
target_dbfs: float = -20.0,
|
| 779 |
+
gain_range: tuple[float, float] = (-3.0, 3.0),
|
| 780 |
+
) -> torch.Tensor:
|
| 781 |
+
wav = wav.to(torch.float32)
|
| 782 |
+
if wav.numel() == 0:
|
| 783 |
+
return wav
|
| 784 |
+
current_dbfs = 10.0 * torch.log10(torch.mean(wav**2) + 1e-9)
|
| 785 |
+
gain = max(gain_range[0], min(float(target_dbfs - current_dbfs), gain_range[1]))
|
| 786 |
+
return wav * (10.0 ** (gain / 20.0))
|
| 787 |
+
|
| 788 |
+
def _get_audio_tokenizer_device(self) -> torch.device:
|
| 789 |
+
audio_tokenizer = getattr(self, "audio_tokenizer", None)
|
| 790 |
+
if audio_tokenizer is None:
|
| 791 |
+
raise RuntimeError("audio_tokenizer is not set.")
|
| 792 |
+
try:
|
| 793 |
+
return next(audio_tokenizer.parameters()).device
|
| 794 |
+
except StopIteration:
|
| 795 |
+
return torch.device("cpu")
|
| 796 |
+
|
| 797 |
+
def encode_audios_from_wav(
|
| 798 |
+
self,
|
| 799 |
+
wav_list: Union[torch.Tensor, list[torch.Tensor]],
|
| 800 |
+
sampling_rate: int,
|
| 801 |
+
n_vq: Optional[int] = None,
|
| 802 |
+
) -> list[torch.Tensor]:
|
| 803 |
+
n_vq = self._assert_fixed_nq(n_vq)
|
| 804 |
+
if self.audio_tokenizer is None:
|
| 805 |
+
raise RuntimeError("audio_tokenizer is not set.")
|
| 806 |
+
if isinstance(wav_list, torch.Tensor):
|
| 807 |
+
wav_list = [wav_list]
|
| 808 |
+
target_sr = int(self.model_config.sampling_rate)
|
| 809 |
+
device = self._get_audio_tokenizer_device()
|
| 810 |
+
prepared = []
|
| 811 |
+
for wav in wav_list:
|
| 812 |
+
if wav.ndim == 1:
|
| 813 |
+
wav = wav.unsqueeze(0)
|
| 814 |
+
if wav.shape[0] == 1:
|
| 815 |
+
wav = wav.repeat(2, 1)
|
| 816 |
+
elif wav.shape[0] > 2:
|
| 817 |
+
wav = wav[:2]
|
| 818 |
+
if int(sampling_rate) != target_sr:
|
| 819 |
+
wav = torchaudio.functional.resample(wav, int(sampling_rate), target_sr)
|
| 820 |
+
prepared.append(self.loudness_normalize(wav).to(device))
|
| 821 |
+
|
| 822 |
+
if hasattr(self.audio_tokenizer, "batch_encode"):
|
| 823 |
+
encoded = self.audio_tokenizer.batch_encode(prepared, num_quantizers=n_vq)
|
| 824 |
+
audio_codes = encoded.audio_codes
|
| 825 |
+
audio_lengths = encoded.audio_codes_lengths
|
| 826 |
+
else:
|
| 827 |
+
max_len = max(int(wav.shape[-1]) for wav in prepared)
|
| 828 |
+
input_values = torch.zeros(len(prepared), 1, max_len, dtype=torch.float32, device=device)
|
| 829 |
+
padding_mask = torch.zeros(len(prepared), max_len, dtype=torch.bool, device=device)
|
| 830 |
+
for index, wav in enumerate(prepared):
|
| 831 |
+
input_values[index, 0, : wav.shape[-1]] = wav
|
| 832 |
+
padding_mask[index, : wav.shape[-1]] = True
|
| 833 |
+
encoded = self.audio_tokenizer.encode(
|
| 834 |
+
input_values,
|
| 835 |
+
padding_mask=padding_mask,
|
| 836 |
+
num_quantizers=n_vq,
|
| 837 |
+
return_dict=True,
|
| 838 |
+
)
|
| 839 |
+
audio_codes = encoded.audio_codes
|
| 840 |
+
audio_lengths = encoded.audio_codes_lengths
|
| 841 |
+
|
| 842 |
+
if audio_codes is None or audio_lengths is None:
|
| 843 |
+
raise RuntimeError("audio_tokenizer did not return audio_codes/audio_codes_lengths.")
|
| 844 |
+
result = []
|
| 845 |
+
for index in range(int(audio_codes.shape[1])):
|
| 846 |
+
length = int(audio_lengths[index].item())
|
| 847 |
+
result.append(audio_codes[:, index, :length].transpose(0, 1).contiguous().cpu().long())
|
| 848 |
+
return result
|
| 849 |
+
|
| 850 |
+
def encode_audios_from_path(
|
| 851 |
+
self,
|
| 852 |
+
wav_path_list: Union[str, os.PathLike, list[Union[str, os.PathLike]]],
|
| 853 |
+
n_vq: Optional[int] = None,
|
| 854 |
+
) -> list[torch.Tensor]:
|
| 855 |
+
if isinstance(wav_path_list, (str, os.PathLike)):
|
| 856 |
+
wav_path_list = [wav_path_list]
|
| 857 |
+
wavs = []
|
| 858 |
+
target_sr = int(self.model_config.sampling_rate)
|
| 859 |
+
for wav_path in wav_path_list:
|
| 860 |
+
wav, sr = torchaudio.load(str(wav_path))
|
| 861 |
+
if int(sr) != target_sr:
|
| 862 |
+
wav = torchaudio.functional.resample(wav, int(sr), target_sr)
|
| 863 |
+
wavs.append(wav)
|
| 864 |
+
return self.encode_audios_from_wav(wavs, target_sr, n_vq=n_vq)
|
| 865 |
+
|
| 866 |
+
def decode_audio_codes(
|
| 867 |
+
self,
|
| 868 |
+
audio_tokens_list: Union[torch.Tensor, list[torch.Tensor]],
|
| 869 |
+
*,
|
| 870 |
+
return_stereo: bool = True,
|
| 871 |
+
) -> list[torch.Tensor]:
|
| 872 |
+
if self.audio_tokenizer is None:
|
| 873 |
+
raise RuntimeError("audio_tokenizer is not set.")
|
| 874 |
+
if isinstance(audio_tokens_list, torch.Tensor):
|
| 875 |
+
audio_tokens_list = [audio_tokens_list]
|
| 876 |
+
if not audio_tokens_list:
|
| 877 |
+
return []
|
| 878 |
+
|
| 879 |
+
n_vq = int(self.model_config.n_vq)
|
| 880 |
+
device = self._get_audio_tokenizer_device()
|
| 881 |
+
codes_list = [
|
| 882 |
+
codes[:, :n_vq].transpose(0, 1).contiguous().to(device=device, dtype=torch.long)
|
| 883 |
+
for codes in audio_tokens_list
|
| 884 |
+
]
|
| 885 |
+
max_len = max(int(codes.shape[1]) for codes in codes_list)
|
| 886 |
+
audio_codes = torch.zeros(n_vq, len(codes_list), max_len, device=device, dtype=torch.long)
|
| 887 |
+
padding_mask = torch.zeros(len(codes_list), max_len, device=device, dtype=torch.bool)
|
| 888 |
+
for index, codes in enumerate(codes_list):
|
| 889 |
+
length = int(codes.shape[1])
|
| 890 |
+
audio_codes[:, index, :length] = codes
|
| 891 |
+
padding_mask[index, :length] = True
|
| 892 |
+
|
| 893 |
+
decoded = self.audio_tokenizer.decode(
|
| 894 |
+
audio_codes,
|
| 895 |
+
padding_mask=padding_mask,
|
| 896 |
+
num_quantizers=n_vq,
|
| 897 |
+
return_dict=True,
|
| 898 |
+
chunk_duration=8,
|
| 899 |
+
)
|
| 900 |
+
audio = decoded.audio
|
| 901 |
+
audio_lengths = decoded.audio_lengths
|
| 902 |
+
if audio is None or audio_lengths is None:
|
| 903 |
+
raise RuntimeError("audio_tokenizer.decode did not return audio/audio_lengths.")
|
| 904 |
+
wavs = []
|
| 905 |
+
for index in range(int(audio.shape[0])):
|
| 906 |
+
length = int(audio_lengths[index].item())
|
| 907 |
+
wav = audio[index, :, :length].contiguous().cpu().to(torch.float32)
|
| 908 |
+
if not return_stereo:
|
| 909 |
+
if wav.shape[0] == 1:
|
| 910 |
+
wav = wav.squeeze(0)
|
| 911 |
+
else:
|
| 912 |
+
wav = wav.mean(dim=0)
|
| 913 |
+
wavs.append(wav)
|
| 914 |
+
return wavs
|
processor_config.json
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"processor_class": "MossTTSLocalProcessor",
|
| 3 |
+
"auto_map": {
|
| 4 |
+
"AutoProcessor": "processing_moss_tts.MossTTSLocalProcessor"
|
| 5 |
+
},
|
| 6 |
+
"audio_tokenizer_name_or_path": "OpenMOSS-Team/MOSS-Audio-Tokenizer-v2"
|
| 7 |
+
}
|
qwen3_decoder.py
ADDED
|
@@ -0,0 +1,582 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# coding=utf-8
|
| 2 |
+
from __future__ import annotations
|
| 3 |
+
|
| 4 |
+
import json
|
| 5 |
+
from pathlib import Path
|
| 6 |
+
from typing import Optional
|
| 7 |
+
|
| 8 |
+
import torch
|
| 9 |
+
import torch.nn as nn
|
| 10 |
+
import torch.utils.checkpoint
|
| 11 |
+
from safetensors.torch import load_file
|
| 12 |
+
from transformers.activations import ACT2FN
|
| 13 |
+
from transformers.modeling_outputs import BaseModelOutputWithPast
|
| 14 |
+
|
| 15 |
+
from .gpt2_decoder import PackedSequenceMetadata, MossTTSNanoGPT2Model
|
| 16 |
+
|
| 17 |
+
try:
|
| 18 |
+
from flash_attn import flash_attn_func, flash_attn_varlen_func
|
| 19 |
+
from flash_attn.bert_padding import pad_input, unpad_input
|
| 20 |
+
|
| 21 |
+
_FLASH_ATTN_AVAILABLE = True
|
| 22 |
+
except Exception:
|
| 23 |
+
flash_attn_func = None
|
| 24 |
+
flash_attn_varlen_func = None
|
| 25 |
+
pad_input = None
|
| 26 |
+
unpad_input = None
|
| 27 |
+
_FLASH_ATTN_AVAILABLE = False
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
class MossQwen3RMSNorm(nn.Module):
|
| 31 |
+
def __init__(self, hidden_size: int, eps: float = 1e-6) -> None:
|
| 32 |
+
super().__init__()
|
| 33 |
+
self.weight = nn.Parameter(torch.ones(hidden_size))
|
| 34 |
+
self.variance_epsilon = eps
|
| 35 |
+
|
| 36 |
+
def forward(self, hidden_states: torch.Tensor) -> torch.Tensor:
|
| 37 |
+
input_dtype = hidden_states.dtype
|
| 38 |
+
hidden_states = hidden_states.to(torch.float32)
|
| 39 |
+
variance = hidden_states.pow(2).mean(-1, keepdim=True)
|
| 40 |
+
hidden_states = hidden_states * torch.rsqrt(variance + self.variance_epsilon)
|
| 41 |
+
return self.weight * hidden_states.to(input_dtype)
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
class MossQwen3RotaryEmbedding(nn.Module):
|
| 45 |
+
def __init__(self, config) -> None:
|
| 46 |
+
super().__init__()
|
| 47 |
+
head_dim = int(getattr(config, "head_dim", config.hidden_size // config.num_attention_heads))
|
| 48 |
+
rope_theta = getattr(config, "rope_theta", None)
|
| 49 |
+
if rope_theta is None:
|
| 50 |
+
rope_scaling = getattr(config, "rope_scaling", None)
|
| 51 |
+
if isinstance(rope_scaling, dict):
|
| 52 |
+
rope_theta = rope_scaling.get("rope_theta")
|
| 53 |
+
if rope_theta is None:
|
| 54 |
+
rope_theta = 1000000.0
|
| 55 |
+
rope_theta = float(rope_theta)
|
| 56 |
+
self.head_dim = head_dim
|
| 57 |
+
self.rope_theta = rope_theta
|
| 58 |
+
self.register_buffer("inv_freq", self._compute_inv_freq(), persistent=False)
|
| 59 |
+
|
| 60 |
+
def _compute_inv_freq(self, device: Optional[torch.device] = None) -> torch.Tensor:
|
| 61 |
+
return 1.0 / (
|
| 62 |
+
self.rope_theta ** (torch.arange(0, self.head_dim, 2, device=device, dtype=torch.float32) / self.head_dim)
|
| 63 |
+
)
|
| 64 |
+
|
| 65 |
+
def forward(
|
| 66 |
+
self,
|
| 67 |
+
hidden_states: torch.Tensor,
|
| 68 |
+
position_ids: torch.LongTensor,
|
| 69 |
+
) -> tuple[torch.Tensor, torch.Tensor]:
|
| 70 |
+
inv_freq = self._compute_inv_freq(device=hidden_states.device)
|
| 71 |
+
freqs = torch.einsum(
|
| 72 |
+
"bs,d->bsd",
|
| 73 |
+
position_ids.to(device=hidden_states.device, dtype=inv_freq.dtype),
|
| 74 |
+
inv_freq,
|
| 75 |
+
)
|
| 76 |
+
emb = torch.cat((freqs, freqs), dim=-1)
|
| 77 |
+
return emb.cos().to(dtype=hidden_states.dtype), emb.sin().to(dtype=hidden_states.dtype)
|
| 78 |
+
|
| 79 |
+
|
| 80 |
+
def rotate_half(hidden_states: torch.Tensor) -> torch.Tensor:
|
| 81 |
+
first_half = hidden_states[..., : hidden_states.shape[-1] // 2]
|
| 82 |
+
second_half = hidden_states[..., hidden_states.shape[-1] // 2 :]
|
| 83 |
+
return torch.cat((-second_half, first_half), dim=-1)
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
def apply_rotary_pos_emb(
|
| 87 |
+
query: torch.Tensor,
|
| 88 |
+
key: torch.Tensor,
|
| 89 |
+
cos: torch.Tensor,
|
| 90 |
+
sin: torch.Tensor,
|
| 91 |
+
) -> tuple[torch.Tensor, torch.Tensor]:
|
| 92 |
+
cos = cos.unsqueeze(-2)
|
| 93 |
+
sin = sin.unsqueeze(-2)
|
| 94 |
+
query = (query * cos) + (rotate_half(query) * sin)
|
| 95 |
+
key = (key * cos) + (rotate_half(key) * sin)
|
| 96 |
+
return query, key
|
| 97 |
+
|
| 98 |
+
|
| 99 |
+
def repeat_kv(hidden_states: torch.Tensor, n_rep: int) -> torch.Tensor:
|
| 100 |
+
if n_rep == 1:
|
| 101 |
+
return hidden_states
|
| 102 |
+
batch, seq_len, num_key_value_heads, head_dim = hidden_states.shape
|
| 103 |
+
hidden_states = hidden_states[:, :, :, None, :].expand(batch, seq_len, num_key_value_heads, n_rep, head_dim)
|
| 104 |
+
return hidden_states.reshape(batch, seq_len, num_key_value_heads * n_rep, head_dim)
|
| 105 |
+
|
| 106 |
+
|
| 107 |
+
class MossQwen3MLP(nn.Module):
|
| 108 |
+
def __init__(self, config) -> None:
|
| 109 |
+
super().__init__()
|
| 110 |
+
self.gate_proj = nn.Linear(config.hidden_size, config.intermediate_size, bias=False)
|
| 111 |
+
self.up_proj = nn.Linear(config.hidden_size, config.intermediate_size, bias=False)
|
| 112 |
+
self.down_proj = nn.Linear(config.intermediate_size, config.hidden_size, bias=False)
|
| 113 |
+
self.act_fn = ACT2FN[getattr(config, "hidden_act", "silu")]
|
| 114 |
+
|
| 115 |
+
def forward(self, hidden_states: torch.Tensor) -> torch.Tensor:
|
| 116 |
+
return self.down_proj(self.act_fn(self.gate_proj(hidden_states)) * self.up_proj(hidden_states))
|
| 117 |
+
|
| 118 |
+
|
| 119 |
+
class MossQwen3Attention(nn.Module):
|
| 120 |
+
def __init__(self, config, layer_idx: int) -> None:
|
| 121 |
+
super().__init__()
|
| 122 |
+
self.config = config
|
| 123 |
+
self.layer_idx = int(layer_idx)
|
| 124 |
+
self.hidden_size = int(config.hidden_size)
|
| 125 |
+
self.num_heads = int(config.num_attention_heads)
|
| 126 |
+
self.num_key_value_heads = int(config.num_key_value_heads)
|
| 127 |
+
self.head_dim = int(getattr(config, "head_dim", self.hidden_size // self.num_heads))
|
| 128 |
+
self.num_key_value_groups = self.num_heads // self.num_key_value_heads
|
| 129 |
+
self.scaling = self.head_dim ** -0.5
|
| 130 |
+
self.attention_dropout = float(getattr(config, "attention_dropout", 0.0))
|
| 131 |
+
self.attn_implementation = str(getattr(config, "_attn_implementation", "eager"))
|
| 132 |
+
|
| 133 |
+
self.q_proj = nn.Linear(self.hidden_size, self.num_heads * self.head_dim, bias=bool(config.attention_bias))
|
| 134 |
+
self.k_proj = nn.Linear(
|
| 135 |
+
self.hidden_size,
|
| 136 |
+
self.num_key_value_heads * self.head_dim,
|
| 137 |
+
bias=bool(config.attention_bias),
|
| 138 |
+
)
|
| 139 |
+
self.v_proj = nn.Linear(
|
| 140 |
+
self.hidden_size,
|
| 141 |
+
self.num_key_value_heads * self.head_dim,
|
| 142 |
+
bias=bool(config.attention_bias),
|
| 143 |
+
)
|
| 144 |
+
self.o_proj = nn.Linear(self.num_heads * self.head_dim, self.hidden_size, bias=bool(config.attention_bias))
|
| 145 |
+
self.q_norm = MossQwen3RMSNorm(self.head_dim, eps=float(config.rms_norm_eps))
|
| 146 |
+
self.k_norm = MossQwen3RMSNorm(self.head_dim, eps=float(config.rms_norm_eps))
|
| 147 |
+
|
| 148 |
+
def _causal_attention_mask(
|
| 149 |
+
self,
|
| 150 |
+
attention_mask: Optional[torch.Tensor],
|
| 151 |
+
query_length: int,
|
| 152 |
+
key_length: int,
|
| 153 |
+
device: torch.device,
|
| 154 |
+
) -> torch.Tensor:
|
| 155 |
+
query_positions = torch.arange(query_length, device=device, dtype=torch.long)
|
| 156 |
+
query_positions = query_positions + max(key_length - query_length, 0)
|
| 157 |
+
key_positions = torch.arange(key_length, device=device, dtype=torch.long)
|
| 158 |
+
causal = key_positions.unsqueeze(0) <= query_positions.unsqueeze(1)
|
| 159 |
+
causal = causal.unsqueeze(0).unsqueeze(0)
|
| 160 |
+
if attention_mask is None:
|
| 161 |
+
return causal
|
| 162 |
+
key_mask = attention_mask[:, None, None, :].to(dtype=torch.bool)
|
| 163 |
+
return causal & key_mask
|
| 164 |
+
|
| 165 |
+
def _eager_attention(
|
| 166 |
+
self,
|
| 167 |
+
query: torch.Tensor,
|
| 168 |
+
key: torch.Tensor,
|
| 169 |
+
value: torch.Tensor,
|
| 170 |
+
attention_mask: Optional[torch.Tensor],
|
| 171 |
+
) -> torch.Tensor:
|
| 172 |
+
key = repeat_kv(key, self.num_key_value_groups)
|
| 173 |
+
value = repeat_kv(value, self.num_key_value_groups)
|
| 174 |
+
query = query.transpose(1, 2)
|
| 175 |
+
key = key.transpose(1, 2)
|
| 176 |
+
value = value.transpose(1, 2)
|
| 177 |
+
scores = torch.matmul(query, key.transpose(-1, -2)) * self.scaling
|
| 178 |
+
mask = self._causal_attention_mask(
|
| 179 |
+
attention_mask=attention_mask,
|
| 180 |
+
query_length=query.shape[-2],
|
| 181 |
+
key_length=key.shape[-2],
|
| 182 |
+
device=query.device,
|
| 183 |
+
)
|
| 184 |
+
scores = scores.masked_fill(~mask, torch.finfo(scores.dtype).min)
|
| 185 |
+
probs = torch.softmax(scores, dim=-1)
|
| 186 |
+
if self.training and self.attention_dropout > 0:
|
| 187 |
+
probs = torch.dropout(probs, self.attention_dropout, train=True)
|
| 188 |
+
output = torch.matmul(probs, value)
|
| 189 |
+
return output.transpose(1, 2).contiguous()
|
| 190 |
+
|
| 191 |
+
def _sdpa_attention(
|
| 192 |
+
self,
|
| 193 |
+
query: torch.Tensor,
|
| 194 |
+
key: torch.Tensor,
|
| 195 |
+
value: torch.Tensor,
|
| 196 |
+
attention_mask: Optional[torch.Tensor],
|
| 197 |
+
) -> torch.Tensor:
|
| 198 |
+
key = repeat_kv(key, self.num_key_value_groups)
|
| 199 |
+
value = repeat_kv(value, self.num_key_value_groups)
|
| 200 |
+
query = query.transpose(1, 2)
|
| 201 |
+
key = key.transpose(1, 2)
|
| 202 |
+
value = value.transpose(1, 2)
|
| 203 |
+
mask = None
|
| 204 |
+
if attention_mask is not None or query.shape[-2] != key.shape[-2]:
|
| 205 |
+
mask = self._causal_attention_mask(
|
| 206 |
+
attention_mask=attention_mask,
|
| 207 |
+
query_length=query.shape[-2],
|
| 208 |
+
key_length=key.shape[-2],
|
| 209 |
+
device=query.device,
|
| 210 |
+
)
|
| 211 |
+
output = torch.nn.functional.scaled_dot_product_attention(
|
| 212 |
+
query,
|
| 213 |
+
key,
|
| 214 |
+
value,
|
| 215 |
+
attn_mask=mask,
|
| 216 |
+
dropout_p=self.attention_dropout if self.training else 0.0,
|
| 217 |
+
is_causal=mask is None,
|
| 218 |
+
scale=self.scaling,
|
| 219 |
+
)
|
| 220 |
+
return output.transpose(1, 2).contiguous()
|
| 221 |
+
|
| 222 |
+
def _flash_attention(
|
| 223 |
+
self,
|
| 224 |
+
query: torch.Tensor,
|
| 225 |
+
key: torch.Tensor,
|
| 226 |
+
value: torch.Tensor,
|
| 227 |
+
attention_mask: Optional[torch.Tensor],
|
| 228 |
+
packed_metadata: Optional[PackedSequenceMetadata],
|
| 229 |
+
) -> torch.Tensor:
|
| 230 |
+
if not _FLASH_ATTN_AVAILABLE:
|
| 231 |
+
raise ImportError("flash_attn is not installed, but attn_implementation='flash_attention_2' was requested.")
|
| 232 |
+
if query.device.type != "cuda":
|
| 233 |
+
raise ValueError("flash_attention_2 requires CUDA tensors.")
|
| 234 |
+
if query.dtype not in (torch.float16, torch.bfloat16):
|
| 235 |
+
raise ValueError(f"flash_attention_2 requires fp16/bf16 tensors, got dtype={query.dtype}.")
|
| 236 |
+
|
| 237 |
+
dropout_p = self.attention_dropout if self.training else 0.0
|
| 238 |
+
if packed_metadata is not None:
|
| 239 |
+
if packed_metadata.indices is not None:
|
| 240 |
+
query = query.reshape(-1, self.num_heads, self.head_dim).index_select(0, packed_metadata.indices)
|
| 241 |
+
key = key.reshape(-1, self.num_key_value_heads, self.head_dim).index_select(0, packed_metadata.indices)
|
| 242 |
+
value = value.reshape(-1, self.num_key_value_heads, self.head_dim).index_select(0, packed_metadata.indices)
|
| 243 |
+
output = flash_attn_varlen_func(
|
| 244 |
+
query,
|
| 245 |
+
key,
|
| 246 |
+
value,
|
| 247 |
+
packed_metadata.cu_seqlens,
|
| 248 |
+
packed_metadata.cu_seqlens,
|
| 249 |
+
packed_metadata.max_seqlen,
|
| 250 |
+
packed_metadata.max_seqlen,
|
| 251 |
+
dropout_p=dropout_p,
|
| 252 |
+
causal=True,
|
| 253 |
+
)
|
| 254 |
+
if packed_metadata.indices is None:
|
| 255 |
+
return output
|
| 256 |
+
return pad_input(
|
| 257 |
+
output,
|
| 258 |
+
packed_metadata.indices,
|
| 259 |
+
packed_metadata.batch_size,
|
| 260 |
+
packed_metadata.seq_len,
|
| 261 |
+
)
|
| 262 |
+
|
| 263 |
+
if attention_mask is None or bool(attention_mask.all()):
|
| 264 |
+
return flash_attn_func(query, key, value, dropout_p=dropout_p, causal=True)
|
| 265 |
+
|
| 266 |
+
if query.shape[1] != key.shape[1]:
|
| 267 |
+
query_attention_mask = attention_mask[:, -query.shape[1] :]
|
| 268 |
+
unpadded_query, query_indices, cu_seqlens_q, max_seqlen_q, _ = unpad_input(
|
| 269 |
+
query,
|
| 270 |
+
query_attention_mask,
|
| 271 |
+
)
|
| 272 |
+
unpadded_key, _, cu_seqlens_k, max_seqlen_k, _ = unpad_input(key, attention_mask)
|
| 273 |
+
unpadded_value, _, _, _, _ = unpad_input(value, attention_mask)
|
| 274 |
+
output = flash_attn_varlen_func(
|
| 275 |
+
unpadded_query,
|
| 276 |
+
unpadded_key,
|
| 277 |
+
unpadded_value,
|
| 278 |
+
cu_seqlens_q,
|
| 279 |
+
cu_seqlens_k,
|
| 280 |
+
max_seqlen_q,
|
| 281 |
+
max_seqlen_k,
|
| 282 |
+
dropout_p=dropout_p,
|
| 283 |
+
causal=True,
|
| 284 |
+
)
|
| 285 |
+
return pad_input(output, query_indices, query.shape[0], query.shape[1])
|
| 286 |
+
|
| 287 |
+
unpadded_query, indices, cu_seqlens, max_seqlen, _ = unpad_input(query, attention_mask)
|
| 288 |
+
unpadded_key, _, _, _, _ = unpad_input(key, attention_mask)
|
| 289 |
+
unpadded_value, _, _, _, _ = unpad_input(value, attention_mask)
|
| 290 |
+
output = flash_attn_varlen_func(
|
| 291 |
+
unpadded_query,
|
| 292 |
+
unpadded_key,
|
| 293 |
+
unpadded_value,
|
| 294 |
+
cu_seqlens,
|
| 295 |
+
cu_seqlens,
|
| 296 |
+
max_seqlen,
|
| 297 |
+
max_seqlen,
|
| 298 |
+
dropout_p=dropout_p,
|
| 299 |
+
causal=True,
|
| 300 |
+
)
|
| 301 |
+
return pad_input(output, indices, query.shape[0], query.shape[1])
|
| 302 |
+
|
| 303 |
+
def forward(
|
| 304 |
+
self,
|
| 305 |
+
hidden_states: torch.Tensor,
|
| 306 |
+
position_embeddings: tuple[torch.Tensor, torch.Tensor],
|
| 307 |
+
attention_mask: Optional[torch.Tensor] = None,
|
| 308 |
+
packed_metadata: Optional[PackedSequenceMetadata] = None,
|
| 309 |
+
layer_past: Optional[tuple[torch.Tensor, torch.Tensor]] = None,
|
| 310 |
+
use_cache: bool = False,
|
| 311 |
+
) -> tuple[torch.Tensor, Optional[tuple[torch.Tensor, torch.Tensor]]]:
|
| 312 |
+
input_shape = hidden_states.shape[:-1]
|
| 313 |
+
query_states = self.q_norm(
|
| 314 |
+
self.q_proj(hidden_states).view(*input_shape, self.num_heads, self.head_dim)
|
| 315 |
+
)
|
| 316 |
+
key_states = self.k_norm(
|
| 317 |
+
self.k_proj(hidden_states).view(*input_shape, self.num_key_value_heads, self.head_dim)
|
| 318 |
+
)
|
| 319 |
+
value_states = self.v_proj(hidden_states).view(*input_shape, self.num_key_value_heads, self.head_dim)
|
| 320 |
+
|
| 321 |
+
cos, sin = position_embeddings
|
| 322 |
+
query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin)
|
| 323 |
+
|
| 324 |
+
if layer_past is not None:
|
| 325 |
+
past_key, past_value = layer_past
|
| 326 |
+
key_states = torch.cat([past_key.to(device=key_states.device, dtype=key_states.dtype), key_states], dim=1)
|
| 327 |
+
value_states = torch.cat(
|
| 328 |
+
[past_value.to(device=value_states.device, dtype=value_states.dtype), value_states],
|
| 329 |
+
dim=1,
|
| 330 |
+
)
|
| 331 |
+
|
| 332 |
+
present = (key_states, value_states) if use_cache else None
|
| 333 |
+
if self.attn_implementation == "flash_attention_2":
|
| 334 |
+
attn_output = self._flash_attention(
|
| 335 |
+
query=query_states,
|
| 336 |
+
key=key_states,
|
| 337 |
+
value=value_states,
|
| 338 |
+
attention_mask=attention_mask,
|
| 339 |
+
packed_metadata=packed_metadata,
|
| 340 |
+
)
|
| 341 |
+
elif self.attn_implementation == "sdpa":
|
| 342 |
+
attn_output = self._sdpa_attention(
|
| 343 |
+
query=query_states,
|
| 344 |
+
key=key_states,
|
| 345 |
+
value=value_states,
|
| 346 |
+
attention_mask=attention_mask,
|
| 347 |
+
)
|
| 348 |
+
else:
|
| 349 |
+
attn_output = self._eager_attention(
|
| 350 |
+
query=query_states,
|
| 351 |
+
key=key_states,
|
| 352 |
+
value=value_states,
|
| 353 |
+
attention_mask=attention_mask,
|
| 354 |
+
)
|
| 355 |
+
attn_output = attn_output.reshape(*input_shape, -1).contiguous()
|
| 356 |
+
return self.o_proj(attn_output), present
|
| 357 |
+
|
| 358 |
+
|
| 359 |
+
class MossQwen3DecoderLayer(nn.Module):
|
| 360 |
+
def __init__(self, config, layer_idx: int) -> None:
|
| 361 |
+
super().__init__()
|
| 362 |
+
self.self_attn = MossQwen3Attention(config=config, layer_idx=layer_idx)
|
| 363 |
+
self.mlp = MossQwen3MLP(config)
|
| 364 |
+
self.input_layernorm = MossQwen3RMSNorm(config.hidden_size, eps=float(config.rms_norm_eps))
|
| 365 |
+
self.post_attention_layernorm = MossQwen3RMSNorm(config.hidden_size, eps=float(config.rms_norm_eps))
|
| 366 |
+
|
| 367 |
+
def forward(
|
| 368 |
+
self,
|
| 369 |
+
hidden_states: torch.Tensor,
|
| 370 |
+
attention_mask: Optional[torch.Tensor] = None,
|
| 371 |
+
packed_metadata: Optional[PackedSequenceMetadata] = None,
|
| 372 |
+
layer_past: Optional[tuple[torch.Tensor, torch.Tensor]] = None,
|
| 373 |
+
use_cache: bool = False,
|
| 374 |
+
position_embeddings: Optional[tuple[torch.Tensor, torch.Tensor]] = None,
|
| 375 |
+
) -> tuple[torch.Tensor, Optional[tuple[torch.Tensor, torch.Tensor]]]:
|
| 376 |
+
residual = hidden_states
|
| 377 |
+
hidden_states = self.input_layernorm(hidden_states)
|
| 378 |
+
attn_output, present = self.self_attn(
|
| 379 |
+
hidden_states=hidden_states,
|
| 380 |
+
position_embeddings=position_embeddings,
|
| 381 |
+
attention_mask=attention_mask,
|
| 382 |
+
packed_metadata=packed_metadata,
|
| 383 |
+
layer_past=layer_past,
|
| 384 |
+
use_cache=use_cache,
|
| 385 |
+
)
|
| 386 |
+
hidden_states = residual + attn_output
|
| 387 |
+
|
| 388 |
+
residual = hidden_states
|
| 389 |
+
hidden_states = self.post_attention_layernorm(hidden_states)
|
| 390 |
+
hidden_states = residual + self.mlp(hidden_states)
|
| 391 |
+
return hidden_states, present
|
| 392 |
+
|
| 393 |
+
|
| 394 |
+
class MossQwen3Model(nn.Module):
|
| 395 |
+
def __init__(self, config) -> None:
|
| 396 |
+
super().__init__()
|
| 397 |
+
self.config = config
|
| 398 |
+
self.attn_implementation = str(getattr(config, "_attn_implementation", "eager"))
|
| 399 |
+
self.padding_idx = getattr(config, "pad_token_id", None)
|
| 400 |
+
self.vocab_size = int(config.vocab_size)
|
| 401 |
+
self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size, self.padding_idx)
|
| 402 |
+
self.layers = nn.ModuleList(
|
| 403 |
+
[MossQwen3DecoderLayer(config, layer_idx=index) for index in range(config.num_hidden_layers)]
|
| 404 |
+
)
|
| 405 |
+
self.norm = MossQwen3RMSNorm(config.hidden_size, eps=float(config.rms_norm_eps))
|
| 406 |
+
self.rotary_emb = MossQwen3RotaryEmbedding(config)
|
| 407 |
+
self.gradient_checkpointing = False
|
| 408 |
+
self.gradient_checkpointing_use_reentrant = bool(
|
| 409 |
+
getattr(config, "gradient_checkpointing_use_reentrant", False)
|
| 410 |
+
)
|
| 411 |
+
self._reset_parameters()
|
| 412 |
+
|
| 413 |
+
def _reset_parameters(self) -> None:
|
| 414 |
+
init_std = float(getattr(self.config, "initializer_range", 0.02))
|
| 415 |
+
for module in self.modules():
|
| 416 |
+
if isinstance(module, nn.Linear):
|
| 417 |
+
nn.init.normal_(module.weight, mean=0.0, std=init_std)
|
| 418 |
+
if module.bias is not None:
|
| 419 |
+
nn.init.zeros_(module.bias)
|
| 420 |
+
elif isinstance(module, nn.Embedding):
|
| 421 |
+
nn.init.normal_(module.weight, mean=0.0, std=init_std)
|
| 422 |
+
|
| 423 |
+
def get_input_embeddings(self):
|
| 424 |
+
return self.embed_tokens
|
| 425 |
+
|
| 426 |
+
def set_input_embeddings(self, value):
|
| 427 |
+
self.embed_tokens = value
|
| 428 |
+
|
| 429 |
+
def load_qwen3_pretrained_weights(self, pretrained_path: str) -> None:
|
| 430 |
+
model_dir = Path(pretrained_path)
|
| 431 |
+
index_path = model_dir / "model.safetensors.index.json"
|
| 432 |
+
if not index_path.exists():
|
| 433 |
+
raise FileNotFoundError(f"Missing Qwen3 safetensors index: {index_path}")
|
| 434 |
+
with index_path.open("r", encoding="utf-8") as handle:
|
| 435 |
+
index = json.load(handle)
|
| 436 |
+
weight_map = index.get("weight_map", {})
|
| 437 |
+
shard_to_keys: dict[str, list[str]] = {}
|
| 438 |
+
for key, shard in weight_map.items():
|
| 439 |
+
if not key.startswith("model."):
|
| 440 |
+
continue
|
| 441 |
+
shard_to_keys.setdefault(str(shard), []).append(key)
|
| 442 |
+
|
| 443 |
+
state_dict = self.state_dict()
|
| 444 |
+
loaded_state = {}
|
| 445 |
+
for shard, keys in sorted(shard_to_keys.items()):
|
| 446 |
+
shard_tensors = load_file(str(model_dir / shard), device="cpu")
|
| 447 |
+
for key in keys:
|
| 448 |
+
target_key = key[len("model.") :]
|
| 449 |
+
if target_key not in state_dict:
|
| 450 |
+
continue
|
| 451 |
+
tensor = shard_tensors[key]
|
| 452 |
+
if tuple(tensor.shape) != tuple(state_dict[target_key].shape):
|
| 453 |
+
raise ValueError(
|
| 454 |
+
f"Shape mismatch while loading Qwen3 weight {key}: "
|
| 455 |
+
f"checkpoint={tuple(tensor.shape)} model={tuple(state_dict[target_key].shape)}"
|
| 456 |
+
)
|
| 457 |
+
loaded_state[target_key] = tensor
|
| 458 |
+
|
| 459 |
+
missing, unexpected = self.load_state_dict(loaded_state, strict=False)
|
| 460 |
+
unexpected = [key for key in unexpected if key]
|
| 461 |
+
if unexpected:
|
| 462 |
+
raise RuntimeError(f"Unexpected Qwen3 pretrained keys after load: {unexpected[:10]}")
|
| 463 |
+
missing = [key for key in missing if key not in loaded_state]
|
| 464 |
+
if missing:
|
| 465 |
+
raise RuntimeError(f"Missing Qwen3 pretrained keys after load: {missing[:10]}")
|
| 466 |
+
|
| 467 |
+
def forward(
|
| 468 |
+
self,
|
| 469 |
+
input_ids: Optional[torch.LongTensor] = None,
|
| 470 |
+
past_key_values: Optional[tuple[tuple[torch.Tensor, torch.Tensor], ...]] = None,
|
| 471 |
+
attention_mask: Optional[torch.Tensor] = None,
|
| 472 |
+
position_ids: Optional[torch.LongTensor] = None,
|
| 473 |
+
inputs_embeds: Optional[torch.FloatTensor] = None,
|
| 474 |
+
use_cache: Optional[bool] = None,
|
| 475 |
+
output_attentions: Optional[bool] = None,
|
| 476 |
+
output_hidden_states: Optional[bool] = None,
|
| 477 |
+
return_dict: bool = True,
|
| 478 |
+
cu_seqlens: Optional[torch.Tensor] = None,
|
| 479 |
+
num_sequences: Optional[torch.Tensor] = None,
|
| 480 |
+
) -> BaseModelOutputWithPast:
|
| 481 |
+
del input_ids, output_attentions
|
| 482 |
+
if inputs_embeds is None:
|
| 483 |
+
raise ValueError("inputs_embeds must be provided.")
|
| 484 |
+
|
| 485 |
+
use_cache = bool(use_cache)
|
| 486 |
+
if use_cache and cu_seqlens is not None:
|
| 487 |
+
raise ValueError("use_cache=True is not supported together with cu_seqlens packing.")
|
| 488 |
+
|
| 489 |
+
hidden_states = inputs_embeds
|
| 490 |
+
if attention_mask is None:
|
| 491 |
+
attention_mask = torch.ones(hidden_states.shape[:2], dtype=torch.bool, device=hidden_states.device)
|
| 492 |
+
else:
|
| 493 |
+
attention_mask = attention_mask.to(dtype=torch.bool, device=hidden_states.device)
|
| 494 |
+
query_attention_mask = attention_mask[:, -hidden_states.shape[1] :]
|
| 495 |
+
|
| 496 |
+
packed_metadata = None
|
| 497 |
+
if position_ids is None:
|
| 498 |
+
if cu_seqlens is not None:
|
| 499 |
+
position_ids = MossTTSNanoGPT2Model.build_packed_position_ids(
|
| 500 |
+
attention_mask=attention_mask,
|
| 501 |
+
cu_seqlens=cu_seqlens.to(device=hidden_states.device),
|
| 502 |
+
num_sequences=num_sequences.to(device=hidden_states.device) if num_sequences is not None else None,
|
| 503 |
+
sequence_length=hidden_states.shape[1],
|
| 504 |
+
)
|
| 505 |
+
elif attention_mask is not None:
|
| 506 |
+
position_ids = attention_mask.long().cumsum(dim=-1) - 1
|
| 507 |
+
position_ids = position_ids.masked_fill(~attention_mask, 0)
|
| 508 |
+
position_ids = position_ids[:, -hidden_states.shape[1] :]
|
| 509 |
+
else:
|
| 510 |
+
past_length = 0
|
| 511 |
+
if past_key_values is not None and len(past_key_values) > 0:
|
| 512 |
+
past_length = past_key_values[0][0].shape[1]
|
| 513 |
+
position_ids = torch.arange(hidden_states.shape[1], device=hidden_states.device, dtype=torch.long)
|
| 514 |
+
position_ids = position_ids + past_length
|
| 515 |
+
position_ids = position_ids.unsqueeze(0).expand(hidden_states.shape[0], -1)
|
| 516 |
+
|
| 517 |
+
if cu_seqlens is not None and self.attn_implementation == "flash_attention_2":
|
| 518 |
+
packed_metadata = MossTTSNanoGPT2Model.build_packed_metadata(
|
| 519 |
+
hidden_states=hidden_states,
|
| 520 |
+
cu_seqlens=cu_seqlens.to(device=hidden_states.device),
|
| 521 |
+
num_sequences=num_sequences.to(device=hidden_states.device) if num_sequences is not None else None,
|
| 522 |
+
)
|
| 523 |
+
|
| 524 |
+
hidden_states = hidden_states * query_attention_mask.unsqueeze(-1).to(dtype=hidden_states.dtype)
|
| 525 |
+
position_embeddings = self.rotary_emb(hidden_states, position_ids)
|
| 526 |
+
|
| 527 |
+
all_hidden_states = () if output_hidden_states else None
|
| 528 |
+
presents = [] if use_cache else None
|
| 529 |
+
for layer_index, decoder_layer in enumerate(self.layers):
|
| 530 |
+
if output_hidden_states:
|
| 531 |
+
all_hidden_states = all_hidden_states + (hidden_states,)
|
| 532 |
+
|
| 533 |
+
if self.gradient_checkpointing and self.training:
|
| 534 |
+
if use_cache:
|
| 535 |
+
raise ValueError("use_cache=True is not supported when gradient checkpointing is enabled during training.")
|
| 536 |
+
|
| 537 |
+
def custom_forward(*inputs):
|
| 538 |
+
output, _ = decoder_layer(
|
| 539 |
+
hidden_states=inputs[0],
|
| 540 |
+
attention_mask=inputs[1],
|
| 541 |
+
packed_metadata=packed_metadata,
|
| 542 |
+
layer_past=None,
|
| 543 |
+
use_cache=False,
|
| 544 |
+
position_embeddings=position_embeddings,
|
| 545 |
+
)
|
| 546 |
+
return output
|
| 547 |
+
|
| 548 |
+
hidden_states = torch.utils.checkpoint.checkpoint(
|
| 549 |
+
custom_forward,
|
| 550 |
+
hidden_states,
|
| 551 |
+
attention_mask,
|
| 552 |
+
use_reentrant=self.gradient_checkpointing_use_reentrant,
|
| 553 |
+
)
|
| 554 |
+
present = None
|
| 555 |
+
else:
|
| 556 |
+
hidden_states, present = decoder_layer(
|
| 557 |
+
hidden_states=hidden_states,
|
| 558 |
+
attention_mask=attention_mask,
|
| 559 |
+
packed_metadata=packed_metadata,
|
| 560 |
+
layer_past=None if past_key_values is None else past_key_values[layer_index],
|
| 561 |
+
use_cache=use_cache,
|
| 562 |
+
position_embeddings=position_embeddings,
|
| 563 |
+
)
|
| 564 |
+
|
| 565 |
+
hidden_states = hidden_states * query_attention_mask.unsqueeze(-1).to(dtype=hidden_states.dtype)
|
| 566 |
+
if presents is not None:
|
| 567 |
+
presents.append(present)
|
| 568 |
+
|
| 569 |
+
hidden_states = self.norm(hidden_states)
|
| 570 |
+
hidden_states = hidden_states * query_attention_mask.unsqueeze(-1).to(dtype=hidden_states.dtype)
|
| 571 |
+
if output_hidden_states:
|
| 572 |
+
all_hidden_states = all_hidden_states + (hidden_states,)
|
| 573 |
+
|
| 574 |
+
if not return_dict:
|
| 575 |
+
return (hidden_states, tuple(presents) if presents is not None else None, all_hidden_states, None)
|
| 576 |
+
|
| 577 |
+
return BaseModelOutputWithPast(
|
| 578 |
+
last_hidden_state=hidden_states,
|
| 579 |
+
past_key_values=tuple(presents) if presents is not None else None,
|
| 580 |
+
hidden_states=all_hidden_states,
|
| 581 |
+
attentions=None,
|
| 582 |
+
)
|
requirements.txt
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
torch>=2.9,<3
|
| 2 |
+
torchaudio>=2.9,<3
|
| 3 |
+
transformers==5.14.1
|
| 4 |
+
safetensors>=0.8,<1
|
| 5 |
+
numpy>=2,<3
|
| 6 |
+
soundfile>=0.14,<1
|
| 7 |
+
accelerate==1.14.0
|
| 8 |
+
huggingface_hub>=1.29,<2
|
| 9 |
+
einops>=0.8
|
| 10 |
+
scipy
|
| 11 |
+
lameenc>=1.8
|
special_tokens_map.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"additional_special_tokens": [
|
| 3 |
+
"<|audio_start|>",
|
| 4 |
+
"<|audio_end|>",
|
| 5 |
+
"<|audio_pad|>"
|
| 6 |
+
],
|
| 7 |
+
"eos_token": {
|
| 8 |
+
"content": "<|im_end|>",
|
| 9 |
+
"lstrip": false,
|
| 10 |
+
"normalized": false,
|
| 11 |
+
"rstrip": false,
|
| 12 |
+
"single_word": false
|
| 13 |
+
},
|
| 14 |
+
"pad_token": {
|
| 15 |
+
"content": "<|endoftext|>",
|
| 16 |
+
"lstrip": false,
|
| 17 |
+
"normalized": false,
|
| 18 |
+
"rstrip": false,
|
| 19 |
+
"single_word": false
|
| 20 |
+
}
|
| 21 |
+
}
|
stats/DATA_READY.json
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"status": "READY",
|
| 3 |
+
"pilot_only": false,
|
| 4 |
+
"selection_contract": {
|
| 5 |
+
"kind": "large13-notebooklm-multispeaker-v1",
|
| 6 |
+
"parent": "laion/Humaneness-Voice-Large-1.3-Alpha",
|
| 7 |
+
"base_step": 9799,
|
| 8 |
+
"base_weight_files": {
|
| 9 |
+
"model-00001-of-00003.safetensors": "3a9831cfd1944316e8b7d5fcaea845bf8b49b832824950709ce0eabf56b4702a",
|
| 10 |
+
"model-00002-of-00003.safetensors": "1fdaae7bd4f09b867152ef91761106e7bfef986b5f9979f69463466e864018a5",
|
| 11 |
+
"model-00003-of-00003.safetensors": "c149c250be927df24cdaa59c5b8ff50c3f0471f664f6483bb58236f07afa31df"
|
| 12 |
+
},
|
| 13 |
+
"languages": [
|
| 14 |
+
"en",
|
| 15 |
+
"de",
|
| 16 |
+
"fr",
|
| 17 |
+
"es",
|
| 18 |
+
"nl"
|
| 19 |
+
],
|
| 20 |
+
"epochs": 3,
|
| 21 |
+
"world": 64,
|
| 22 |
+
"accumulation": 2,
|
| 23 |
+
"peaks": [
|
| 24 |
+
2e-05,
|
| 25 |
+
4e-05
|
| 26 |
+
],
|
| 27 |
+
"warmup": 0.05,
|
| 28 |
+
"cosine_floor": 0.1,
|
| 29 |
+
"prefix": "plain-text speaker-labeled references plus strictly past audio context; native audio placeholders; no new special tokens",
|
| 30 |
+
"context_max_frames": 750,
|
| 31 |
+
"reference_min_frames": 63,
|
| 32 |
+
"reference_max_frames": 187,
|
| 33 |
+
"target_max_frames": 2250,
|
| 34 |
+
"max_context_rows": 32768,
|
| 35 |
+
"loss": "only final assistant audio, all 12 trained codebooks",
|
| 36 |
+
"split": "episode-disjoint, stratified by publisher language; duplicate audio audited",
|
| 37 |
+
"source_filter": "original beginning and middle DNSMOS BAK each >=4.0",
|
| 38 |
+
"eval": {
|
| 39 |
+
"per_language": {
|
| 40 |
+
"two_turn": 5,
|
| 41 |
+
"four_turn": 5
|
| 42 |
+
},
|
| 43 |
+
"seeds": "fixed before training",
|
| 44 |
+
"heldout_episodes": true
|
| 45 |
+
},
|
| 46 |
+
"checkpoints_active_seconds": 900,
|
| 47 |
+
"maximum_training_allocations": 3,
|
| 48 |
+
"no_lora": true,
|
| 49 |
+
"distribution": "FSDP1 root FULL_SHARD; FP32 optimizer parameters/reduction; BF16 compute; full CPU state checkpoints",
|
| 50 |
+
"serialization": "Explicit ChatML with byte-identical train/inference prefix; no template fallback or direct-generation shortcut",
|
| 51 |
+
"published_scope": "Only the user-requested en/de/fr/es/nl source episodes; other languages remain in original journals and archives"
|
| 52 |
+
},
|
| 53 |
+
"base_weights_sha256": "b66725ff44243b7b59c84fba9c201d8f993551e2b3c79211f390042a41f07c06",
|
| 54 |
+
"database_sha256": "0e36a157e1810673d15a50fe1d1fb31cf36bafdb45fe09d5ba859dc3abeb6c14",
|
| 55 |
+
"presentations": 718464,
|
| 56 |
+
"nonpadding_presentations": 718281,
|
| 57 |
+
"unique_train_targets": 239427,
|
| 58 |
+
"phases": [
|
| 59 |
+
{
|
| 60 |
+
"name": "Globally shuffled epoch 1",
|
| 61 |
+
"end_position": 239488
|
| 62 |
+
},
|
| 63 |
+
{
|
| 64 |
+
"name": "Globally shuffled epoch 2",
|
| 65 |
+
"end_position": 478976
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"name": "Globally shuffled epoch 3",
|
| 69 |
+
"end_position": 718464
|
| 70 |
+
}
|
| 71 |
+
],
|
| 72 |
+
"canary_keys": [
|
| 73 |
+
1,
|
| 74 |
+
372,
|
| 75 |
+
4176,
|
| 76 |
+
16,
|
| 77 |
+
23624,
|
| 78 |
+
222170,
|
| 79 |
+
66970
|
| 80 |
+
],
|
| 81 |
+
"validation_keys": [
|
| 82 |
+
4470,
|
| 83 |
+
4472,
|
| 84 |
+
4473,
|
| 85 |
+
4474,
|
| 86 |
+
194214,
|
| 87 |
+
194215,
|
| 88 |
+
194217,
|
| 89 |
+
194219,
|
| 90 |
+
294871,
|
| 91 |
+
294872,
|
| 92 |
+
294873,
|
| 93 |
+
294874,
|
| 94 |
+
19459,
|
| 95 |
+
19460,
|
| 96 |
+
19461,
|
| 97 |
+
19464,
|
| 98 |
+
75081,
|
| 99 |
+
75084,
|
| 100 |
+
75089,
|
| 101 |
+
75090
|
| 102 |
+
],
|
| 103 |
+
"evaluation_tasks": 50,
|
| 104 |
+
"evaluation_sha256": "1fd7b56db53a096031dedd274aa60ea7c6546181a66d6f0ab5037d1a40a58a0a",
|
| 105 |
+
"episode_split_verified": true,
|
| 106 |
+
"statistics": [
|
| 107 |
+
{
|
| 108 |
+
"language": "de",
|
| 109 |
+
"split": "test",
|
| 110 |
+
"windows": 93,
|
| 111 |
+
"codec_hours": 0.1506222222222222
|
| 112 |
+
},
|
| 113 |
+
{
|
| 114 |
+
"language": "de",
|
| 115 |
+
"split": "train",
|
| 116 |
+
"windows": 4997,
|
| 117 |
+
"codec_hours": 9.151177777777777
|
| 118 |
+
},
|
| 119 |
+
{
|
| 120 |
+
"language": "de",
|
| 121 |
+
"split": "validation",
|
| 122 |
+
"windows": 46,
|
| 123 |
+
"codec_hours": 0.0971777777777778
|
| 124 |
+
},
|
| 125 |
+
{
|
| 126 |
+
"language": "en",
|
| 127 |
+
"split": "test",
|
| 128 |
+
"windows": 161,
|
| 129 |
+
"codec_hours": 0.2633111111111111
|
| 130 |
+
},
|
| 131 |
+
{
|
| 132 |
+
"language": "en",
|
| 133 |
+
"split": "train",
|
| 134 |
+
"windows": 207561,
|
| 135 |
+
"codec_hours": 310.92517777777783
|
| 136 |
+
},
|
| 137 |
+
{
|
| 138 |
+
"language": "en",
|
| 139 |
+
"split": "validation",
|
| 140 |
+
"windows": 3902,
|
| 141 |
+
"codec_hours": 5.888955555555556
|
| 142 |
+
},
|
| 143 |
+
{
|
| 144 |
+
"language": "es",
|
| 145 |
+
"split": "test",
|
| 146 |
+
"windows": 70,
|
| 147 |
+
"codec_hours": 0.10746666666666667
|
| 148 |
+
},
|
| 149 |
+
{
|
| 150 |
+
"language": "es",
|
| 151 |
+
"split": "train",
|
| 152 |
+
"windows": 25380,
|
| 153 |
+
"codec_hours": 33.64906666666667
|
| 154 |
+
},
|
| 155 |
+
{
|
| 156 |
+
"language": "es",
|
| 157 |
+
"split": "validation",
|
| 158 |
+
"windows": 368,
|
| 159 |
+
"codec_hours": 0.48633333333333334
|
| 160 |
+
},
|
| 161 |
+
{
|
| 162 |
+
"language": "fr",
|
| 163 |
+
"split": "test",
|
| 164 |
+
"windows": 144,
|
| 165 |
+
"codec_hours": 0.1645777777777778
|
| 166 |
+
},
|
| 167 |
+
{
|
| 168 |
+
"language": "fr",
|
| 169 |
+
"split": "train",
|
| 170 |
+
"windows": 820,
|
| 171 |
+
"codec_hours": 0.6252222222222222
|
| 172 |
+
},
|
| 173 |
+
{
|
| 174 |
+
"language": "fr",
|
| 175 |
+
"split": "validation",
|
| 176 |
+
"windows": 149,
|
| 177 |
+
"codec_hours": 0.1634888888888889
|
| 178 |
+
},
|
| 179 |
+
{
|
| 180 |
+
"language": "nl",
|
| 181 |
+
"split": "test",
|
| 182 |
+
"windows": 105,
|
| 183 |
+
"codec_hours": 0.22775555555555557
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"language": "nl",
|
| 187 |
+
"split": "train",
|
| 188 |
+
"windows": 669,
|
| 189 |
+
"codec_hours": 1.0362
|
| 190 |
+
},
|
| 191 |
+
{
|
| 192 |
+
"language": "nl",
|
| 193 |
+
"split": "validation",
|
| 194 |
+
"windows": 74,
|
| 195 |
+
"codec_hours": 0.14373333333333335
|
| 196 |
+
}
|
| 197 |
+
],
|
| 198 |
+
"rejections": [
|
| 199 |
+
{
|
| 200 |
+
"reason": "boundary_contains_other_words",
|
| 201 |
+
"candidates": 677661
|
| 202 |
+
},
|
| 203 |
+
{
|
| 204 |
+
"reason": "not_exactly_two_diarized_speakers",
|
| 205 |
+
"candidates": 985
|
| 206 |
+
},
|
| 207 |
+
{
|
| 208 |
+
"reason": "target_length",
|
| 209 |
+
"candidates": 27339
|
| 210 |
+
},
|
| 211 |
+
{
|
| 212 |
+
"reason": "two_clean_past_references_unavailable",
|
| 213 |
+
"candidates": 95293
|
| 214 |
+
}
|
| 215 |
+
],
|
| 216 |
+
"annotation_sha256": "ffe152f39d0d651625fa7747b8d132b587642773b48196e44d5923cfd432e1fd",
|
| 217 |
+
"time": 1793631377.1572342
|
| 218 |
+
}
|
stats/fullft-DONE.json
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"status": "COMPLETE",
|
| 3 |
+
"step": 5613,
|
| 4 |
+
"contract_sha256": "795b57ea6cfca9f0b264e20f2bd5da797d0e9a00e998fb2fc3c5c25a681e818d",
|
| 5 |
+
"time": 1793645723.802151
|
| 6 |
+
}
|
stats/fullft-RUN_CONTRACT.json
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"kind": "large13-notebooklm-multispeaker-v1",
|
| 3 |
+
"model": "large",
|
| 4 |
+
"base": "/e/scratch/laionize/schuhmann1/hvs_large_1_3_20261022/release_1_3/model",
|
| 5 |
+
"base_weights_sha256": "b66725ff44243b7b59c84fba9c201d8f993551e2b3c79211f390042a41f07c06",
|
| 6 |
+
"database_sha256": "0e36a157e1810673d15a50fe1d1fb31cf36bafdb45fe09d5ba859dc3abeb6c14",
|
| 7 |
+
"presentations": 718464,
|
| 8 |
+
"actual_presentations": 718281,
|
| 9 |
+
"phases": [
|
| 10 |
+
{
|
| 11 |
+
"name": "Globally shuffled epoch 1",
|
| 12 |
+
"end_position": 239488
|
| 13 |
+
},
|
| 14 |
+
{
|
| 15 |
+
"name": "Globally shuffled epoch 2",
|
| 16 |
+
"end_position": 478976
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"name": "Globally shuffled epoch 3",
|
| 20 |
+
"end_position": 718464
|
| 21 |
+
}
|
| 22 |
+
],
|
| 23 |
+
"selection_contract": {
|
| 24 |
+
"kind": "large13-notebooklm-multispeaker-v1",
|
| 25 |
+
"parent": "laion/Humaneness-Voice-Large-1.3-Alpha",
|
| 26 |
+
"base_step": 9799,
|
| 27 |
+
"base_weight_files": {
|
| 28 |
+
"model-00001-of-00003.safetensors": "3a9831cfd1944316e8b7d5fcaea845bf8b49b832824950709ce0eabf56b4702a",
|
| 29 |
+
"model-00002-of-00003.safetensors": "1fdaae7bd4f09b867152ef91761106e7bfef986b5f9979f69463466e864018a5",
|
| 30 |
+
"model-00003-of-00003.safetensors": "c149c250be927df24cdaa59c5b8ff50c3f0471f664f6483bb58236f07afa31df"
|
| 31 |
+
},
|
| 32 |
+
"languages": [
|
| 33 |
+
"en",
|
| 34 |
+
"de",
|
| 35 |
+
"fr",
|
| 36 |
+
"es",
|
| 37 |
+
"nl"
|
| 38 |
+
],
|
| 39 |
+
"epochs": 3,
|
| 40 |
+
"world": 64,
|
| 41 |
+
"accumulation": 2,
|
| 42 |
+
"peaks": [
|
| 43 |
+
2e-05,
|
| 44 |
+
4e-05
|
| 45 |
+
],
|
| 46 |
+
"warmup": 0.05,
|
| 47 |
+
"cosine_floor": 0.1,
|
| 48 |
+
"prefix": "plain-text speaker-labeled references plus strictly past audio context; native audio placeholders; no new special tokens",
|
| 49 |
+
"context_max_frames": 750,
|
| 50 |
+
"reference_min_frames": 63,
|
| 51 |
+
"reference_max_frames": 187,
|
| 52 |
+
"target_max_frames": 2250,
|
| 53 |
+
"max_context_rows": 32768,
|
| 54 |
+
"loss": "only final assistant audio, all 12 trained codebooks",
|
| 55 |
+
"split": "episode-disjoint, stratified by publisher language; duplicate audio audited",
|
| 56 |
+
"source_filter": "original beginning and middle DNSMOS BAK each >=4.0",
|
| 57 |
+
"eval": {
|
| 58 |
+
"per_language": {
|
| 59 |
+
"two_turn": 5,
|
| 60 |
+
"four_turn": 5
|
| 61 |
+
},
|
| 62 |
+
"seeds": "fixed before training",
|
| 63 |
+
"heldout_episodes": true
|
| 64 |
+
},
|
| 65 |
+
"checkpoints_active_seconds": 900,
|
| 66 |
+
"maximum_training_allocations": 3,
|
| 67 |
+
"no_lora": true,
|
| 68 |
+
"distribution": "FSDP1 root FULL_SHARD; FP32 optimizer parameters/reduction; BF16 compute; full CPU state checkpoints",
|
| 69 |
+
"serialization": "Explicit ChatML with byte-identical train/inference prefix; no template fallback or direct-generation shortcut",
|
| 70 |
+
"published_scope": "Only the user-requested en/de/fr/es/nl source episodes; other languages remain in original journals and archives"
|
| 71 |
+
},
|
| 72 |
+
"world": 64,
|
| 73 |
+
"accumulation": 2,
|
| 74 |
+
"effective_batch": 128,
|
| 75 |
+
"seed": 20261102,
|
| 76 |
+
"peak_semantic": 2e-05,
|
| 77 |
+
"peak_talker": 4e-05,
|
| 78 |
+
"warmup_fraction": 0.05,
|
| 79 |
+
"cosine_floor": 0.1,
|
| 80 |
+
"lr_restarts": 0,
|
| 81 |
+
"total_steps": 5613,
|
| 82 |
+
"checkpoints_seconds": 900,
|
| 83 |
+
"keep_all_checkpoints": true,
|
| 84 |
+
"optimizer_rng_scheduler_sampler_saved": true,
|
| 85 |
+
"pilot": false,
|
| 86 |
+
"distribution": "FSDP1 root FULL_SHARD, original FP32 optimizer parameters, BF16 compute, FP32 reduction, full CPU checkpoint",
|
| 87 |
+
"training_code_sha256": "118513d7a48bc36782c5b8ad7333013ad9fcbf2e40814e7f41ab8cb2a60f75e1",
|
| 88 |
+
"parent_train_fullft_sha256": "4e5f84b948afd3eabd28f762349d1a2c7429232ffc5bd6524f891c82c6a613d3",
|
| 89 |
+
"parent_attention_sha256": "98e46fbe74b8b4e8d48ff12e91a40ce79aab59ea2a970202088a5f91d53bb2cf",
|
| 90 |
+
"snapshot_sha256": "600c0ad3c0d72f1adbfa49cb097f1c983cfc17acf519ad7dc729c341bd5ba45d",
|
| 91 |
+
"variant": "podcast",
|
| 92 |
+
"contract_sha256": "795b57ea6cfca9f0b264e20f2bd5da797d0e9a00e998fb2fc3c5c25a681e818d"
|
| 93 |
+
}
|
stats/fullft-STATUS.json
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"state": "COMPLETE",
|
| 3 |
+
"step": 5613,
|
| 4 |
+
"total_steps": 5613,
|
| 5 |
+
"loss": 4.5207825703407405,
|
| 6 |
+
"job_id": "2650924",
|
| 7 |
+
"gpus": 64,
|
| 8 |
+
"elapsed_this_job_s": 12179.607034354936,
|
| 9 |
+
"peak_gpu_gb": 34.143688192,
|
| 10 |
+
"updated_unix": 1793645723.7996464
|
| 11 |
+
}
|
stats/fullft-steps.jsonl
ADDED
|
@@ -0,0 +1,284 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{"step": 1, "total_steps": 5613, "loss": 5.587478797882795, "lr_semantic": 7.117437722419929e-08, "lr_talker": 1.4234875444839858e-07, "elapsed_s": 11.013597084907815, "job_id": "2650924"}
|
| 2 |
+
{"step": 2, "total_steps": 5613, "loss": 5.525776091963053, "lr_semantic": 1.4234875444839858e-07, "lr_talker": 2.8469750889679715e-07, "elapsed_s": 16.60024484898895, "job_id": "2650924"}
|
| 3 |
+
{"step": 3, "total_steps": 5613, "loss": 5.623797632753849, "lr_semantic": 2.135231316725979e-07, "lr_talker": 4.270462633451958e-07, "elapsed_s": 24.13340073195286, "job_id": "2650924"}
|
| 4 |
+
{"step": 20, "total_steps": 5613, "loss": 5.518706202507019, "lr_semantic": 1.423487544483986e-06, "lr_talker": 2.846975088967972e-06, "elapsed_s": 74.78572288993746, "job_id": "2650924"}
|
| 5 |
+
{"step": 40, "total_steps": 5613, "loss": 5.090944893658161, "lr_semantic": 2.846975088967972e-06, "lr_talker": 5.693950177935944e-06, "elapsed_s": 120.8007314610295, "job_id": "2650924"}
|
| 6 |
+
{"step": 60, "total_steps": 5613, "loss": 4.929759006947279, "lr_semantic": 4.270462633451958e-06, "lr_talker": 8.540925266903915e-06, "elapsed_s": 170.59753852407448, "job_id": "2650924"}
|
| 7 |
+
{"step": 80, "total_steps": 5613, "loss": 4.938163060694933, "lr_semantic": 5.693950177935944e-06, "lr_talker": 1.1387900355871889e-05, "elapsed_s": 232.3358086280059, "job_id": "2650924"}
|
| 8 |
+
{"step": 100, "total_steps": 5613, "loss": 4.852787749841809, "lr_semantic": 7.11743772241993e-06, "lr_talker": 1.423487544483986e-05, "elapsed_s": 273.8830103040673, "job_id": "2650924"}
|
| 9 |
+
{"step": 120, "total_steps": 5613, "loss": 4.8588650450110435, "lr_semantic": 8.540925266903915e-06, "lr_talker": 1.708185053380783e-05, "elapsed_s": 313.6654968110379, "job_id": "2650924"}
|
| 10 |
+
{"step": 140, "total_steps": 5613, "loss": 4.8637976460158825, "lr_semantic": 9.964412811387902e-06, "lr_talker": 1.9928825622775804e-05, "elapsed_s": 353.53465432301164, "job_id": "2650924"}
|
| 11 |
+
{"step": 160, "total_steps": 5613, "loss": 4.863433074206114, "lr_semantic": 1.1387900355871889e-05, "lr_talker": 2.2775800711743777e-05, "elapsed_s": 393.17336230608635, "job_id": "2650924"}
|
| 12 |
+
{"step": 180, "total_steps": 5613, "loss": 4.836579687893391, "lr_semantic": 1.2811387900355874e-05, "lr_talker": 2.5622775800711747e-05, "elapsed_s": 432.5499518690631, "job_id": "2650924"}
|
| 13 |
+
{"step": 200, "total_steps": 5613, "loss": 4.824142433702946, "lr_semantic": 1.423487544483986e-05, "lr_talker": 2.846975088967972e-05, "elapsed_s": 472.52124926890247, "job_id": "2650924"}
|
| 14 |
+
{"step": 220, "total_steps": 5613, "loss": 4.832095634192228, "lr_semantic": 1.5658362989323845e-05, "lr_talker": 3.131672597864769e-05, "elapsed_s": 512.6217995649204, "job_id": "2650924"}
|
| 15 |
+
{"step": 240, "total_steps": 5613, "loss": 4.821955591440201, "lr_semantic": 1.708185053380783e-05, "lr_talker": 3.416370106761566e-05, "elapsed_s": 553.1844750219025, "job_id": "2650924"}
|
| 16 |
+
{"step": 260, "total_steps": 5613, "loss": 4.816163405776024, "lr_semantic": 1.8505338078291815e-05, "lr_talker": 3.701067615658363e-05, "elapsed_s": 593.9156070020981, "job_id": "2650924"}
|
| 17 |
+
{"step": 280, "total_steps": 5613, "loss": 4.817517191171646, "lr_semantic": 1.9928825622775804e-05, "lr_talker": 3.985765124555161e-05, "elapsed_s": 635.7070532739162, "job_id": "2650924"}
|
| 18 |
+
{"step": 300, "total_steps": 5613, "loss": 4.843491647392511, "lr_semantic": 1.9999436057735316e-05, "lr_talker": 3.999887211547063e-05, "elapsed_s": 676.0006452200469, "job_id": "2650924"}
|
| 19 |
+
{"step": 320, "total_steps": 5613, "loss": 4.812273908406496, "lr_semantic": 1.9997624023821825e-05, "lr_talker": 3.999524804764365e-05, "elapsed_s": 715.7607630849816, "job_id": "2650924"}
|
| 20 |
+
{"step": 340, "total_steps": 5613, "loss": 4.772692650556564, "lr_semantic": 1.9994562587693766e-05, "lr_talker": 3.998912517538753e-05, "elapsed_s": 755.3094924690668, "job_id": "2650924"}
|
| 21 |
+
{"step": 360, "total_steps": 5613, "loss": 4.824440844357014, "lr_semantic": 1.9990252174459486e-05, "lr_talker": 3.998050434891897e-05, "elapsed_s": 795.2929087539669, "job_id": "2650924"}
|
| 22 |
+
{"step": 380, "total_steps": 5613, "loss": 4.802605751901865, "lr_semantic": 1.9984693382659205e-05, "lr_talker": 3.996938676531841e-05, "elapsed_s": 834.7539963200688, "job_id": "2650924"}
|
| 23 |
+
{"step": 400, "total_steps": 5613, "loss": 4.753821540623903, "lr_semantic": 1.99778869841819e-05, "lr_talker": 3.99557739683638e-05, "elapsed_s": 874.9783155990299, "job_id": "2650924"}
|
| 24 |
+
{"step": 420, "total_steps": 5613, "loss": 4.8291470147669315, "lr_semantic": 1.996983392415811e-05, "lr_talker": 3.993966784831622e-05, "elapsed_s": 942.8503442539368, "job_id": "2650924"}
|
| 25 |
+
{"step": 440, "total_steps": 5613, "loss": 4.769236523658037, "lr_semantic": 1.9960535320828727e-05, "lr_talker": 3.9921070641657454e-05, "elapsed_s": 983.7482710410841, "job_id": "2650924"}
|
| 26 |
+
{"step": 460, "total_steps": 5613, "loss": 4.784003414213657, "lr_semantic": 1.9949992465389688e-05, "lr_talker": 3.9899984930779376e-05, "elapsed_s": 1023.9067495749332, "job_id": "2650924"}
|
| 27 |
+
{"step": 480, "total_steps": 5613, "loss": 4.800135903060436, "lr_semantic": 1.993820682181269e-05, "lr_talker": 3.987641364362538e-05, "elapsed_s": 1065.0519276841078, "job_id": "2650924"}
|
| 28 |
+
{"step": 500, "total_steps": 5613, "loss": 4.788406662642956, "lr_semantic": 1.9925180026641902e-05, "lr_talker": 3.9850360053283805e-05, "elapsed_s": 1119.3691214669961, "job_id": "2650924"}
|
| 29 |
+
{"step": 520, "total_steps": 5613, "loss": 4.823740411549807, "lr_semantic": 1.991091388876674e-05, "lr_talker": 3.982182777753348e-05, "elapsed_s": 1159.5253813730087, "job_id": "2650924"}
|
| 30 |
+
{"step": 540, "total_steps": 5613, "loss": 4.778647020459175, "lr_semantic": 1.989541038917064e-05, "lr_talker": 3.979082077834128e-05, "elapsed_s": 1199.1351977949962, "job_id": "2650924"}
|
| 31 |
+
{"step": 560, "total_steps": 5613, "loss": 4.772263254970312, "lr_semantic": 1.9878671680656022e-05, "lr_talker": 3.9757343361312045e-05, "elapsed_s": 1240.0329527850263, "job_id": "2650924"}
|
| 32 |
+
{"step": 580, "total_steps": 5613, "loss": 4.764200121164322, "lr_semantic": 1.986070008754533e-05, "lr_talker": 3.972140017509066e-05, "elapsed_s": 1280.5460716281086, "job_id": "2650924"}
|
| 33 |
+
{"step": 600, "total_steps": 5613, "loss": 4.794390715658665, "lr_semantic": 1.984149810535829e-05, "lr_talker": 3.968299621071658e-05, "elapsed_s": 1320.8885340450797, "job_id": "2650924"}
|
| 34 |
+
{"step": 620, "total_steps": 5613, "loss": 4.754822490736842, "lr_semantic": 1.9821068400465378e-05, "lr_talker": 3.9642136800930756e-05, "elapsed_s": 1361.7153889329638, "job_id": "2650924"}
|
| 35 |
+
{"step": 640, "total_steps": 5613, "loss": 4.773165099322796, "lr_semantic": 1.979941380971758e-05, "lr_talker": 3.959882761943516e-05, "elapsed_s": 1402.0059591881, "job_id": "2650924"}
|
| 36 |
+
{"step": 660, "total_steps": 5613, "loss": 4.765598749741912, "lr_semantic": 1.9776537340052457e-05, "lr_talker": 3.955307468010491e-05, "elapsed_s": 1443.30640967004, "job_id": "2650924"}
|
| 37 |
+
{"step": 680, "total_steps": 5613, "loss": 4.755720004439354, "lr_semantic": 1.97524421680766e-05, "lr_talker": 3.95048843361532e-05, "elapsed_s": 1492.9528597129975, "job_id": "2650924"}
|
| 38 |
+
{"step": 700, "total_steps": 5613, "loss": 4.7521882597357035, "lr_semantic": 1.9727131639624558e-05, "lr_talker": 3.9454263279249115e-05, "elapsed_s": 1533.5034493610729, "job_id": "2650924"}
|
| 39 |
+
{"step": 720, "total_steps": 5613, "loss": 4.788029182702303, "lr_semantic": 1.97006092692942e-05, "lr_talker": 3.94012185385884e-05, "elapsed_s": 1574.881404126063, "job_id": "2650924"}
|
| 40 |
+
{"step": 740, "total_steps": 5613, "loss": 4.762650026008487, "lr_semantic": 1.967287873995872e-05, "lr_talker": 3.934575747991744e-05, "elapsed_s": 1614.4268972349819, "job_id": "2650924"}
|
| 41 |
+
{"step": 760, "total_steps": 5613, "loss": 4.774876531213522, "lr_semantic": 1.9643943902255194e-05, "lr_talker": 3.928788780451039e-05, "elapsed_s": 1654.7846474519465, "job_id": "2650924"}
|
| 42 |
+
{"step": 780, "total_steps": 5613, "loss": 4.775570642203093, "lr_semantic": 1.9613808774049926e-05, "lr_talker": 3.922761754809985e-05, "elapsed_s": 1694.818456322886, "job_id": "2650924"}
|
| 43 |
+
{"step": 800, "total_steps": 5613, "loss": 4.761255389079452, "lr_semantic": 1.95824775398805e-05, "lr_talker": 3.9164955079761e-05, "elapsed_s": 1734.431733086938, "job_id": "2650924"}
|
| 44 |
+
{"step": 820, "total_steps": 5613, "loss": 4.793417455628514, "lr_semantic": 1.9549954550374726e-05, "lr_talker": 3.909990910074945e-05, "elapsed_s": 1774.7855006279424, "job_id": "2650924"}
|
| 45 |
+
{"step": 840, "total_steps": 5613, "loss": 4.769841007888317, "lr_semantic": 1.9516244321646533e-05, "lr_talker": 3.9032488643293066e-05, "elapsed_s": 1814.8339103450999, "job_id": "2650924"}
|
| 46 |
+
{"step": 860, "total_steps": 5613, "loss": 4.799153067171574, "lr_semantic": 1.9481351534668842e-05, "lr_talker": 3.8962703069337684e-05, "elapsed_s": 1882.465703408001, "job_id": "2650924"}
|
| 47 |
+
{"step": 880, "total_steps": 5613, "loss": 4.769105590879917, "lr_semantic": 1.944528103462358e-05, "lr_talker": 3.889056206924716e-05, "elapsed_s": 1945.0641413300764, "job_id": "2650924"}
|
| 48 |
+
{"step": 900, "total_steps": 5613, "loss": 4.804544523358345, "lr_semantic": 1.9408037830228883e-05, "lr_talker": 3.8816075660457767e-05, "elapsed_s": 2000.0417511779815, "job_id": "2650924"}
|
| 49 |
+
{"step": 920, "total_steps": 5613, "loss": 4.7401402592659, "lr_semantic": 1.9369627093043593e-05, "lr_talker": 3.873925418608719e-05, "elapsed_s": 2039.9671033429913, "job_id": "2650924"}
|
| 50 |
+
{"step": 940, "total_steps": 5613, "loss": 4.748336724936962, "lr_semantic": 1.9330054156749133e-05, "lr_talker": 3.8660108313498266e-05, "elapsed_s": 2080.364146329928, "job_id": "2650924"}
|
| 51 |
+
{"step": 960, "total_steps": 5613, "loss": 4.739069011062384, "lr_semantic": 1.9289324516408877e-05, "lr_talker": 3.8578649032817754e-05, "elapsed_s": 2120.9013028850313, "job_id": "2650924"}
|
| 52 |
+
{"step": 980, "total_steps": 5613, "loss": 4.76051914319396, "lr_semantic": 1.924744382770511e-05, "lr_talker": 3.849488765541022e-05, "elapsed_s": 2160.1376525240485, "job_id": "2650924"}
|
| 53 |
+
{"step": 1000, "total_steps": 5613, "loss": 4.767393801361322, "lr_semantic": 1.92044179061537e-05, "lr_talker": 3.84088358123074e-05, "elapsed_s": 2200.0085443970747, "job_id": "2650924"}
|
| 54 |
+
{"step": 1020, "total_steps": 5613, "loss": 4.76765163987875, "lr_semantic": 1.916025272629654e-05, "lr_talker": 3.832050545259308e-05, "elapsed_s": 2241.2521952099632, "job_id": "2650924"}
|
| 55 |
+
{"step": 1040, "total_steps": 5613, "loss": 4.7280378099530935, "lr_semantic": 1.911495442087193e-05, "lr_talker": 3.822990884174386e-05, "elapsed_s": 2282.928931066999, "job_id": "2650924"}
|
| 56 |
+
{"step": 1060, "total_steps": 5613, "loss": 4.730967672541738, "lr_semantic": 1.906852927996301e-05, "lr_talker": 3.813705855992602e-05, "elapsed_s": 2321.671146604931, "job_id": "2650924"}
|
| 57 |
+
{"step": 1080, "total_steps": 5613, "loss": 4.730238527059555, "lr_semantic": 1.9020983750124297e-05, "lr_talker": 3.8041967500248594e-05, "elapsed_s": 2362.0779010460246, "job_id": "2650924"}
|
| 58 |
+
{"step": 1100, "total_steps": 5613, "loss": 4.72141157835722, "lr_semantic": 1.8972324433486553e-05, "lr_talker": 3.7944648866973106e-05, "elapsed_s": 2416.252424715087, "job_id": "2650924"}
|
| 59 |
+
{"step": 1120, "total_steps": 5613, "loss": 4.736902706325054, "lr_semantic": 1.892255808683999e-05, "lr_talker": 3.784511617367998e-05, "elapsed_s": 2459.3653775320854, "job_id": "2650924"}
|
| 60 |
+
{"step": 1140, "total_steps": 5613, "loss": 4.764671867713332, "lr_semantic": 1.8871691620696043e-05, "lr_talker": 3.7743383241392086e-05, "elapsed_s": 2500.5573995329905, "job_id": "2650924"}
|
| 61 |
+
{"step": 1160, "total_steps": 5613, "loss": 4.721237454563379, "lr_semantic": 1.881973209832778e-05, "lr_talker": 3.763946419665556e-05, "elapsed_s": 2549.46644647792, "job_id": "2650924"}
|
| 62 |
+
{"step": 1180, "total_steps": 5613, "loss": 4.731536339968443, "lr_semantic": 1.87666867347891e-05, "lr_talker": 3.75333734695782e-05, "elapsed_s": 2589.767932805, "job_id": "2650924"}
|
| 63 |
+
{"step": 1200, "total_steps": 5613, "loss": 4.735003147274256, "lr_semantic": 1.8712562895912868e-05, "lr_talker": 3.7425125791825735e-05, "elapsed_s": 2635.105361911934, "job_id": "2650924"}
|
| 64 |
+
{"step": 1220, "total_steps": 5613, "loss": 4.734358720481396, "lr_semantic": 1.865736809728808e-05, "lr_talker": 3.731473619457616e-05, "elapsed_s": 2675.131558994064, "job_id": "2650924"}
|
| 65 |
+
{"step": 1240, "total_steps": 5613, "loss": 4.756669394671917, "lr_semantic": 1.8601110003216273e-05, "lr_talker": 3.720222000643255e-05, "elapsed_s": 2715.594623999903, "job_id": "2650924"}
|
| 66 |
+
{"step": 1260, "total_steps": 5613, "loss": 4.7002569902688265, "lr_semantic": 1.8543796425647266e-05, "lr_talker": 3.708759285129453e-05, "elapsed_s": 2756.165475001093, "job_id": "2650924"}
|
| 67 |
+
{"step": 1280, "total_steps": 5613, "loss": 4.731663167476654, "lr_semantic": 1.8485435323094385e-05, "lr_talker": 3.697087064618877e-05, "elapsed_s": 2835.434735188959, "job_id": "2650924"}
|
| 68 |
+
{"step": 1300, "total_steps": 5613, "loss": 4.719036556780338, "lr_semantic": 1.8426034799529363e-05, "lr_talker": 3.685206959905873e-05, "elapsed_s": 2876.0257180531044, "job_id": "2650924"}
|
| 69 |
+
{"step": 1320, "total_steps": 5613, "loss": 4.743280284106731, "lr_semantic": 1.8365603103257037e-05, "lr_talker": 3.6731206206514074e-05, "elapsed_s": 2929.1522962970193, "job_id": "2650924"}
|
| 70 |
+
{"step": 1340, "total_steps": 5613, "loss": 4.7402151226997375, "lr_semantic": 1.8304148625769972e-05, "lr_talker": 3.6608297251539944e-05, "elapsed_s": 2980.258687512018, "job_id": "2650924"}
|
| 71 |
+
{"step": 1360, "total_steps": 5613, "loss": 4.711447082459927, "lr_semantic": 1.8241679900583252e-05, "lr_talker": 3.6483359801166504e-05, "elapsed_s": 3022.2461457950994, "job_id": "2650924"}
|
| 72 |
+
{"step": 1380, "total_steps": 5613, "loss": 4.722232082858682, "lr_semantic": 1.8178205602049493e-05, "lr_talker": 3.6356411204098985e-05, "elapsed_s": 3062.724447991932, "job_id": "2650924"}
|
| 73 |
+
{"step": 1400, "total_steps": 5613, "loss": 4.741885308176279, "lr_semantic": 1.811373454415437e-05, "lr_talker": 3.622746908830874e-05, "elapsed_s": 3103.5578841960523, "job_id": "2650924"}
|
| 74 |
+
{"step": 1420, "total_steps": 5613, "loss": 4.7331896759569645, "lr_semantic": 1.8048275679292674e-05, "lr_talker": 3.609655135858535e-05, "elapsed_s": 3145.3643633520696, "job_id": "2650924"}
|
| 75 |
+
{"step": 1440, "total_steps": 5613, "loss": 4.734523702412844, "lr_semantic": 1.798183809702522e-05, "lr_talker": 3.596367619405044e-05, "elapsed_s": 3195.941620595986, "job_id": "2650924"}
|
| 76 |
+
{"step": 1460, "total_steps": 5613, "loss": 4.7298208605498075, "lr_semantic": 1.7914431022816666e-05, "lr_talker": 3.582886204563333e-05, "elapsed_s": 3244.4972031789366, "job_id": "2650924"}
|
| 77 |
+
{"step": 1480, "total_steps": 5613, "loss": 4.717615306377411, "lr_semantic": 1.7846063816754468e-05, "lr_talker": 3.5692127633508935e-05, "elapsed_s": 3284.8206422769, "job_id": "2650924"}
|
| 78 |
+
{"step": 1500, "total_steps": 5613, "loss": 4.71048554033041, "lr_semantic": 1.7776745972249152e-05, "lr_talker": 3.5553491944498304e-05, "elapsed_s": 3328.4186289079953, "job_id": "2650924"}
|
| 79 |
+
{"step": 1520, "total_steps": 5613, "loss": 4.734640143811703, "lr_semantic": 1.7706487114716083e-05, "lr_talker": 3.5412974229432166e-05, "elapsed_s": 3386.097419199068, "job_id": "2650924"}
|
| 80 |
+
{"step": 1540, "total_steps": 5613, "loss": 4.74219785630703, "lr_semantic": 1.7635297000238855e-05, "lr_talker": 3.527059400047771e-05, "elapsed_s": 3427.683724239003, "job_id": "2650924"}
|
| 81 |
+
{"step": 1560, "total_steps": 5613, "loss": 4.720453768968582, "lr_semantic": 1.7563185514214604e-05, "lr_talker": 3.512637102842921e-05, "elapsed_s": 3468.931013341993, "job_id": "2650924"}
|
| 82 |
+
{"step": 1580, "total_steps": 5613, "loss": 4.726194063201547, "lr_semantic": 1.7490162669981296e-05, "lr_talker": 3.498032533996259e-05, "elapsed_s": 3508.7784433478955, "job_id": "2650924"}
|
| 83 |
+
{"step": 1600, "total_steps": 5613, "loss": 4.761078203096986, "lr_semantic": 1.7416238607427315e-05, "lr_talker": 3.483247721485463e-05, "elapsed_s": 3549.4732208650094, "job_id": "2650924"}
|
| 84 |
+
{"step": 1620, "total_steps": 5613, "loss": 4.743052579462528, "lr_semantic": 1.7341423591583436e-05, "lr_talker": 3.468284718316687e-05, "elapsed_s": 3590.2429941399023, "job_id": "2650924"}
|
| 85 |
+
{"step": 1640, "total_steps": 5613, "loss": 4.746201619505882, "lr_semantic": 1.7265728011197426e-05, "lr_talker": 3.453145602239485e-05, "elapsed_s": 3660.068397742929, "job_id": "2650924"}
|
| 86 |
+
{"step": 1660, "total_steps": 5613, "loss": 4.726677805185318, "lr_semantic": 1.7189162377291467e-05, "lr_talker": 3.4378324754582935e-05, "elapsed_s": 3737.718020984903, "job_id": "2650924"}
|
| 87 |
+
{"step": 1680, "total_steps": 5613, "loss": 4.733044046908617, "lr_semantic": 1.7111737321702624e-05, "lr_talker": 3.422347464340525e-05, "elapsed_s": 3783.821527886903, "job_id": "2650924"}
|
| 88 |
+
{"step": 1700, "total_steps": 5613, "loss": 4.732866659760475, "lr_semantic": 1.703346359560651e-05, "lr_talker": 3.406692719121302e-05, "elapsed_s": 3824.358500377042, "job_id": "2650924"}
|
| 89 |
+
{"step": 1720, "total_steps": 5613, "loss": 4.724854338914156, "lr_semantic": 1.6954352068024366e-05, "lr_talker": 3.390870413604873e-05, "elapsed_s": 3867.4716033579316, "job_id": "2650924"}
|
| 90 |
+
{"step": 1740, "total_steps": 5613, "loss": 4.7217960227280855, "lr_semantic": 1.687441372431383e-05, "lr_talker": 3.374882744862766e-05, "elapsed_s": 3908.567238708958, "job_id": "2650924"}
|
| 91 |
+
{"step": 1760, "total_steps": 5613, "loss": 4.7270301431417465, "lr_semantic": 1.67936596646435e-05, "lr_talker": 3.3587319329287e-05, "elapsed_s": 3949.0184991960414, "job_id": "2650924"}
|
| 92 |
+
{"step": 1780, "total_steps": 5613, "loss": 4.7064435333013535, "lr_semantic": 1.6712101102451584e-05, "lr_talker": 3.342420220490317e-05, "elapsed_s": 3988.7838503790554, "job_id": "2650924"}
|
| 93 |
+
{"step": 1800, "total_steps": 5613, "loss": 4.758328091353178, "lr_semantic": 1.6629749362888808e-05, "lr_talker": 3.3259498725777616e-05, "elapsed_s": 4028.887228704989, "job_id": "2650924"}
|
| 94 |
+
{"step": 1820, "total_steps": 5613, "loss": 4.739157922565937, "lr_semantic": 1.654661588124581e-05, "lr_talker": 3.309323176249162e-05, "elapsed_s": 4069.656256943941, "job_id": "2650924"}
|
| 95 |
+
{"step": 1840, "total_steps": 5613, "loss": 4.708026945590973, "lr_semantic": 1.6462712201365248e-05, "lr_talker": 3.2925424402730496e-05, "elapsed_s": 4110.507350655971, "job_id": "2650924"}
|
| 96 |
+
{"step": 1860, "total_steps": 5613, "loss": 4.730698335915804, "lr_semantic": 1.637804997403884e-05, "lr_talker": 3.275609994807768e-05, "elapsed_s": 4150.359022886958, "job_id": "2650924"}
|
| 97 |
+
{"step": 1880, "total_steps": 5613, "loss": 4.625305764377117, "lr_semantic": 1.6292640955389545e-05, "lr_talker": 3.258528191077909e-05, "elapsed_s": 4215.603769697947, "job_id": "2650924"}
|
| 98 |
+
{"step": 1900, "total_steps": 5613, "loss": 4.610010115429759, "lr_semantic": 1.6206497005239105e-05, "lr_talker": 3.241299401047821e-05, "elapsed_s": 4255.96354693803, "job_id": "2650924"}
|
| 99 |
+
{"step": 1920, "total_steps": 5613, "loss": 4.655441582202911, "lr_semantic": 1.6119630085461212e-05, "lr_talker": 3.2239260170922425e-05, "elapsed_s": 4296.034290221054, "job_id": "2650924"}
|
| 100 |
+
{"step": 1940, "total_steps": 5613, "loss": 4.625532982870936, "lr_semantic": 1.6032052258320482e-05, "lr_talker": 3.2064104516640964e-05, "elapsed_s": 4336.216298351064, "job_id": "2650924"}
|
| 101 |
+
{"step": 1960, "total_steps": 5613, "loss": 4.633244961500168, "lr_semantic": 1.5943775684797518e-05, "lr_talker": 3.1887551369595036e-05, "elapsed_s": 4376.645100472961, "job_id": "2650924"}
|
| 102 |
+
{"step": 1980, "total_steps": 5613, "loss": 4.6431789100170135, "lr_semantic": 1.5854812622900225e-05, "lr_talker": 3.170962524580045e-05, "elapsed_s": 4416.419933855068, "job_id": "2650924"}
|
| 103 |
+
{"step": 2000, "total_steps": 5613, "loss": 4.610240997746587, "lr_semantic": 1.5765175425961696e-05, "lr_talker": 3.153035085192339e-05, "elapsed_s": 4470.1600845619105, "job_id": "2650924"}
|
| 104 |
+
{"step": 2020, "total_steps": 5613, "loss": 4.615652056410909, "lr_semantic": 1.5674876540924814e-05, "lr_talker": 3.134975308184963e-05, "elapsed_s": 4509.586936654989, "job_id": "2650924"}
|
| 105 |
+
{"step": 2040, "total_steps": 5613, "loss": 4.6264883652329445, "lr_semantic": 1.5583928506613907e-05, "lr_talker": 3.1167857013227815e-05, "elapsed_s": 4550.146989380941, "job_id": "2650924"}
|
| 106 |
+
{"step": 2060, "total_steps": 5613, "loss": 4.645322745665908, "lr_semantic": 1.5492343951993585e-05, "lr_talker": 3.098468790398717e-05, "elapsed_s": 4591.555366650922, "job_id": "2650924"}
|
| 107 |
+
{"step": 2080, "total_steps": 5613, "loss": 4.631776470690966, "lr_semantic": 1.5400135594415136e-05, "lr_talker": 3.080027118883027e-05, "elapsed_s": 4631.77258078591, "job_id": "2650924"}
|
| 108 |
+
{"step": 2100, "total_steps": 5613, "loss": 4.5987372770905495, "lr_semantic": 1.5307316237850564e-05, "lr_talker": 3.061463247570113e-05, "elapsed_s": 4671.6307264589705, "job_id": "2650924"}
|
| 109 |
+
{"step": 2120, "total_steps": 5613, "loss": 4.652963560074568, "lr_semantic": 1.5213898771114663e-05, "lr_talker": 3.0427797542229326e-05, "elapsed_s": 4712.762785148108, "job_id": "2650924"}
|
| 110 |
+
{"step": 2140, "total_steps": 5613, "loss": 4.626855904236436, "lr_semantic": 1.5119896166075293e-05, "lr_talker": 3.0239792332150587e-05, "elapsed_s": 4755.9194285268895, "job_id": "2650924"}
|
| 111 |
+
{"step": 2160, "total_steps": 5613, "loss": 4.651434026658535, "lr_semantic": 1.5025321475852096e-05, "lr_talker": 3.005064295170419e-05, "elapsed_s": 4795.616878828965, "job_id": "2650924"}
|
| 112 |
+
{"step": 2180, "total_steps": 5613, "loss": 4.620770875364542, "lr_semantic": 1.4930187833003962e-05, "lr_talker": 2.9860375666007923e-05, "elapsed_s": 4835.597036266001, "job_id": "2650924"}
|
| 113 |
+
{"step": 2200, "total_steps": 5613, "loss": 4.610138909891248, "lr_semantic": 1.4834508447705466e-05, "lr_talker": 2.9669016895410933e-05, "elapsed_s": 4875.969234729884, "job_id": "2650924"}
|
| 114 |
+
{"step": 2220, "total_steps": 5613, "loss": 4.630080381408334, "lr_semantic": 1.4738296605912493e-05, "lr_talker": 2.9476593211824986e-05, "elapsed_s": 4915.884354220005, "job_id": "2650924"}
|
| 115 |
+
{"step": 2240, "total_steps": 5613, "loss": 4.613454734906554, "lr_semantic": 1.4641565667517379e-05, "lr_talker": 2.9283131335034757e-05, "elapsed_s": 4955.729310723022, "job_id": "2650924"}
|
| 116 |
+
{"step": 2260, "total_steps": 5613, "loss": 4.627314366400242, "lr_semantic": 1.454432906449375e-05, "lr_talker": 2.90886581289875e-05, "elapsed_s": 4995.154172322946, "job_id": "2650924"}
|
| 117 |
+
{"step": 2280, "total_steps": 5613, "loss": 4.6216220539063215, "lr_semantic": 1.4446600299031396e-05, "lr_talker": 2.889320059806279e-05, "elapsed_s": 5035.364102754975, "job_id": "2650924"}
|
| 118 |
+
{"step": 2300, "total_steps": 5613, "loss": 4.6380799021571875, "lr_semantic": 1.4348392941661333e-05, "lr_talker": 2.8696785883322666e-05, "elapsed_s": 5075.395715229912, "job_id": "2650924"}
|
| 119 |
+
{"step": 2320, "total_steps": 5613, "loss": 4.595997866243124, "lr_semantic": 1.424972062937146e-05, "lr_talker": 2.849944125874292e-05, "elapsed_s": 5145.3028938879725, "job_id": "2650924"}
|
| 120 |
+
{"step": 2340, "total_steps": 5613, "loss": 4.63494280539453, "lr_semantic": 1.4150597063712881e-05, "lr_talker": 2.8301194127425763e-05, "elapsed_s": 5185.5523059929255, "job_id": "2650924"}
|
| 121 |
+
{"step": 2360, "total_steps": 5613, "loss": 4.6449728310108185, "lr_semantic": 1.4051036008897368e-05, "lr_talker": 2.8102072017794736e-05, "elapsed_s": 5225.750247712946, "job_id": "2650924"}
|
| 122 |
+
{"step": 2380, "total_steps": 5613, "loss": 4.655777344480157, "lr_semantic": 1.3951051289886044e-05, "lr_talker": 2.7902102579772088e-05, "elapsed_s": 5272.4179692131, "job_id": "2650924"}
|
| 123 |
+
{"step": 2400, "total_steps": 5613, "loss": 4.625490026548505, "lr_semantic": 1.385065679046968e-05, "lr_talker": 2.770131358093936e-05, "elapsed_s": 5319.016970624914, "job_id": "2650924"}
|
| 124 |
+
{"step": 2420, "total_steps": 5613, "loss": 4.636262411251664, "lr_semantic": 1.3749866451340795e-05, "lr_talker": 2.749973290268159e-05, "elapsed_s": 5359.171833059983, "job_id": "2650924"}
|
| 125 |
+
{"step": 2440, "total_steps": 5613, "loss": 4.626359686255455, "lr_semantic": 1.3648694268157858e-05, "lr_talker": 2.7297388536315717e-05, "elapsed_s": 5399.3266346929595, "job_id": "2650924"}
|
| 126 |
+
{"step": 2460, "total_steps": 5613, "loss": 4.611562255769968, "lr_semantic": 1.3547154289601876e-05, "lr_talker": 2.7094308579203753e-05, "elapsed_s": 5440.610315886093, "job_id": "2650924"}
|
| 127 |
+
{"step": 2480, "total_steps": 5613, "loss": 4.644266894087195, "lr_semantic": 1.3445260615425607e-05, "lr_talker": 2.6890521230851213e-05, "elapsed_s": 5479.786678743083, "job_id": "2650924"}
|
| 128 |
+
{"step": 2500, "total_steps": 5613, "loss": 4.623125057667494, "lr_semantic": 1.3343027394495654e-05, "lr_talker": 2.6686054788991308e-05, "elapsed_s": 5519.988826805027, "job_id": "2650924"}
|
| 129 |
+
{"step": 2520, "total_steps": 5613, "loss": 4.619581380859017, "lr_semantic": 1.3240468822827806e-05, "lr_talker": 2.648093764565561e-05, "elapsed_s": 5560.519715071889, "job_id": "2650924"}
|
| 130 |
+
{"step": 2540, "total_steps": 5613, "loss": 4.620337029919028, "lr_semantic": 1.3137599141615759e-05, "lr_talker": 2.6275198283231517e-05, "elapsed_s": 5603.863650236977, "job_id": "2650924"}
|
| 131 |
+
{"step": 2560, "total_steps": 5613, "loss": 4.655339788645506, "lr_semantic": 1.3034432635253615e-05, "lr_talker": 2.606886527050723e-05, "elapsed_s": 5643.633498328971, "job_id": "2650924"}
|
| 132 |
+
{"step": 2580, "total_steps": 5613, "loss": 4.640034716576338, "lr_semantic": 1.2930983629352353e-05, "lr_talker": 2.5861967258704706e-05, "elapsed_s": 5683.5464796489105, "job_id": "2650924"}
|
| 133 |
+
{"step": 2600, "total_steps": 5613, "loss": 4.628433585166931, "lr_semantic": 1.2827266488750601e-05, "lr_talker": 2.5654532977501202e-05, "elapsed_s": 5723.099614835111, "job_id": "2650924"}
|
| 134 |
+
{"step": 2620, "total_steps": 5613, "loss": 4.6318860817700624, "lr_semantic": 1.2723295615519917e-05, "lr_talker": 2.5446591231039834e-05, "elapsed_s": 5769.974594871048, "job_id": "2650924"}
|
| 135 |
+
{"step": 2640, "total_steps": 5613, "loss": 4.611671743914485, "lr_semantic": 1.2619085446964971e-05, "lr_talker": 2.5238170893929942e-05, "elapsed_s": 5812.693918016972, "job_id": "2650924"}
|
| 136 |
+
{"step": 2660, "total_steps": 5613, "loss": 4.646994363516569, "lr_semantic": 1.2514650453618761e-05, "lr_talker": 2.5029300907237523e-05, "elapsed_s": 5852.106621605111, "job_id": "2650924"}
|
| 137 |
+
{"step": 2680, "total_steps": 5613, "loss": 4.643543936312199, "lr_semantic": 1.241000513723327e-05, "lr_talker": 2.482001027446654e-05, "elapsed_s": 5895.532369503053, "job_id": "2650924"}
|
| 138 |
+
{"step": 2700, "total_steps": 5613, "loss": 4.665915217250586, "lr_semantic": 1.2305164028765737e-05, "lr_talker": 2.4610328057531474e-05, "elapsed_s": 5935.712447670056, "job_id": "2650924"}
|
| 139 |
+
{"step": 2720, "total_steps": 5613, "loss": 4.630682196468115, "lr_semantic": 1.2200141686360935e-05, "lr_talker": 2.440028337272187e-05, "elapsed_s": 5975.7568022529595, "job_id": "2650924"}
|
| 140 |
+
{"step": 2740, "total_steps": 5613, "loss": 4.66122155636549, "lr_semantic": 1.2094952693329617e-05, "lr_talker": 2.4189905386659235e-05, "elapsed_s": 6015.790169884916, "job_id": "2650924"}
|
| 141 |
+
{"step": 2760, "total_steps": 5613, "loss": 4.595508266240358, "lr_semantic": 1.19896116561235e-05, "lr_talker": 2.3979223312247e-05, "elapsed_s": 6098.267138675088, "job_id": "2650924"}
|
| 142 |
+
{"step": 2780, "total_steps": 5613, "loss": 4.6194125432521105, "lr_semantic": 1.1884133202307006e-05, "lr_talker": 2.3768266404614013e-05, "elapsed_s": 6138.280159062939, "job_id": "2650924"}
|
| 143 |
+
{"step": 2800, "total_steps": 5613, "loss": 4.6435114070773125, "lr_semantic": 1.1778531978526136e-05, "lr_talker": 2.3557063957052272e-05, "elapsed_s": 6178.649523121072, "job_id": "2650924"}
|
| 144 |
+
{"step": 2820, "total_steps": 5613, "loss": 4.632688293233514, "lr_semantic": 1.1672822648474594e-05, "lr_talker": 2.3345645296949187e-05, "elapsed_s": 6218.725610052003, "job_id": "2650924"}
|
| 145 |
+
{"step": 2840, "total_steps": 5613, "loss": 4.620898652821779, "lr_semantic": 1.1567019890857644e-05, "lr_talker": 2.3134039781715288e-05, "elapsed_s": 6257.902763654944, "job_id": "2650924"}
|
| 146 |
+
{"step": 2860, "total_steps": 5613, "loss": 4.625769730657339, "lr_semantic": 1.1461138397353813e-05, "lr_talker": 2.2922276794707626e-05, "elapsed_s": 6297.234707331052, "job_id": "2650924"}
|
| 147 |
+
{"step": 2880, "total_steps": 5613, "loss": 4.595105350017548, "lr_semantic": 1.1355192870574828e-05, "lr_talker": 2.2710385741149656e-05, "elapsed_s": 6336.9683743950445, "job_id": "2650924"}
|
| 148 |
+
{"step": 2900, "total_steps": 5613, "loss": 4.603524900972843, "lr_semantic": 1.124919802202401e-05, "lr_talker": 2.249839604404802e-05, "elapsed_s": 6377.163062052103, "job_id": "2650924"}
|
| 149 |
+
{"step": 2920, "total_steps": 5613, "loss": 4.6121920589357615, "lr_semantic": 1.1143168570053474e-05, "lr_talker": 2.228633714010695e-05, "elapsed_s": 6417.040328416042, "job_id": "2650924"}
|
| 150 |
+
{"step": 2940, "total_steps": 5613, "loss": 4.605383405461907, "lr_semantic": 1.1037119237820326e-05, "lr_talker": 2.2074238475640652e-05, "elapsed_s": 6458.799037778983, "job_id": "2650924"}
|
| 151 |
+
{"step": 2960, "total_steps": 5613, "loss": 4.624900868162513, "lr_semantic": 1.093106475124223e-05, "lr_talker": 2.186212950248446e-05, "elapsed_s": 6499.928429676918, "job_id": "2650924"}
|
| 152 |
+
{"step": 2980, "total_steps": 5613, "loss": 4.616175290197134, "lr_semantic": 1.0825019836952577e-05, "lr_talker": 2.1650039673905153e-05, "elapsed_s": 6542.408533280017, "job_id": "2650924"}
|
| 153 |
+
{"step": 3000, "total_steps": 5613, "loss": 4.639580648392439, "lr_semantic": 1.0718999220255559e-05, "lr_talker": 2.1437998440511117e-05, "elapsed_s": 6581.880402375013, "job_id": "2650924"}
|
| 154 |
+
{"step": 3020, "total_steps": 5613, "loss": 4.603767963126302, "lr_semantic": 1.0613017623081425e-05, "lr_talker": 2.122603524616285e-05, "elapsed_s": 6625.251445908099, "job_id": "2650924"}
|
| 155 |
+
{"step": 3040, "total_steps": 5613, "loss": 4.6375779788941145, "lr_semantic": 1.0507089761942209e-05, "lr_talker": 2.1014179523884418e-05, "elapsed_s": 6669.651214292971, "job_id": "2650924"}
|
| 156 |
+
{"step": 3060, "total_steps": 5613, "loss": 4.590810565277934, "lr_semantic": 1.0401230345888205e-05, "lr_talker": 2.080246069177641e-05, "elapsed_s": 6708.853607652942, "job_id": "2650924"}
|
| 157 |
+
{"step": 3080, "total_steps": 5613, "loss": 4.607462951913476, "lr_semantic": 1.0295454074465483e-05, "lr_talker": 2.0590908148930965e-05, "elapsed_s": 6749.735308313044, "job_id": "2650924"}
|
| 158 |
+
{"step": 3100, "total_steps": 5613, "loss": 4.623072760179639, "lr_semantic": 1.0189775635674717e-05, "lr_talker": 2.0379551271349434e-05, "elapsed_s": 6791.6384207950905, "job_id": "2650924"}
|
| 159 |
+
{"step": 3120, "total_steps": 5613, "loss": 4.6187803372740746, "lr_semantic": 1.0084209703931636e-05, "lr_talker": 2.016841940786327e-05, "elapsed_s": 6832.483076035045, "job_id": "2650924"}
|
| 160 |
+
{"step": 3140, "total_steps": 5613, "loss": 4.590356990695, "lr_semantic": 9.978770938029332e-06, "lr_talker": 1.9957541876058664e-05, "elapsed_s": 6873.765201058006, "job_id": "2650924"}
|
| 161 |
+
{"step": 3160, "total_steps": 5613, "loss": 4.622335035353899, "lr_semantic": 9.873473979102764e-06, "lr_talker": 1.9746947958205528e-05, "elapsed_s": 6950.473682532087, "job_id": "2650924"}
|
| 162 |
+
{"step": 3180, "total_steps": 5613, "loss": 4.616848412901163, "lr_semantic": 9.768333448595686e-06, "lr_talker": 1.953666689719137e-05, "elapsed_s": 7027.935233348981, "job_id": "2650924"}
|
| 163 |
+
{"step": 3200, "total_steps": 5613, "loss": 4.60705847106874, "lr_semantic": 9.663363946230362e-06, "lr_talker": 1.9326727892460723e-05, "elapsed_s": 7068.292897902895, "job_id": "2650924"}
|
| 164 |
+
{"step": 3220, "total_steps": 5613, "loss": 4.6382788103073835, "lr_semantic": 9.558580047980217e-06, "lr_talker": 1.9117160095960435e-05, "elapsed_s": 7114.814613187918, "job_id": "2650924"}
|
| 165 |
+
{"step": 3240, "total_steps": 5613, "loss": 4.5957195814698935, "lr_semantic": 9.453996304045853e-06, "lr_talker": 1.8907992608091706e-05, "elapsed_s": 7175.236491824966, "job_id": "2650924"}
|
| 166 |
+
{"step": 3260, "total_steps": 5613, "loss": 4.632833460345864, "lr_semantic": 9.349627236834623e-06, "lr_talker": 1.8699254473669247e-05, "elapsed_s": 7215.2017654269, "job_id": "2650924"}
|
| 167 |
+
{"step": 3280, "total_steps": 5613, "loss": 4.62228437513113, "lr_semantic": 9.245487338944068e-06, "lr_talker": 1.8490974677888137e-05, "elapsed_s": 7254.26144577493, "job_id": "2650924"}
|
| 168 |
+
{"step": 3300, "total_steps": 5613, "loss": 4.634927546605468, "lr_semantic": 9.141591071149456e-06, "lr_talker": 1.828318214229891e-05, "elapsed_s": 7295.908539799973, "job_id": "2650924"}
|
| 169 |
+
{"step": 3320, "total_steps": 5613, "loss": 4.62289790250361, "lr_semantic": 9.037952860395806e-06, "lr_talker": 1.8075905720791612e-05, "elapsed_s": 7335.5786440589, "job_id": "2650924"}
|
| 170 |
+
{"step": 3340, "total_steps": 5613, "loss": 4.631784085184336, "lr_semantic": 8.934587097794555e-06, "lr_talker": 1.786917419558911e-05, "elapsed_s": 7374.582625098992, "job_id": "2650924"}
|
| 171 |
+
{"step": 3360, "total_steps": 5613, "loss": 4.603944197297096, "lr_semantic": 8.831508136625242e-06, "lr_talker": 1.7663016273250485e-05, "elapsed_s": 7415.573455769103, "job_id": "2650924"}
|
| 172 |
+
{"step": 3380, "total_steps": 5613, "loss": 4.604606613516808, "lr_semantic": 8.728730290342388e-06, "lr_talker": 1.7457460580684776e-05, "elapsed_s": 7454.984159963904, "job_id": "2650924"}
|
| 173 |
+
{"step": 3400, "total_steps": 5613, "loss": 4.6076365280896425, "lr_semantic": 8.62626783058798e-06, "lr_talker": 1.725253566117596e-05, "elapsed_s": 7494.683540343074, "job_id": "2650924"}
|
| 174 |
+
{"step": 3420, "total_steps": 5613, "loss": 4.607591565698385, "lr_semantic": 8.524134985209698e-06, "lr_talker": 1.7048269970419396e-05, "elapsed_s": 7533.725569159025, "job_id": "2650924"}
|
| 175 |
+
{"step": 3440, "total_steps": 5613, "loss": 4.63418716751039, "lr_semantic": 8.422345936285268e-06, "lr_talker": 1.6844691872570537e-05, "elapsed_s": 7572.850217720959, "job_id": "2650924"}
|
| 176 |
+
{"step": 3460, "total_steps": 5613, "loss": 4.61283715069294, "lr_semantic": 8.32091481815313e-06, "lr_talker": 1.664182963630626e-05, "elapsed_s": 7637.1775283101015, "job_id": "2650924"}
|
| 177 |
+
{"step": 3480, "total_steps": 5613, "loss": 4.619726676493883, "lr_semantic": 8.21985571544977e-06, "lr_talker": 1.643971143089954e-05, "elapsed_s": 7676.934100366896, "job_id": "2650924"}
|
| 178 |
+
{"step": 3500, "total_steps": 5613, "loss": 4.607974525541067, "lr_semantic": 8.119182661153934e-06, "lr_talker": 1.623836532230787e-05, "elapsed_s": 7719.310810083989, "job_id": "2650924"}
|
| 179 |
+
{"step": 3520, "total_steps": 5613, "loss": 4.624380446970463, "lr_semantic": 8.018909634638035e-06, "lr_talker": 1.603781926927607e-05, "elapsed_s": 7759.803617738886, "job_id": "2650924"}
|
| 180 |
+
{"step": 3540, "total_steps": 5613, "loss": 4.585276786237955, "lr_semantic": 7.919050559726964e-06, "lr_talker": 1.583810111945393e-05, "elapsed_s": 7800.0703570400365, "job_id": "2650924"}
|
| 181 |
+
{"step": 3560, "total_steps": 5613, "loss": 4.628160396590829, "lr_semantic": 7.819619302764659e-06, "lr_talker": 1.5639238605529317e-05, "elapsed_s": 7840.456648838939, "job_id": "2650924"}
|
| 182 |
+
{"step": 3580, "total_steps": 5613, "loss": 4.606885613873601, "lr_semantic": 7.72062967068863e-06, "lr_talker": 1.544125934137726e-05, "elapsed_s": 7880.857028143015, "job_id": "2650924"}
|
| 183 |
+
{"step": 3600, "total_steps": 5613, "loss": 4.604534378275275, "lr_semantic": 7.6220954091127486e-06, "lr_talker": 1.5244190818225497e-05, "elapsed_s": 7948.6377753249835, "job_id": "2650924"}
|
| 184 |
+
{"step": 3620, "total_steps": 5613, "loss": 4.642087118700147, "lr_semantic": 7.524030200418524e-06, "lr_talker": 1.5048060400837048e-05, "elapsed_s": 7989.182672624011, "job_id": "2650924"}
|
| 185 |
+
{"step": 3640, "total_steps": 5613, "loss": 4.6124731246382, "lr_semantic": 7.426447661855198e-06, "lr_talker": 1.4852895323710396e-05, "elapsed_s": 8037.746763360919, "job_id": "2650924"}
|
| 186 |
+
{"step": 3660, "total_steps": 5613, "loss": 4.610769663006067, "lr_semantic": 7.32936134364886e-06, "lr_talker": 1.465872268729772e-05, "elapsed_s": 8077.404462696984, "job_id": "2650924"}
|
| 187 |
+
{"step": 3680, "total_steps": 5613, "loss": 4.59444822743535, "lr_semantic": 7.2327847271208765e-06, "lr_talker": 1.4465569454241753e-05, "elapsed_s": 8116.995957107982, "job_id": "2650924"}
|
| 188 |
+
{"step": 3700, "total_steps": 5613, "loss": 4.599885921925306, "lr_semantic": 7.136731222815878e-06, "lr_talker": 1.4273462445631756e-05, "elapsed_s": 8156.510635749903, "job_id": "2650924"}
|
| 189 |
+
{"step": 3720, "total_steps": 5613, "loss": 4.619421795010567, "lr_semantic": 7.041214168639587e-06, "lr_talker": 1.4082428337279174e-05, "elapsed_s": 8196.255844068015, "job_id": "2650924"}
|
| 190 |
+
{"step": 3740, "total_steps": 5613, "loss": 4.6178270019590855, "lr_semantic": 6.946246828006742e-06, "lr_talker": 1.3892493656013484e-05, "elapsed_s": 8236.720981243998, "job_id": "2650924"}
|
| 191 |
+
{"step": 3760, "total_steps": 5613, "loss": 4.5287997759878635, "lr_semantic": 6.851842387999329e-06, "lr_talker": 1.3703684775998659e-05, "elapsed_s": 8307.158814005088, "job_id": "2650924"}
|
| 192 |
+
{"step": 3780, "total_steps": 5613, "loss": 4.5157803148031235, "lr_semantic": 6.7580139575354435e-06, "lr_talker": 1.3516027915070887e-05, "elapsed_s": 8347.439263015985, "job_id": "2650924"}
|
| 193 |
+
{"step": 3800, "total_steps": 5613, "loss": 4.492436217144132, "lr_semantic": 6.664774565548999e-06, "lr_talker": 1.3329549131097999e-05, "elapsed_s": 8388.475140315946, "job_id": "2650924"}
|
| 194 |
+
{"step": 3820, "total_steps": 5613, "loss": 4.514497401192784, "lr_semantic": 6.5721371591805535e-06, "lr_talker": 1.3144274318361107e-05, "elapsed_s": 8428.67107571708, "job_id": "2650924"}
|
| 195 |
+
{"step": 3840, "total_steps": 5613, "loss": 4.46937383338809, "lr_semantic": 6.48011460197945e-06, "lr_talker": 1.29602292039589e-05, "elapsed_s": 8469.715263373917, "job_id": "2650924"}
|
| 196 |
+
{"step": 3860, "total_steps": 5613, "loss": 4.508008701726794, "lr_semantic": 6.388719672117623e-06, "lr_talker": 1.2777439344235246e-05, "elapsed_s": 8509.82451614691, "job_id": "2650924"}
|
| 197 |
+
{"step": 3880, "total_steps": 5613, "loss": 4.498665811493993, "lr_semantic": 6.2979650606152165e-06, "lr_talker": 1.2595930121230433e-05, "elapsed_s": 8550.05722452607, "job_id": "2650924"}
|
| 198 |
+
{"step": 3900, "total_steps": 5613, "loss": 4.44620075263083, "lr_semantic": 6.207863369578337e-06, "lr_talker": 1.2415726739156674e-05, "elapsed_s": 8590.212388169952, "job_id": "2650924"}
|
| 199 |
+
{"step": 3920, "total_steps": 5613, "loss": 4.501476686447859, "lr_semantic": 6.118427110449115e-06, "lr_talker": 1.223685422089823e-05, "elapsed_s": 8630.740923413076, "job_id": "2650924"}
|
| 200 |
+
{"step": 3940, "total_steps": 5613, "loss": 4.569125657901168, "lr_semantic": 6.029668702268385e-06, "lr_talker": 1.205933740453677e-05, "elapsed_s": 8669.870596830035, "job_id": "2650924"}
|
| 201 |
+
{"step": 3960, "total_steps": 5613, "loss": 4.461178727447987, "lr_semantic": 5.9416004699512094e-06, "lr_talker": 1.1883200939902419e-05, "elapsed_s": 8710.126772614894, "job_id": "2650924"}
|
| 202 |
+
{"step": 3980, "total_steps": 5613, "loss": 4.515434131026268, "lr_semantic": 5.854234642575411e-06, "lr_talker": 1.1708469285150823e-05, "elapsed_s": 8750.327735577943, "job_id": "2650924"}
|
| 203 |
+
{"step": 4000, "total_steps": 5613, "loss": 4.514987234026194, "lr_semantic": 5.76758335168349e-06, "lr_talker": 1.153516670336698e-05, "elapsed_s": 8790.649440234993, "job_id": "2650924"}
|
| 204 |
+
{"step": 4020, "total_steps": 5613, "loss": 4.504336902871728, "lr_semantic": 5.681658629598021e-06, "lr_talker": 1.1363317259196043e-05, "elapsed_s": 8830.257627018029, "job_id": "2650924"}
|
| 205 |
+
{"step": 4040, "total_steps": 5613, "loss": 4.487777344882488, "lr_semantic": 5.596472407750888e-06, "lr_talker": 1.1192944815501776e-05, "elapsed_s": 8870.364806099096, "job_id": "2650924"}
|
| 206 |
+
{"step": 4060, "total_steps": 5613, "loss": 4.495494468137622, "lr_semantic": 5.512036515026457e-06, "lr_talker": 1.1024073030052915e-05, "elapsed_s": 8910.096186374081, "job_id": "2650924"}
|
| 207 |
+
{"step": 4080, "total_steps": 5613, "loss": 4.483938731253147, "lr_semantic": 5.428362676119063e-06, "lr_talker": 1.0856725352238127e-05, "elapsed_s": 8950.116008858895, "job_id": "2650924"}
|
| 208 |
+
{"step": 4100, "total_steps": 5613, "loss": 4.494588997215033, "lr_semantic": 5.345462509904901e-06, "lr_talker": 1.0690925019809801e-05, "elapsed_s": 8990.26555560599, "job_id": "2650924"}
|
| 209 |
+
{"step": 4120, "total_steps": 5613, "loss": 4.494730705395341, "lr_semantic": 5.263347527828662e-06, "lr_talker": 1.0526695055657324e-05, "elapsed_s": 9030.054463834036, "job_id": "2650924"}
|
| 210 |
+
{"step": 4140, "total_steps": 5613, "loss": 4.53859705477953, "lr_semantic": 5.182029132305044e-06, "lr_talker": 1.0364058264610089e-05, "elapsed_s": 9070.23684858391, "job_id": "2650924"}
|
| 211 |
+
{"step": 4160, "total_steps": 5613, "loss": 4.527783302590251, "lr_semantic": 5.101518615135439e-06, "lr_talker": 1.0203037230270879e-05, "elapsed_s": 9110.06045971089, "job_id": "2650924"}
|
| 212 |
+
{"step": 4180, "total_steps": 5613, "loss": 4.503189731389284, "lr_semantic": 5.021827155939951e-06, "lr_talker": 1.0043654311879902e-05, "elapsed_s": 9150.62700702995, "job_id": "2650924"}
|
| 213 |
+
{"step": 4200, "total_steps": 5613, "loss": 4.496820015832782, "lr_semantic": 4.942965820605014e-06, "lr_talker": 9.885931641210027e-06, "elapsed_s": 9216.700601124903, "job_id": "2650924"}
|
| 214 |
+
{"step": 4220, "total_steps": 5613, "loss": 4.473198881372809, "lr_semantic": 4.864945559746785e-06, "lr_talker": 9.72989111949357e-06, "elapsed_s": 9256.489080969943, "job_id": "2650924"}
|
| 215 |
+
{"step": 4240, "total_steps": 5613, "loss": 4.493655517697334, "lr_semantic": 4.787777207190554e-06, "lr_talker": 9.575554414381108e-06, "elapsed_s": 9297.0773801459, "job_id": "2650924"}
|
| 216 |
+
{"step": 4260, "total_steps": 5613, "loss": 4.497149819508195, "lr_semantic": 4.7114714784663626e-06, "lr_talker": 9.422942956932725e-06, "elapsed_s": 9337.289414040046, "job_id": "2650924"}
|
| 217 |
+
{"step": 4280, "total_steps": 5613, "loss": 4.501642098650336, "lr_semantic": 4.636038969321073e-06, "lr_talker": 9.272077938642147e-06, "elapsed_s": 9377.615158363013, "job_id": "2650924"}
|
| 218 |
+
{"step": 4300, "total_steps": 5613, "loss": 4.520987527444959, "lr_semantic": 4.56149015424703e-06, "lr_talker": 9.12298030849406e-06, "elapsed_s": 9417.534220606089, "job_id": "2650924"}
|
| 219 |
+
{"step": 4320, "total_steps": 5613, "loss": 4.527938229963183, "lr_semantic": 4.487835385027589e-06, "lr_talker": 8.975670770055178e-06, "elapsed_s": 9457.697311616037, "job_id": "2650924"}
|
| 220 |
+
{"step": 4340, "total_steps": 5613, "loss": 4.470086505636573, "lr_semantic": 4.415084889299689e-06, "lr_talker": 8.830169778599377e-06, "elapsed_s": 9497.87012825394, "job_id": "2650924"}
|
| 221 |
+
{"step": 4360, "total_steps": 5613, "loss": 4.477155515924096, "lr_semantic": 4.343248769133634e-06, "lr_talker": 8.686497538267268e-06, "elapsed_s": 9538.255287026055, "job_id": "2650924"}
|
| 222 |
+
{"step": 4380, "total_steps": 5613, "loss": 4.554677220061421, "lr_semantic": 4.272336999630336e-06, "lr_talker": 8.544673999260673e-06, "elapsed_s": 9578.239094093908, "job_id": "2650924"}
|
| 223 |
+
{"step": 4400, "total_steps": 5613, "loss": 4.504549885168672, "lr_semantic": 4.202359427536182e-06, "lr_talker": 8.404718855072364e-06, "elapsed_s": 9618.372801762074, "job_id": "2650924"}
|
| 224 |
+
{"step": 4420, "total_steps": 5613, "loss": 4.468563262373209, "lr_semantic": 4.133325769875727e-06, "lr_talker": 8.266651539751453e-06, "elapsed_s": 9659.369848165894, "job_id": "2650924"}
|
| 225 |
+
{"step": 4440, "total_steps": 5613, "loss": 4.50471817702055, "lr_semantic": 4.065245612602387e-06, "lr_talker": 8.130491225204775e-06, "elapsed_s": 9698.31437128107, "job_id": "2650924"}
|
| 226 |
+
{"step": 4460, "total_steps": 5613, "loss": 4.508229313418269, "lr_semantic": 3.998128409267349e-06, "lr_talker": 7.996256818534698e-06, "elapsed_s": 9738.533771286951, "job_id": "2650924"}
|
| 227 |
+
{"step": 4480, "total_steps": 5613, "loss": 4.4808026403188705, "lr_semantic": 3.931983479706852e-06, "lr_talker": 7.863966959413704e-06, "elapsed_s": 9777.471496402053, "job_id": "2650924"}
|
| 228 |
+
{"step": 4500, "total_steps": 5613, "loss": 4.475344978272915, "lr_semantic": 3.866820008748059e-06, "lr_talker": 7.733640017496119e-06, "elapsed_s": 9817.360064570094, "job_id": "2650924"}
|
| 229 |
+
{"step": 4520, "total_steps": 5613, "loss": 4.47369010746479, "lr_semantic": 3.802647044933639e-06, "lr_talker": 7.605294089867278e-06, "elapsed_s": 9857.07974260603, "job_id": "2650924"}
|
| 230 |
+
{"step": 4540, "total_steps": 5613, "loss": 4.481849290430546, "lr_semantic": 3.739473499265307e-06, "lr_talker": 7.478946998530614e-06, "elapsed_s": 9896.727220227942, "job_id": "2650924"}
|
| 231 |
+
{"step": 4560, "total_steps": 5613, "loss": 4.489246996119618, "lr_semantic": 3.6773081439664425e-06, "lr_talker": 7.354616287932885e-06, "elapsed_s": 9935.44392012991, "job_id": "2650924"}
|
| 232 |
+
{"step": 4580, "total_steps": 5613, "loss": 4.507993955165148, "lr_semantic": 3.6161596112640023e-06, "lr_talker": 7.232319222528005e-06, "elapsed_s": 9975.47193939588, "job_id": "2650924"}
|
| 233 |
+
{"step": 4600, "total_steps": 5613, "loss": 4.501274397596717, "lr_semantic": 3.556036392189834e-06, "lr_talker": 7.112072784379668e-06, "elapsed_s": 10015.058491972042, "job_id": "2650924"}
|
| 234 |
+
{"step": 4620, "total_steps": 5613, "loss": 4.511318193748593, "lr_semantic": 3.4969468354016343e-06, "lr_talker": 6.993893670803269e-06, "elapsed_s": 10055.509547737893, "job_id": "2650924"}
|
| 235 |
+
{"step": 4640, "total_steps": 5613, "loss": 4.528082717210054, "lr_semantic": 3.4388991460236567e-06, "lr_talker": 6.877798292047313e-06, "elapsed_s": 10095.575066080084, "job_id": "2650924"}
|
| 236 |
+
{"step": 4660, "total_steps": 5613, "loss": 4.532296687364578, "lr_semantic": 3.3819013845073606e-06, "lr_talker": 6.763802769014721e-06, "elapsed_s": 10163.833614460891, "job_id": "2650924"}
|
| 237 |
+
{"step": 4680, "total_steps": 5613, "loss": 4.509938716888428, "lr_semantic": 3.325961465512132e-06, "lr_talker": 6.651922931024264e-06, "elapsed_s": 10204.811694727046, "job_id": "2650924"}
|
| 238 |
+
{"step": 4700, "total_steps": 5613, "loss": 4.50479955598712, "lr_semantic": 3.2710871568062707e-06, "lr_talker": 6.542174313612541e-06, "elapsed_s": 10247.901896313066, "job_id": "2650924"}
|
| 239 |
+
{"step": 4720, "total_steps": 5613, "loss": 4.486642941832542, "lr_semantic": 3.217286078188368e-06, "lr_talker": 6.434572156376736e-06, "elapsed_s": 10287.350444924086, "job_id": "2650924"}
|
| 240 |
+
{"step": 4740, "total_steps": 5613, "loss": 4.51556740142405, "lr_semantic": 3.164565700429215e-06, "lr_talker": 6.32913140085843e-06, "elapsed_s": 10327.08104562806, "job_id": "2650924"}
|
| 241 |
+
{"step": 4760, "total_steps": 5613, "loss": 4.509736044332385, "lr_semantic": 3.1129333442344288e-06, "lr_talker": 6.2258666884688576e-06, "elapsed_s": 10370.734344020952, "job_id": "2650924"}
|
| 242 |
+
{"step": 4780, "total_steps": 5613, "loss": 4.491977885365486, "lr_semantic": 3.0623961792278984e-06, "lr_talker": 6.124792358455797e-06, "elapsed_s": 10410.598235925892, "job_id": "2650924"}
|
| 243 |
+
{"step": 4800, "total_steps": 5613, "loss": 4.490510620176792, "lr_semantic": 3.012961222956229e-06, "lr_talker": 6.025922445912458e-06, "elapsed_s": 10449.997615390923, "job_id": "2650924"}
|
| 244 |
+
{"step": 4820, "total_steps": 5613, "loss": 4.508950624614954, "lr_semantic": 2.9646353399142746e-06, "lr_talker": 5.929270679828549e-06, "elapsed_s": 10489.11248591193, "job_id": "2650924"}
|
| 245 |
+
{"step": 4840, "total_steps": 5613, "loss": 4.514956993982196, "lr_semantic": 2.9174252405919544e-06, "lr_talker": 5.834850481183909e-06, "elapsed_s": 10528.85751005006, "job_id": "2650924"}
|
| 246 |
+
{"step": 4860, "total_steps": 5613, "loss": 4.498611994087696, "lr_semantic": 2.871337480542431e-06, "lr_talker": 5.742674961084862e-06, "elapsed_s": 10568.632050517015, "job_id": "2650924"}
|
| 247 |
+
{"step": 4880, "total_steps": 5613, "loss": 4.55120425671339, "lr_semantic": 2.8263784594718203e-06, "lr_talker": 5.6527569189436406e-06, "elapsed_s": 10609.146117511904, "job_id": "2650924"}
|
| 248 |
+
{"step": 4900, "total_steps": 5613, "loss": 4.476833371445537, "lr_semantic": 2.7825544203505256e-06, "lr_talker": 5.565108840701051e-06, "elapsed_s": 10648.69591521495, "job_id": "2650924"}
|
| 249 |
+
{"step": 4920, "total_steps": 5613, "loss": 4.547092678025365, "lr_semantic": 2.739871448546349e-06, "lr_talker": 5.479742897092698e-06, "elapsed_s": 10688.280809924938, "job_id": "2650924"}
|
| 250 |
+
{"step": 4940, "total_steps": 5613, "loss": 4.518194805830717, "lr_semantic": 2.6983354709794795e-06, "lr_talker": 5.396670941958959e-06, "elapsed_s": 10728.113615673967, "job_id": "2650924"}
|
| 251 |
+
{"step": 4960, "total_steps": 5613, "loss": 4.499944154173136, "lr_semantic": 2.6579522552994934e-06, "lr_talker": 5.315904510598987e-06, "elapsed_s": 10767.352765566902, "job_id": "2650924"}
|
| 252 |
+
{"step": 4980, "total_steps": 5613, "loss": 4.5239817798137665, "lr_semantic": 2.6187274090844515e-06, "lr_talker": 5.237454818168903e-06, "elapsed_s": 10807.99079614901, "job_id": "2650924"}
|
| 253 |
+
{"step": 5000, "total_steps": 5613, "loss": 4.521790949627757, "lr_semantic": 2.5806663790622466e-06, "lr_talker": 5.161332758124493e-06, "elapsed_s": 10847.802871332038, "job_id": "2650924"}
|
| 254 |
+
{"step": 5020, "total_steps": 5613, "loss": 4.479529803618789, "lr_semantic": 2.543774450354269e-06, "lr_talker": 5.087548900708538e-06, "elapsed_s": 10886.892361076083, "job_id": "2650924"}
|
| 255 |
+
{"step": 5040, "total_steps": 5613, "loss": 4.53331470862031, "lr_semantic": 2.508056745741524e-06, "lr_talker": 5.016113491483048e-06, "elapsed_s": 10926.426077683922, "job_id": "2650924"}
|
| 256 |
+
{"step": 5060, "total_steps": 5613, "loss": 4.475990153849125, "lr_semantic": 2.473518224953281e-06, "lr_talker": 4.947036449906562e-06, "elapsed_s": 10966.475102063967, "job_id": "2650924"}
|
| 257 |
+
{"step": 5080, "total_steps": 5613, "loss": 4.487173097208142, "lr_semantic": 2.4401636839783747e-06, "lr_talker": 4.8803273679567495e-06, "elapsed_s": 11005.521174782887, "job_id": "2650924"}
|
| 258 |
+
{"step": 5100, "total_steps": 5613, "loss": 4.518084799870849, "lr_semantic": 2.40799775439924e-06, "lr_talker": 4.81599550879848e-06, "elapsed_s": 11070.073245553067, "job_id": "2650924"}
|
| 259 |
+
{"step": 5120, "total_steps": 5613, "loss": 4.458881165832281, "lr_semantic": 2.377024902748767e-06, "lr_talker": 4.754049805497534e-06, "elapsed_s": 11116.48473715689, "job_id": "2650924"}
|
| 260 |
+
{"step": 5140, "total_steps": 5613, "loss": 4.502075454220176, "lr_semantic": 2.3472494298900887e-06, "lr_talker": 4.694498859780177e-06, "elapsed_s": 11175.641847911058, "job_id": "2650924"}
|
| 261 |
+
{"step": 5160, "total_steps": 5613, "loss": 4.50912244617939, "lr_semantic": 2.318675470419362e-06, "lr_talker": 4.637350940838724e-06, "elapsed_s": 11215.239849477075, "job_id": "2650924"}
|
| 262 |
+
{"step": 5180, "total_steps": 5613, "loss": 4.4947781171649694, "lr_semantic": 2.291306992091649e-06, "lr_talker": 4.582613984183298e-06, "elapsed_s": 11255.565913405968, "job_id": "2650924"}
|
| 263 |
+
{"step": 5200, "total_steps": 5613, "loss": 4.493680028244853, "lr_semantic": 2.265147795269948e-06, "lr_talker": 4.530295590539896e-06, "elapsed_s": 11295.986628266051, "job_id": "2650924"}
|
| 264 |
+
{"step": 5220, "total_steps": 5613, "loss": 4.495013313367963, "lr_semantic": 2.2402015123974873e-06, "lr_talker": 4.480403024794975e-06, "elapsed_s": 11336.742370306049, "job_id": "2650924"}
|
| 265 |
+
{"step": 5240, "total_steps": 5613, "loss": 4.492965376004577, "lr_semantic": 2.21647160749332e-06, "lr_talker": 4.43294321498664e-06, "elapsed_s": 11376.87850391306, "job_id": "2650924"}
|
| 266 |
+
{"step": 5260, "total_steps": 5613, "loss": 4.506780857220292, "lr_semantic": 2.19396137567132e-06, "lr_talker": 4.38792275134264e-06, "elapsed_s": 11416.976068895077, "job_id": "2650924"}
|
| 267 |
+
{"step": 5280, "total_steps": 5613, "loss": 4.499888459220529, "lr_semantic": 2.172673942682619e-06, "lr_talker": 4.345347885365238e-06, "elapsed_s": 11456.664269140922, "job_id": "2650924"}
|
| 268 |
+
{"step": 5300, "total_steps": 5613, "loss": 4.518908817321062, "lr_semantic": 2.152612264481573e-06, "lr_talker": 4.305224528963146e-06, "elapsed_s": 11496.755048733903, "job_id": "2650924"}
|
| 269 |
+
{"step": 5320, "total_steps": 5613, "loss": 4.489227641373873, "lr_semantic": 2.133779126815298e-06, "lr_talker": 4.267558253630596e-06, "elapsed_s": 11537.315214381088, "job_id": "2650924"}
|
| 270 |
+
{"step": 5340, "total_steps": 5613, "loss": 4.488119645044208, "lr_semantic": 2.116177144836843e-06, "lr_talker": 4.232354289673686e-06, "elapsed_s": 11577.329608292086, "job_id": "2650924"}
|
| 271 |
+
{"step": 5360, "total_steps": 5613, "loss": 4.507138418033719, "lr_semantic": 2.0998087627420547e-06, "lr_talker": 4.199617525484109e-06, "elapsed_s": 11617.551594171906, "job_id": "2650924"}
|
| 272 |
+
{"step": 5380, "total_steps": 5613, "loss": 4.483428550884128, "lr_semantic": 2.084676253430176e-06, "lr_talker": 4.169352506860352e-06, "elapsed_s": 11657.543182423105, "job_id": "2650924"}
|
| 273 |
+
{"step": 5400, "total_steps": 5613, "loss": 4.507531909272075, "lr_semantic": 2.0707817181882362e-06, "lr_talker": 4.1415634363764725e-06, "elapsed_s": 11697.616981758969, "job_id": "2650924"}
|
| 274 |
+
{"step": 5420, "total_steps": 5613, "loss": 4.5199560560286045, "lr_semantic": 2.0581270863992647e-06, "lr_talker": 4.116254172798529e-06, "elapsed_s": 11737.684882604051, "job_id": "2650924"}
|
| 275 |
+
{"step": 5440, "total_steps": 5613, "loss": 4.516109714284539, "lr_semantic": 2.046714115274381e-06, "lr_talker": 4.093428230548762e-06, "elapsed_s": 11777.653627076885, "job_id": "2650924"}
|
| 276 |
+
{"step": 5460, "total_steps": 5613, "loss": 4.533677160739899, "lr_semantic": 2.0365443896087896e-06, "lr_talker": 4.073088779217579e-06, "elapsed_s": 11817.504115035059, "job_id": "2650924"}
|
| 277 |
+
{"step": 5480, "total_steps": 5613, "loss": 4.511550577357411, "lr_semantic": 2.027619321561713e-06, "lr_talker": 4.055238643123426e-06, "elapsed_s": 11858.314438190078, "job_id": "2650924"}
|
| 278 |
+
{"step": 5500, "total_steps": 5613, "loss": 4.508249634876847, "lr_semantic": 2.0199401504603083e-06, "lr_talker": 4.0398803009206166e-06, "elapsed_s": 11898.535210394999, "job_id": "2650924"}
|
| 279 |
+
{"step": 5520, "total_steps": 5613, "loss": 4.4926785957068205, "lr_semantic": 2.0135079426275685e-06, "lr_talker": 4.027015885255137e-06, "elapsed_s": 11938.88822698011, "job_id": "2650924"}
|
| 280 |
+
{"step": 5540, "total_steps": 5613, "loss": 4.5294253770262, "lr_semantic": 2.0083235912342546e-06, "lr_talker": 4.016647182468509e-06, "elapsed_s": 12006.199359528022, "job_id": "2650924"}
|
| 281 |
+
{"step": 5560, "total_steps": 5613, "loss": 4.465063022449613, "lr_semantic": 2.0043878161748764e-06, "lr_talker": 4.008775632349753e-06, "elapsed_s": 12046.419657595921, "job_id": "2650924"}
|
| 282 |
+
{"step": 5580, "total_steps": 5613, "loss": 4.495070664212108, "lr_semantic": 2.00170116396772e-06, "lr_talker": 4.00340232793544e-06, "elapsed_s": 12086.452257984085, "job_id": "2650924"}
|
| 283 |
+
{"step": 5600, "total_steps": 5613, "loss": 4.527787942439318, "lr_semantic": 2.000264007678965e-06, "lr_talker": 4.00052801535793e-06, "elapsed_s": 12125.804159580963, "job_id": "2650924"}
|
| 284 |
+
{"step": 5613, "total_steps": 5613, "loss": 4.5207825703407405, "lr_semantic": 2.0000000000000003e-06, "lr_talker": 4.000000000000001e-06, "elapsed_s": 12151.526500405977, "job_id": "2650924"}
|
stats/fullft-validation.jsonl
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"step": 0, "mean_loss": 5.40239987373352, "cases": 20, "time": 1793633547.4968805}\n{"step": 413, "mean_loss": 4.707755017280578, "cases": 20, "time": 1793634445.4615188}\n{"step": 847, "mean_loss": 4.679264855384827, "cases": 20, "time": 1793635373.4987214}\n{"step": 1260, "mean_loss": 4.667382431030274, "cases": 20, "time": 1793636300.7190757}\n{"step": 1652, "mean_loss": 4.656465816497803, "cases": 20, "time": 1793637235.9532719}\n{"step": 1871, "mean_loss": 4.651724743843078, "cases": 20, "time": 1793637716.785558}\n{"step": 2311, "mean_loss": 4.658494067192078, "cases": 20, "time": 1793638642.6502783}\n{"step": 2744, "mean_loss": 4.639594459533692, "cases": 20, "time": 1793639568.245913}\n{"step": 3160, "mean_loss": 4.634997391700745, "cases": 20, "time": 1793640494.9953086}\n{"step": 3581, "mean_loss": 4.620176243782043, "cases": 20, "time": 1793641427.281522}\n{"step": 3742, "mean_loss": 4.615711975097656, "cases": 20, "time": 1793641785.2390747}\n{"step": 4190, "mean_loss": 4.643639993667603, "cases": 20, "time": 1793642715.493736}\n{"step": 4641, "mean_loss": 4.642439317703247, "cases": 20, "time": 1793643642.0362904}\n{"step": 5089, "mean_loss": 4.637552738189697, "cases": 20, "time": 1793644568.1563737}\n{"step": 5525, "mean_loss": 4.63270890712738, "cases": 20, "time": 1793645493.5265963}\n{"step": 5613, "mean_loss": 4.6320901870727536, "cases": 20, "time": 1793645696.0330918}\n
|
stats/rank64-CONTRACT.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"variant": "podcast",
|
| 3 |
+
"parent": "/e/scratch/laionize/schuhmann1/hv_large13_notebooklm_20261102/large/training/checkpoints/step-00005613",
|
| 4 |
+
"parent_ready_sha256": "99c2578128c510e2dce04250a78bca465bf4e2ad1f7302eeb94a3a83cf0ec169",
|
| 5 |
+
"parent_bytes": 18201842943,
|
| 6 |
+
"ladder_sha256": "35492447edcf91fa5aa15a54394cb0355c609655ac53076ee09c29e0a8480f39",
|
| 7 |
+
"training_code_sha256": "22df229f2c5ea25c1273091fdf875dc53f79ec55b57fc96831c6ac2302d73214",
|
| 8 |
+
"schedule_sha256": "b070ddd84b67c8333bb9ad727aa3a594da55f768a7b8849a0c0edbe0e6dad674",
|
| 9 |
+
"packer_sha256": "d379eefc2128df8578da394e782aa64ca73dd9b69a76a5ab488d34f6588ad0a7",
|
| 10 |
+
"reader_sha256": "eb45d1a325eb5858d32fcbe2be0f76cd58eee54fc9e7fd8adc4b0da1a6fbb230",
|
| 11 |
+
"adapter_sha256": "f7eaf7ac6b6da344653f72dee77d498bc7019a3bc32fe715695d9cd2a994e579",
|
| 12 |
+
"world": 4,
|
| 13 |
+
"rank": 64,
|
| 14 |
+
"alpha": 64,
|
| 15 |
+
"seed": 20261102,
|
| 16 |
+
"peak": 3e-05,
|
| 17 |
+
"phase_steps": [
|
| 18 |
+
183,
|
| 19 |
+
160,
|
| 20 |
+
132,
|
| 21 |
+
91,
|
| 22 |
+
43,
|
| 23 |
+
43
|
| 24 |
+
],
|
| 25 |
+
"total_steps": 652,
|
| 26 |
+
"reference": "two strictly past 5\u201315s speaker references, strictly past context"
|
| 27 |
+
}
|
stats/rank64-FINISHED.json
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"step": 652,
|
| 3 |
+
"contract_sha256": "88d1284099df084d941f8274e953612a864c607e9ae4380af738280ef9dfc517",
|
| 4 |
+
"time": 1793657711.2167256
|
| 5 |
+
}
|