spantrack interface ok

This commit is contained in:
2026-08-12 09:46:34 -03:00
parent 2f9b95e095
commit ea16f87fc9
4 changed files with 67 additions and 23 deletions
+3 -4
View File
@@ -14,7 +14,6 @@ except PackageNotFoundError:
pass
from .logger import logger, loglevel_map, get_logger
from .utils import DataDict, PathLike, path
from .app import App
#from .logger import logger, loglevel_map, get_logger
#from .utils import DataDict, PathLike, path
#from .app import App
+1
View File
@@ -48,6 +48,7 @@ logging.basicConfig(
level=logging.INFO,
format=format_str,
)
logging.captureWarnings(True)
logger = logging.getLogger(__name__)
+61 -18
View File
@@ -1,22 +1,65 @@
#!/usr/bin/env python3
# -*- coding: utf-8; tab-width: 4; -*-
# vim: set fileencoding=utf-8 tabstop=4 shiftwidth=4 expandtab:
# Copyright (c) 2025-2026 Renato Xavier da Silveira Rosa
# See [LICENSE](./LICENSE) or [BSD-3-Clause-Clear](https://spdx.org/licenses/BSD-3-Clause-Clear.html)
from pathlib import Path
import os
import sys
import logging
logger = logging.get_logger()
from datetime import datetime as dt
from dotenv import load_dotenv
from .logger import logger
from spantrack import cli, run_config
load_dotenv()
os.environ["NLTK_DATA"] = 'C:\\Users\\renat\\AppData\\Roaming\\nltk_data'
os.environ["HF_TOKEN"] = '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'
from spantrack import cli
root = 'D:\\DATA\\EBOOKS\\_SEM_DRM\\'
globs = [
"Night School*.epub",
"The Midnight*.epub",
"Past Tense*.epub",
"Blue Moon*.epub",
"The Sentinel",
"Better Off Dead",
"No Plan B",
]
for glob in globs:
f = root.glob(glob)
if len(f) > 1:
logger.error("Glob pattern found more than 1 file: %s", f)
continue
cli.main([f.resolve(), "--voice", "am_liam"])
timefmt = os.environ.get("TIMEFMT", r"%Y-%m-%dT%H:%M:%S.%f")
def main():
root = Path('D:\\DATA\\EBOOKS\\_SEM_DRM\\')
globs = [
"Night School*.epub",
"The Midnight*.epub",
"Past Tense*.epub",
"Blue Moon*.epub",
"The Sentinel*.epub",
"Better Off Dead*.epub",
"No Plan B*.epub",
]
cmd = []
if "--dry-run" in sys.argv:
cmd.extend("--dry-run")
cmd.extend(["--progress",
"--device", run_config.Device["CUDA"], # spantrack.run_config.Device, default=Device.AUTO,
#"--lexicon", # Path
#"--audio-format", # AudioFormat, default=AudioFormat.MP3, spantrack.run_config._AUDIO_MEDIA_TYPES
#"--lang", # Language, default=Language.EN_US,
"--voice","am_liam",
])
result_output = []
for glob in globs:
file_list = [f for f in root.glob(glob)]
if len(file_list) > 1:
logger.error("Glob pattern found more than 1 file: %s", f)
continue
file = str(file_list[0])
start = dt.now()
logger.info(f"[{start.strftime(timefmt)}] Narrating '{file}'")
cli.main([file] + cmd)
finish = dt.now()
logger.info(f"[{finish .strftime(timefmt)}] Success! '{file}'")
elapsed_time = finish-start
elapsed_hours= elapsed_time.total_seconds // 3600
elapsed_minutes = (elapsed_time.total_seconds % 3600) // 60
elapsed_seconds = elapsed_time.total_seconds % 60
f"Total elapsed time: {elapsed_hours}h {elapsed_minutes}min {elapsed_seconds}s"
result_output.append()
+2 -1
View File
@@ -13,7 +13,8 @@ from pathlib import Path
from typing import Optional, Union
from collections.abc import MutableMapping
from . import logger, PathLike
from .logger import logger
from . import PathLike
def path(fpath: str|Path = None):