Wie implementiere ich "Speaker_wav" für "TTS-Server" (Coqui-AI) in einem JavaScript-API-AnrufJavaScript

Javascript-Forum
Anonymous
 Wie implementiere ich "Speaker_wav" für "TTS-Server" (Coqui-AI) in einem JavaScript-API-Anruf

Post by Anonymous »

Ich versuche, eine "Post" -Anfrage an die TTS-Server-API zu senden, die am Endpunkt gefunden wurde. "http: // localhost: 5002/api/tts". D.h. "tts_models/en/jenny/jenny". "http: // localhost: 5002/api/tts? text =" $ {customText} "". Was ich versucht habe, den Pfad für den Lautsprecher_wav zur Abfragezeichenfolge hinzuzufügen, aber es scheint nicht dort zu schauen. Das scheint auch nicht arbeiten zu wollen. Ich habe versucht, die Daten in ein Formdata -Objekt umzuwandeln. Hat auch nicht funktioniert. Und ich habe sogar versucht, den "Text" in der Abfragezeichenfolge mit "Speaker_wav" und "Language_idx" im Körper mit ihren Werten zu haben. Für das habe ich diese Zeile verwendet: < /p>

Code: Select all

tts --model_name tts_models/multilingual/multi-dataset/xtts_v2 --text "Testing, 1 2 3..." --speaker_wav "C:\Users\perso\Downloads\Phonetic Sentence\Converted\speaker.wav" --language_idx en

Was perfekt funktioniert hat, aber ich möchte den Spin -up von jedem dieser Anrufe entgehen, wo Sie den "Text" einbeziehen. In der App wird eine gute Menge dieser API -Anrufe ausgeführt, sodass die zusätzliche Spin -up -Zeit schnell ansteigen wird. Damit den Server auf "http: // localhost: 5002" ausgeführt werden. Dann würde das auch funktionieren. Hier ist meine aktuelle Fledermausdatei, mit der "TTS-Server" aufgerufen wird: < /p>

Code: Select all

set TORCH_FORCE_NO_WEIGHTS_ONLY_LOAD=1

echo TORCH_FORCE_NO_WEIGHTS_ONLY_LOAD=%TORCH_FORCE_NO_WEIGHTS_ONLY_LOAD%

"C:\Users\perso\miniconda3\envs\TTS\Scripts\tts-server.exe" --model_path "C:\Users\perso\AppData\Local\tts\tts_models--multilingual--multi-dataset--xtts_v2" --config_path "C:\Users\perso\AppData\Local\tts\tts_models--multilingual--multi-dataset--xtts_v2\config.json"
< /code>
Bitte stellen Sie gerne Fragen, wenn ich nicht genügend Informationen gegeben habe. Ich kann aufgrund der Art der App keine Einzelheiten anbieten. Aber ich werde versuchen, neu zu formulieren, um die bestmöglichen Informationen zu geben. < /P>
--- bearbeiten 1: ---@app.route("/api/tts", methods=["GET", "POST"])
def tts():
with lock:
text = request.headers.get("text") or request.values.get("text", "")
speaker_idx = request.headers.get("speaker-id") or request.values.get("speaker_id", "")
language_idx = request.headers.get("language-id") or request.values.get("language_id", "")
style_wav = request.headers.get("style-wav") or request.values.get("style_wav", "")
style_wav = style_wav_uri_to_dict(style_wav)

print(f" > Model input: {text}")
print(f" > Speaker Idx: {speaker_idx}")
print(f" > Language Idx: {language_idx}")
wavs = synthesizer.tts(text, speaker_name=speaker_idx, language_name=language_idx, style_wav=style_wav)
out = io.BytesIO()
synthesizer.save_wav(wavs, out)
return send_file(out, mimetype="audio/wav")
< /code>
Ich habe eine Bearbeitung ausprobiert und schien jedoch keinen Unterschied zu machen. < /p>
@app.route("/api/tts", methods=["GET", "POST"])
def tts():
with lock:
text = request.headers.get("text") or request.values.get("text", "")
speaker_idx = request.headers.get("speaker_idx") or request.values.get("speaker_idx", "")
speaker_wav = request.headers.get("speaker_wav") or request.values.get("speaker_wav", "")
language_idx = request.headers.get("language_idx") or request.values.get("language_idx", "")

print(f" > Text: {text}")
print(f" > Speaker Wav: {speaker_wav}")
print(f" > Language Idx: {language_idx}")

wavs = synthesizer.tts(text, speaker_name=speaker_idx, langauge_name=language_idx, style_wav=speaker_wav)
out = io.BytesIO()
synthesizer.save_wav(wavs, out)
return send_file(out, mimetype="audio/wav")

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post