spantrack interface ok
This commit is contained in:
@@ -14,7 +14,6 @@ except PackageNotFoundError:
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
#from .logger import logger, loglevel_map, get_logger
|
||||||
from .logger import logger, loglevel_map, get_logger
|
#from .utils import DataDict, PathLike, path
|
||||||
from .utils import DataDict, PathLike, path
|
#from .app import App
|
||||||
from .app import App
|
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ logging.basicConfig(
|
|||||||
level=logging.INFO,
|
level=logging.INFO,
|
||||||
format=format_str,
|
format=format_str,
|
||||||
)
|
)
|
||||||
|
logging.captureWarnings(True)
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|||||||
@@ -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 os
|
||||||
|
import sys
|
||||||
import logging
|
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["NLTK_DATA"] = 'C:\\Users\\renat\\AppData\\Roaming\\nltk_data'
|
||||||
os.environ["HF_TOKEN"] = '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'
|
os.environ["HF_TOKEN"] = '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'
|
||||||
from spantrack import cli
|
timefmt = os.environ.get("TIMEFMT", r"%Y-%m-%dT%H:%M:%S.%f")
|
||||||
root = 'D:\\DATA\\EBOOKS\\_SEM_DRM\\'
|
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
root = Path('D:\\DATA\\EBOOKS\\_SEM_DRM\\')
|
||||||
globs = [
|
globs = [
|
||||||
"Night School*.epub",
|
"Night School*.epub",
|
||||||
"The Midnight*.epub",
|
"The Midnight*.epub",
|
||||||
"Past Tense*.epub",
|
"Past Tense*.epub",
|
||||||
"Blue Moon*.epub",
|
"Blue Moon*.epub",
|
||||||
"The Sentinel",
|
"The Sentinel*.epub",
|
||||||
"Better Off Dead",
|
"Better Off Dead*.epub",
|
||||||
"No Plan B",
|
"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:
|
for glob in globs:
|
||||||
f = root.glob(glob)
|
file_list = [f for f in root.glob(glob)]
|
||||||
if len(f) > 1:
|
if len(file_list) > 1:
|
||||||
logger.error("Glob pattern found more than 1 file: %s", f)
|
logger.error("Glob pattern found more than 1 file: %s", f)
|
||||||
continue
|
continue
|
||||||
cli.main([f.resolve(), "--voice", "am_liam"])
|
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()
|
||||||
@@ -13,7 +13,8 @@ from pathlib import Path
|
|||||||
from typing import Optional, Union
|
from typing import Optional, Union
|
||||||
from collections.abc import MutableMapping
|
from collections.abc import MutableMapping
|
||||||
|
|
||||||
from . import logger, PathLike
|
from .logger import logger
|
||||||
|
from . import PathLike
|
||||||
|
|
||||||
|
|
||||||
def path(fpath: str|Path = None):
|
def path(fpath: str|Path = None):
|
||||||
|
|||||||
Reference in New Issue
Block a user