Для начала - декомпозировать ошибки (например, где ошибается детектор, а где - собственно поиск по фичам), и дальше уже решать (докидывать данные, усложнять/переучивать модель и т.п.)
Первый torch (который на lua) - уже история, смотрите на pytorch. Но вообще в комментарии выше правильно сакцентрировали, что очень многое зависит от датасетов, а публичных датасетов узбекской речи, скорее всего, нет.
Читаете картинку (`cv2.imread(img_path)[:, :, ::-1]`, делаете аналогичный препроцессинг (посмотрите, что внутри `ImageDataGenerator`), загружаете модель (`keras.model.load_model`, кажется) и предсказываете (`model.predict(np.expand_dims(img, 0)`)
В большинстве задач смотреть в исходники, чтобы разобраться с основами - хорошая идея, но читать код tf для понимания нейросетей - это чересчур. Фреймворки такого уровня слишком оптимизированы, а оптимизации ведут к усложнению кода.
Кастомизировать можно довольно много, можно смело пользоваться. На каком-то этапе, возможно, самому захочется большей гибкости, и тогда придется или дописывать куски на tf, или уходить на pytorch.