Some checks failed
Bindings Tests (Go) / ubuntu-22 (push) Failing after 31s
CI (sycl) / ubuntu-22-cmake-sycl (linux/arm/v7, icx, icpx, ON) (push) Failing after 3s
CI (sycl) / ubuntu-22-cmake-sycl (linux/ppc64le, icx, icpx, ON) (push) Failing after 2s
CI (sycl) / ubuntu-22-cmake-sycl-fp16 (linux/amd64, icx, icpx, ON) (push) Failing after 3s
CI (sycl) / ubuntu-22-cmake-sycl-fp16 (linux/arm/v7, icx, icpx, ON) (push) Failing after 3s
CI (sycl) / ubuntu-22-cmake-sycl-fp16 (linux/arm64, icx, icpx, ON) (push) Failing after 3s
CI (sycl) / ubuntu-22-cmake-sycl-fp16 (linux/ppc64le, icx, icpx, ON) (push) Failing after 3s
CI (vad) / vad (push) Failing after 3s
CI (wasm) / emscripten (Release) (push) Failing after 4s
Bindings Tests (Ruby) / ubuntu-22 (push) Failing after 37s
CI (android) / android (push) Failing after 16s
CI (android) / android_java (push) Failing after 3s
CI (clang) / ubuntu-22-clang (linux/amd64, Debug) (push) Failing after 3s
CI (clang) / ubuntu-22-clang (linux/amd64, Release) (push) Failing after 2s
CI (clang) / ubuntu-22-clang (linux/ppc64le, Debug) (push) Failing after 3s
CI (clang) / ubuntu-22-clang (linux/ppc64le, Release) (push) Failing after 3s
CI (cpu) / ggml-ci-x64-cpu-low-perf (push) Failing after 3s
CI (cpu) / ggml-ci-x64-cpu-high-perf (push) Failing after 2s
CI (gcc) / ubuntu-22-gcc (linux/amd64, Debug) (push) Failing after 3s
CI (gcc) / ubuntu-22-gcc (linux/amd64, Release) (push) Failing after 3s
CI (gcc) / ubuntu-22-gcc (linux/ppc64le, Debug) (push) Failing after 3s
CI (gcc) / ubuntu-22-gcc (linux/ppc64le, Release) (push) Failing after 4s
CI (gcc) / ubuntu-22-gcc-arm-v7 (linux/arm/v7, Debug) (push) Failing after 3s
CI (gcc) / ubuntu-22-gcc-arm-v7 (linux/arm/v7, Release) (push) Failing after 3s
CI (quantize) / quantize (push) Failing after 3s
CI (sanitize) / ubuntu-22-gcc-sanitized (ADDRESS) (push) Failing after 3s
CI (sanitize) / ubuntu-22-gcc-sanitized (THREAD) (push) Failing after 3s
CI (sanitize) / ubuntu-22-gcc-sanitized (UNDEFINED) (push) Failing after 2s
CI (sycl) / ubuntu-22-cmake-sycl (linux/amd64, icx, icpx, ON) (push) Failing after 3s
CI (sycl) / ubuntu-22-cmake-sycl (linux/arm64, icx, icpx, ON) (push) Failing after 3s
Examples WASM / deploy-wasm-github-pages (push) Failing after 3s
Examples Tests / addon_node-ubuntu-22 (20.x) (push) Failing after 3s
Examples Tests / addon_node-ubuntu-22 (22.x) (push) Failing after 2s
CI (coreml) / coreml-base-en (push) Has been cancelled
CI (self-hosted) / gpu-vulkan (push) Has been cancelled
CI (self-hosted) / npu-amd-windows (push) Has been cancelled
CI (self-hosted) / gpu-vulkan-nvidia-cm2 (push) Has been cancelled
CI (clang) / ubuntu-22-clang-arm64 (Debug) (push) Has been cancelled
CI (clang) / ubuntu-22-clang-arm64 (Release) (push) Has been cancelled
CI (self-hosted) / gpu-cuda (push) Has been cancelled
CI (self-hosted) / gpu-vulkan-nvidia-cm (push) Has been cancelled
CI (cpu) / ggml-ci-arm64-cpu-low-perf (push) Has been cancelled
CI (cpu) / ggml-ci-arm64-cpu-high-perf (push) Has been cancelled
CI (cpu) / ggml-ci-arm64-cpu-high-perf-sve (push) Has been cancelled
CI (freebsd) / freeBSD-latest (push) Has been cancelled
CI (self-hosted) / gpu-metal (push) Has been cancelled
CI (gcc) / ubuntu-22-gcc-arm64 (Debug) (push) Has been cancelled
CI (gcc) / ubuntu-22-gcc-arm64 (Release) (push) Has been cancelled
CI (macOS) / macOS-latest (generic/platform=iOS) (push) Has been cancelled
CI (macOS) / macOS-latest (generic/platform=macOS) (push) Has been cancelled
CI (macOS) / macOS-latest (generic/platform=tvOS) (push) Has been cancelled
CI (self-hosted) / npu-amd-linux (push) Has been cancelled
CI (windows) / windows-msys2 (Release, clang, clang-x86_64, CLANG64) (push) Has been cancelled
CI (windows) / windows-msys2 (Release, gcc, ucrt-x86_64, UCRT64) (push) Has been cancelled
Publish Docker image / Push Docker image to Docker Hub (map[dockerfile:.devops/main-cuda.Dockerfile platform:linux/amd64 runs_on:ubuntu-24.04 tag:main-cuda]) (push) Has been cancelled
Publish Docker image / Push Docker image to Docker Hub (map[dockerfile:.devops/main-intel.Dockerfile platform:linux/amd64 runs_on:ubuntu-24.04 tag:main-intel]) (push) Has been cancelled
Publish Docker image / Push Docker image to Docker Hub (map[dockerfile:.devops/main-musa.Dockerfile platform:linux/amd64 runs_on:ubuntu-24.04 tag:main-musa]) (push) Has been cancelled
Publish Docker image / Push Docker image to Docker Hub (map[dockerfile:.devops/main-vulkan.Dockerfile platform:linux/amd64 runs_on:ubuntu-24.04 tag:main-vulkan]) (push) Has been cancelled
Publish Docker image / Push Docker image to Docker Hub (map[dockerfile:.devops/main-vulkan.Dockerfile platform:linux/arm64 runs_on:ubuntu-24.04-arm tag:main-vulkan-arm64]) (push) Has been cancelled
Publish Docker image / Push Docker image to Docker Hub (map[dockerfile:.devops/main.Dockerfile platform:linux/amd64 runs_on:ubuntu-24.04 tag:main]) (push) Has been cancelled
Publish Docker image / Push Docker image to Docker Hub (map[dockerfile:.devops/main.Dockerfile platform:linux/arm64 runs_on:ubuntu-24.04-arm tag:main-arm64]) (push) Has been cancelled
Mark inactive issues stale / mark-issues (push) Failing after 1s
81 lines
2.7 KiB
Python
81 lines
2.7 KiB
Python
import sys
|
|
import argparse
|
|
import textwrap
|
|
|
|
parser = argparse.ArgumentParser(add_help=False,
|
|
formatter_class=argparse.RawTextHelpFormatter)
|
|
parser.add_argument("-q", "--quick", action="store_true",
|
|
help="skip checking the required library")
|
|
|
|
modes = parser.add_argument_group("action")
|
|
modes.add_argument("inputfile", metavar="TEXTFILE",
|
|
nargs='?', type=argparse.FileType(), default=sys.stdin,
|
|
help="read the text file (default: stdin)")
|
|
modes.add_argument("-l", "--list", action="store_true",
|
|
help="show the list of voices and exit")
|
|
modes.add_argument("-h", "--help", action="help",
|
|
help="show this help and exit")
|
|
|
|
selopts = parser.add_argument_group("voice selection")
|
|
selmodes = selopts.add_mutually_exclusive_group()
|
|
selmodes.add_argument("-n", "--name",
|
|
default="Arnold",
|
|
help="get a voice object by name (default: Arnold)")
|
|
selmodes.add_argument("-v", "--voice", type=int, metavar="NUMBER",
|
|
help="get a voice object by number (see --list)")
|
|
selopts.add_argument("-f", "--filter", action="append", metavar="KEY=VAL",
|
|
default=["use case=narration"],
|
|
help=textwrap.dedent('''\
|
|
filter voices by labels (default: "use case=narration")
|
|
this option can be used multiple times
|
|
filtering will be disabled if the first -f has no "=" (e.g. -f "any")
|
|
'''))
|
|
|
|
outmodes = parser.add_argument_group("output")
|
|
outgroup = outmodes.add_mutually_exclusive_group()
|
|
outgroup.add_argument("-s", "--save", metavar="FILE",
|
|
default="audio.mp3",
|
|
help="save the TTS to a file (default: audio.mp3)")
|
|
outgroup.add_argument("-p", "--play", action="store_true",
|
|
help="play the TTS with ffplay")
|
|
|
|
args = parser.parse_args()
|
|
|
|
if not args.quick:
|
|
import importlib.util
|
|
if importlib.util.find_spec("elevenlabs") is None:
|
|
print("elevenlabs library is not installed, you can install it to your enviroment using 'pip install elevenlabs'")
|
|
sys.exit()
|
|
|
|
from elevenlabs import voices, generate, play, save
|
|
|
|
if args.filter and "=" in args.filter[0]:
|
|
voicelist = voices()
|
|
for f in args.filter:
|
|
label, value = f.split("=")
|
|
voicelist = filter(lambda x: x.labels.get(label) == value, voicelist)
|
|
voicelist = list(voicelist)
|
|
else:
|
|
voicelist = list(voices())
|
|
|
|
if args.list:
|
|
for i, v in enumerate(voicelist):
|
|
print(str(i) + ": " + v.name + " " + str(v.labels))
|
|
sys.exit()
|
|
|
|
if args.voice:
|
|
voice = voicelist[args.voice % len(voicelist)]
|
|
else:
|
|
voice = args.name
|
|
# if -n should consult -f, use the following
|
|
#voice = next(x for x in voicelist if x.name == args.name)
|
|
|
|
audio = generate(
|
|
text=str(args.inputfile.read()),
|
|
voice=voice
|
|
)
|
|
if args.play:
|
|
play(audio)
|
|
else:
|
|
save(audio, args.save)
|