Как оптимизировать сервер на python?

Люди, подскажите, как можно улучшить код, чтобы данные с сервера к клиенту предавались быстрее: Сервер:

import socket
from pickle import dumps
import torch

srv=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
srv.bind(('...', 99))
print('Working...')
srv.listen(100)

while True:
    try:
        client_socket, address=srv.accept()
        #ПОЛУЧАЕМ ТЕКСТ
        text=client_socket.recv(1024).decode('utf-8')
        #РЕЧЬ: ПАРАМЕТРЫ
        device=torch.device('cpu')
        model, _=torch.hub.load(repo_or_dir='snakers4/silero-models',
                                model='silero_tts',
                                language='ru',
                                speaker='ru_v3')
        model.to(device)
        #РЕЧЬ: СИНТЕЗ
        audio = model.apply_tts(text=text,
                                speaker='baya',
                                sample_rate=48000,
                                put_accent=True,
                                put_yo=True)
        #ПОДГОТОВКА К ОТПРАВКЕ
        audio=dumps(audio)
        #ОТПРАВКА РАЗМЕРА АУДИО
        client_socket.sendall(bytes(str(len(audio)), 'utf-8'))
        #РАЗДЕЛЕНИЕ ОТПРАВОК
        client_socket.recv(20)
        #ОТПРАВКА АУДИО
        client_socket.sendall(audio)
        client_socket.close()
    except:
        pass

Клиент:

import socket
from sounddevice import play, stop
from pickle import loads
from time import sleep

while True:
    text=input('Enter text with a maximum of 700 characters(russians):')
    client=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client.settimeout(10)
    client.connect(('...', 99))
    #ОТПРАВЛЯЕМ ТЕКСТ
    client.sendall(bytes(text, 'utf-8'))
    #ПОЛУЧАЕМ РАЗМЕР АУДИО
    size=int(client.recv(1024).decode('utf-8'))
    #РАЗДЕЛЕНИЕ ПОЛУЧЕНИЙ
    client.sendall(bytes('-', 'utf-8'))
    #ПОЛУЧАЕМ АУДИО
    print(f'----{size}')
    received_data = b''
    while len(received_data)<size:
        data = client.recv(10000)
        received_data += data
    print(f'----{len(received_data)}')
    #ПОДГОТОВКА К ВОСПРОИЗВЕДЕНИЮ(получаем то аудио, котрое было до преобразования функцией dumps(на сервере- подготовка к отправке))
    audio=loads(received_data)
    #ВОСПРОИЗВОДИМ
    play(audio, 50000)
    #ЖДЕМ
    sleep(len(audio)/50000)

Ответы (0 шт):