Persian-tts-coqui icon indicating copy to clipboard operation
Persian-tts-coqui copied to clipboard

مشکل در ایجاد کد پایتون تی تی اس TTS

Open sina-1384hatefesabegh opened this issue 11 months ago • 20 comments

ببینید من یک مدل 300 مگابایتی دارم که اصلا به درد نمیخوره اصلا متن فارسی رو پردازش نمیکنه فقط اعداد فارسی رو میخونه , و متن انگلیسی رو هم انگار که داره خفه میشه کاری ندارم

یک مدل 1 گیگابایتی دارم که اونم اصلا همش ارور میده در خروجی from TTS.config import load_config from TTS.utils.manage import ModelManager from TTS.utils.synthesizer import Synthesizer basepath="C:\Users\computer\Desktop\Persian_TTS_models\1_73_GB" config=basepath+"\config.json" model=basepath+"\model" model_path =model # Absolute path to the model checkpoint.pth config_path =config # Absolute path to the model config.json text=".زندگی فقط یک بار است؛ از آن به خوبی استفاده کن" synthesizer = Synthesizer(model_path, config_path) wavs = synthesizer.tts(text) synthesizer.save_wav(wavs, 'C:\Users\computer\Desktop\output.wav')

علت اینکه در متغییر مدل من فقط نوشم مدل اینه که یک پوشه ای به نام مدل هست که خودش model.pth رو در اون پیدا میکنه و همش میگه یک زبان انتخاب کن و زبان رو که وارد میکنم باز یک ارور دیگه میده که نباید زبان وارد کنی خروجی:

