1616
1717import os
1818import random
19- import subprocess
2019from io import BytesIO
2120
2221from pyrogram import Client , enums , filters
2625 InputMediaUploadedDocument ,
2726)
2827from pyrogram .types import Message
29- from utils .scripts import format_exc , generate_waveform , import_library
3028
3129from utils import modules_help , prefix
30+ from utils .scripts import format_exc , generate_waveform , import_library
3231
32+ import_library ("miniaudio" )
3333gTTS = import_library ("gtts" ).gTTS
3434
35+
3536@Client .on_message (filters .command ("tts" , prefix ) & filters .me )
3637async def tts (client : Client , message : Message ):
3738 if message .reply_to_message :
@@ -52,19 +53,8 @@ async def tts(client: Client, message: Message):
5253
5354 voice = BytesIO (data )
5455 voice .name = "voice.ogg"
55- waveform = generate_waveform (data )
56-
57- cmd = [
58- "ffprobe" , "-v" , "error" , "-show_entries" ,
59- "format=duration" , "-of" , "default=noprint_wrappers=1:nokey=1" ,
60- "voice.ogg"
61- ]
62- process = subprocess .run (cmd , capture_output = True , text = True )
63-
64- try :
65- audio_duration = int (float (process .stdout .strip ()))
66- except (ValueError , TypeError ):
67- audio_duration = 0
56+
57+ waveform , audio_duration = await generate_waveform (data )
6858
6959 file = await client .save_file (voice )
7060
0 commit comments