mirror of
https://github.com/TaterTotterson/microWakeWord-Trainer-Nvidia-Docker.git
synced 2026-08-12 16:05:34 -06:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
68c4227cb7 |
@@ -1,2 +1 @@
|
||||
- Prevented unreadable audio files from freezing sample preparation by adding a bounded FFmpeg watchdog, safe cleanup, and visible normalization progress.
|
||||
- Kept primary and guided STT results visible after captures are automatically sorted into positive or negative training samples.
|
||||
- Restored MOSS-TTS-Nano generation with the current voice-cloning API so all four providers contribute to the final training corpus.
|
||||
|
||||
@@ -44,7 +44,7 @@ from tts_config import ( # noqa: E402
|
||||
)
|
||||
|
||||
|
||||
GENERATOR_VERSION = "modern-tts-v15-four-provider-direct-corpus-safe-limits"
|
||||
GENERATOR_VERSION = "modern-tts-v16-four-provider-direct-corpus-safe-limits"
|
||||
VOICE_BANK_VERSION = "modern-tts-voice-bank-v1-native-random-qualified-single-utterance"
|
||||
COMPATIBLE_VOICE_BANK_VERSIONS = {
|
||||
VOICE_BANK_VERSION,
|
||||
|
||||
@@ -69,7 +69,6 @@ def main() -> int:
|
||||
text=str(item["text"]),
|
||||
output_audio_path=str(output_path),
|
||||
mode="voice_clone",
|
||||
prompt_text=str(item["ref_text"]),
|
||||
prompt_audio_path=str(item["ref_audio"]),
|
||||
reference_audio_path=None,
|
||||
text_tokenizer_path=None,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import ast
|
||||
import importlib.util
|
||||
import json
|
||||
import math
|
||||
@@ -70,6 +71,22 @@ class ModernTtsTests(unittest.TestCase):
|
||||
["--position_temperature", "5.0", "--class_temperature", "0.0"],
|
||||
)
|
||||
|
||||
def test_moss_voice_clone_uses_audio_without_disallowed_prompt_text(self) -> None:
|
||||
worker_path = REPO_ROOT / "cli" / "tts_moss_worker.py"
|
||||
tree = ast.parse(worker_path.read_text(encoding="utf-8"))
|
||||
inference_calls = [
|
||||
node
|
||||
for node in ast.walk(tree)
|
||||
if isinstance(node, ast.Call)
|
||||
and isinstance(node.func, ast.Attribute)
|
||||
and node.func.attr == "inference"
|
||||
]
|
||||
|
||||
self.assertEqual(len(inference_calls), 1)
|
||||
keywords = {keyword.arg for keyword in inference_calls[0].keywords}
|
||||
self.assertIn("prompt_audio_path", keywords)
|
||||
self.assertNotIn("prompt_text", keywords)
|
||||
|
||||
def test_omnivoice_uses_a_hidden_stable_prompt_before_short_clone(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as temp_dir:
|
||||
data_dir = Path(temp_dir)
|
||||
|
||||
Reference in New Issue
Block a user