Text splitted to sentences. ['.زندگی فقط یک بار است؛ از آن به خوبی استفاده کن'] Traceback (most recent call last): File "C:\Users\computer\Desktop\Persian_TTS_models\TTS\vid1.py", line 72, in wavs = synthesizer.tts(text) File "C:\Program Files\Python310\lib\TTS\utils\synthesizer.py", line 378, in tts outputs = self.tts_model.synthesize( File "C:\Program Files\Python310\lib\TTS\tts\models\xtts.py", line 392, in synthesize return self.inference_with_config(text, config, ref_audio_path=speaker_wav, language=language, **kwargs) File "C:\Program Files\Python310\lib\TTS\tts\models\xtts.py", line 399, in inference_with_config "zh-cn" if language == "zh" else language in self.config.languages AssertionError: ❗ Language is not supported. Supported languages are ['en', 'es', 'fr', 'de', 'it', 'pt', 'pl', 'tr', 'ru', 'nl', 'cs', 'ar', 'zh-cn', 'hu', 'ko', 'ja', 'hi']

sina-1384hatefesabegh avatar Mar 03 '24 07:03 sina-1384hatefesabegh

سلام @sina-1384hatefesabegh

  • لطفاً config.json رو همینجا بفرست تا بررسی کنم
  • اگه مدل ها رو هم بفرستی که بتونم امتحان کنم خیلی خوب میشه

karim23657 avatar Mar 03 '24 12:03 karim23657

سلام بله حتما اما مشکلم رفع شد این مدل بدی اش اینه که متن رو باید به انگلیسی وارد کنی اما به صورت فارسی یعنی بجای این ورودی : "سلام امید وارم خوب باشید" با ید اینطور وارد کنی : "salam omidvaram khoob bashid" اصلا ارزش نداره به نظرم !!! من کلا سه تا مدل دارم یکی 1GB یکی دیگه 900MB و آخری 370MB هست که یک گیگه اصلا کار نمیکنه و همش ارور میده اما اون دوتای دیگه هم که بد کار میکنن:

حالا من اینترنت زیاد ندارم لینک دانلود رو برات میفرستم صدای زن: https://aimodels.org/ai-models/text-to-speech-synthesis/persian-female-tts-model-glow-tts-encoding-trained-on-custom-dataset-at-24000hz/

صدای مرد : https://huggingface.co/Kamtera/persian-tts-male1-vits/resolve/main/checkpoint_88000

و این مدل ها رو با فایل جیسون دانلود کن و بذار در یک دایرکتوری و کد زیر رو بنویس: from TTS.utils.synthesizer import Synthesizer def TTS_mard(matn) : model_path = "C:\Users\آدرس دایرکتوری آزاد\checkpoint_88000.pth" #### مرد config_path = "C:\Users\آدرس دایرکتوری آزاد\config.json" synthesizer = Synthesizer(model_path, config_path) wavs = synthesizer.tts(matn, language_name = "fa") synthesizer.save_wav(wavs, 'C:\Users\computer\Desktop\مرد.wav') def TTS_zan(matn) : model_path = "C:\Users\آدرس دایرکتوری آزاد\model_file.pth" #### زن config_path = "C:\Users\آدرس دایرکتوری آزاد\config.json" synthesizer = Synthesizer(model_path, config_path) wavs = synthesizer.tts(matn, language_name = "fa") synthesizer.save_wav(wavs, 'C:\Users\computer\Desktop\زن.wav') text = str(input("لطفا متن خود را وارد کنید : ")) TTS_mard(text) TTS_zan(text)

sina-1384hatefesabegh avatar Mar 27 '24 11:03 sina-1384hatefesabegh

‏ @sina-1384hatefesabegh ، مدل ها مشکلی نداره کنسول یا cmd شما از متن یونیکد پشتیبانی نمیکنه باید متن رو unicode escape کنی بعد در فانکشن tts قرار بدی یا کد زیر

text = ".زندگی فقط یک بار است؛ از آن به خوبی استفاده کن"
text = text.encode('unicode-escape').decode("utf-8") 

karim23657 avatar Mar 27 '24 15:03 karim23657

ارور میده: text = ".زندگی فقط یک بار است؛ از آن به خوبی استفاده کن" text = text.encode('unicode-escape').decode("utf-8") model_path = "C:\Users\computer\Desktop\Persian_TTS_models\951 MB\checkpoint_88000.pth" #### مرد config_path = "C:\Users\computer\Desktop\Persian_TTS_models\951 MB\config.json" synthesizer = Synthesizer(model_path, config_path) wavs = synthesizer.tts(text, language_name="fa") synthesizer.save_wav(wavs, 'C:\Users\computer\Desktop\مرد.wav')

در ضمن من از سایت : https://www.kaggle.com/datasets/magnoliasis/persian-tts-dataset-male یک فایل زیپ با حجم 4.7 گیگابایت به اسم persian-tts-dataset-male دانلود کردم و فایل فشرده شده رو اکسترکت کردم و درونش چیز های زیر بود: یک پوشه به نام subs: که درونش 16000 فایل با فرمت .vtt هست و یک پوشه دیگه کنار پوشه قبلی به نام wavs : که درونش 16001 فایل با فرمت .wav که به نظر میاد داده های صوتی اند و کنار دو پوشه قبلی یک فایل 3.5 مگابایتی به نام metadata.csv هست من با این ها چطور میتونم در پایتون تبدیل متن به گفتار فارسی بسازم؟کلا data set های فارسی هستن اینم راهنماییم کنید ممنون میشم

sina-1384hatefesabegh avatar Mar 28 '24 10:03 sina-1384hatefesabegh

ارور رو رفع کردم اما فایل صوتی خروجی خیلی بد و در هم برهم بود انگار صداش میلرزه

text = ".زندگی فقط یک بار است؛ از آن به خوبی استفاده کن" text = text.encode('unicode-escape').decode("utf-8") model_path = "C:\Users\computer\...\Persian_TTS_models\951 MB\checkpoint_88000.pth" #### مرد config_path = "C:\Users\computer\...\

Uploading Untitled Project.mp4…

951 MB\config.json" synthesizer = Synthesizer(model_path, config_path) wavs = synthesizer.tts(text, language_name="fa") synthesizer.save_wav(wavs, 'C:\Users\computer\Desktop\مرد.wav')

sina-1384hatefesabegh avatar Mar 28 '24 10:03 sina-1384hatefesabegh

Uploading Untitled Project.mp4…

sina-1384hatefesabegh avatar Mar 28 '24 10:03 sina-1384hatefesabegh

کلا چیز های بیربطی میگه مثل: ادددتدادااداداایادیااادا

sina-1384hatefesabegh avatar Mar 28 '24 10:03 sina-1384hatefesabegh

‏ @sina-1384hatefesabegh , هیچکدوم از فایل های صوتیت بارگذاری نشده

Uploading Untitled Project.mp4…

شاید espeak رو توی کامپیوترت نصب نکردی، ببین همین کد رو داره توی https://huggingface.co/spaces/Kamtera/Persian-tts-CoquiTTS اجرا میشه و خروجی صداش هم با کیفیته توی کولب هم میتونی امتحانش کنی: test-vits-models.ipynb Open In Colab

پیشنهاد میکنم یه issue هم توی https://github.com/coqui-ai/TTS بزنی

برای آموزش دادن مدل جدید نمونه کد ها و نوت بوک ها در پوشه recepies موجود هستند پیشنهاد میکنم این مخزن رو هم ببینی: https://github.com/karim23657/awesome-Persian-Speech

karim23657 avatar Mar 29 '24 08:03 karim23657

الان یعنی اگه من در سیستمم espeak رو نصب کنم میتونه مثل https://huggingface.co/spaces/Kamtera/Persian-tts-CoquiTTS قشنگ بخونه و در ضمن مدلش با من فرق داره

sina-1384hatefesabegh avatar Mar 31 '24 07:03 sina-1384hatefesabegh

مورد بعد اینکه من چطور مدل vits male(best رو دانلود کنم؟) چون من یک دیتا ست 5 گیگ از صدای مرد دارم [https://www.kaggle.com/datasets/magnoliasis/persian-tts-dataset-male](https://www.kaggle.com/datasets/magnoliasis/%5Bpersian-tts-dataset-male%5D(https://www.kaggle.com/datasets/magnoliasis/persian-tts-dataset-male))

sina-1384hatefesabegh avatar Mar 31 '24 08:03 sina-1384hatefesabegh

داداش من میتونم اصلا تلگرام یا دیگر فضا های مجازی تو رو داشته باشم تا در اونجا ازت راهنمایی بگیرم خیلی ممنون میشم

sina-1384hatefesabegh avatar Mar 31 '24 08:03 sina-1384hatefesabegh

من یک espeak نصب کردم در سیستمم یک نرم افزار هست با آیکون لبخند اسمش هست APPTTS از این لینک : https://sourceforge.net/projects/espeak/postdownload اما کار نمیکنه پس از این لینک دانلود کردم: https://download.cnet.com/espeak/3000-33660_4-75886780.html که این کار میکنه اما مدل صدای فارسی اش خیلی ربات وار هست یعنی فارسی رو مثل ربات صحبت میکنه

sina-1384hatefesabegh avatar Mar 31 '24 08:03 sina-1384hatefesabegh

خب من طبق این لینک شما :https://github.com/karim23657/Persian-tts-coqui/blob/main/recepies/vits/test-vits-models.ipynb تست کردم با کد زیر: from TTS.utils.synthesizer import Synthesizer

model_path = "C:\Users\computer\Desktop\.......model path .......\best_model_female.pth" config_path = "C:\Users\computer\Desktop\.......config path .......\config.json"

synthesizer = Synthesizer(model_path, config_path) wavs = synthesizer.tts("سلام دنیا", language_name="fa") synthesizer.save_wav(wavs, 'C:\Users\computer\Desktop\زن.wav')

اما مشکل روال عادی متن فارسی رو نمیخونه یک فایل صدای خالی میده اما متن انگلیسی رو میخونه

حالا با کد زیر :

from TTS.config import load_config from TTS.utils.manage import ModelManager from TTS.utils.synthesizer import Synthesizer import IPython

model_path = "C:\Users\computer\Desktop.......model path .......\best_model_female.pth" config_path = "C:\Users\computer\Desktop.......config path .......\config.json"

synthesizer = Synthesizer( model_path, config_path,

)

text= "\u062F\u0631 \u0631\u0648\u0627\u06CC\u062A \u0628\u062E\u0648\u0631 \u062D\u0636\u0631\u062A \u0645\u0631\u06CC\u0645 (\u0639) \u0622\u0645\u062F\u0647" #@param {type:"string"}

wavs = synthesizer.tts(text) synthesizer.save_wav(wavs, 'C:\Users\computer\Desktop\زن.wav') IPython.display.Audio('C:\Users\computer\Desktop\زن2.wav')

طبق این کد بالا ارور زیر رو میده:

Processing time: 0.496671199798584
Real-time factor: 0.7496987921384705
Traceback (most recent call last):
File "C:\Users\computer\Desktop\فایل های کاری\پروژه های شخصی\مباحث مشکلات\Persian_TTS_models\test.py", line 24, in
IPython.display.Audio('C:\Users\computer\Desktop\زن2.wav')
File "C:\Users\computer\PycharmProjects\pythonProject1\venv\lib\site-packages\IPython\lib\display.py", line 129, in init
raise ValueError("rate must be specified when data is a numpy array or list of audio samples.")
ValueError: rate must be specified when data is a numpy array or list of audio samples.

sina-1384hatefesabegh avatar Mar 31 '24 09:03 sina-1384hatefesabegh

ممنون میشم کمکم کنید خیلی برام مهمه که درست بشه

sina-1384hatefesabegh avatar Mar 31 '24 09:03 sina-1384hatefesabegh

داداش من میتونم اصلا تلگرام یا دیگر فضا های مجازی تو رو داشته باشم تا در اونجا ازت راهنمایی بگیرم خیلی ممنون میشم

ایمیل بزنید تا بهتون بگم [email protected]

karim23657 avatar Mar 31 '24 13:03 karim23657

بله در ایمیل بهتون پیام فرستادم

sina-1384hatefesabegh avatar Apr 01 '24 12:04 sina-1384hatefesabegh

ادامه این مشکل را در اینجا پیگیری کنید: https://github.com/coqui-ai/TTS/discussions/3667

karim23657 avatar Apr 11 '24 07:04 karim23657

خیلی ممنونم اما کسی جوابی نفرستاده هنوز اما بازهم خیلی ممنون که پیگیری کردید

‫‪karim23657‬‏ @.***‬‏> در تاریخ پنجشنبه ۱۱ آوریل ۲۰۲۴ ساعت ۱۰:۳۹ نوشت:‬

ادامه این مشکل را در اینجا پیگیری کنید: coqui-ai/TTS#3667 https://github.com/coqui-ai/TTS/discussions/3667

— Reply to this email directly, view it on GitHub https://github.com/karim23657/Persian-tts-coqui/issues/36#issuecomment-2049056460, or unsubscribe https://github.com/notifications/unsubscribe-auth/BDMBELE3H7ZQHBY3BYBP4DDY4YZJJAVCNFSM6AAAAABEDXIOB2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBZGA2TMNBWGA . You are receiving this because you were mentioned.Message ID: @.***>

sina-1384hatefesabegh avatar May 02 '24 07:05 sina-1384hatefesabegh

منم این مشکل رو دارم ، کلا یا یه فایل صوتی خالی تولید میکنه یا اصلا حرف های الکی تولید میکنه. espeak-ng هم نصب کردم و کاملا درست توی ترمینال با کامند espeak-ng باهاش کار میکنم.

FaryarKankash avatar Jul 21 '24 12:07 FaryarKankash

سلام خب منم اونو نصب دارم اما چطور با ترمینال اسپیک ان جی با اون مدل کار میکنی؟

‫‪Faryar Kankash‬‏ @.***‬‏> در تاریخ یکشنبه ۲۱ ژوئیه ۲۰۲۴ ساعت ۱۶:۲۸ نوشت:‬

منم این مشکل رو دارم ، کلا یا یه فایل صوتی خالی تولید میکنه یا اصلا حرف های الکی تولید میکنه. espeak-ng هم نصب کردم و کاملا درست توی ترمینال با کامند espeak-ng باهاش کار میکنم.

— Reply to this email directly, view it on GitHub https://github.com/karim23657/Persian-tts-coqui/issues/36#issuecomment-2241602287, or unsubscribe https://github.com/notifications/unsubscribe-auth/BDMBELBEDCENC4GTUVNRB6LZNOWAFAVCNFSM6AAAAABEDXIOB2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENBRGYYDEMRYG4 . You are receiving this because you were mentioned.Message ID: @.***>

sina-1384hatefesabegh avatar Aug 05 '24 15:08 sina-1384hatefesabegh