Как в библиотеке Python прочитать f-строку?
Пишу скрипт сравнения двух файлов с голосами. И вот какое дело. Сначала я для эксперимента непосредственно передаю в метод сравнения два файла:
score, prediction = verification.verify_files('/content/drive/MyDrive/speakers/spk7/spk_7_track_3.wav', '/content/drive/MyDrive/speakers/spk8/spk_8_track_1.wav')
На этом этапе всё хорошо: получаю ожидаемые ответы (сравнение происходит).
Но стоит лишь написать цикл прохода по файлам из разных папок, где использую f-строку для указания на сравниваемые файлы, как получаю ошибку (может свидетельствовать об ошибке в имени файла или пути к нему):
RuntimeError: Error loading audio file: failed to open file spk_1_track_3.wav
Структура такова, что в корневой директории speakers лежат папки spk1, spk2, spk3 и т.д., чьи файлы сравниваем (в каждой из папок - по 4 файла с голосами людей).
Что возможно исправить? Вот код:
# подход распознавания на основе ECAPA: сравниваем свои голоса
!pip install speechbrain
from speechbrain.pretrained import SpeakerRecognition
import os
from itertools import combinations
num_true=0
num_total=0
for root, dirs, files in os.walk('/content/drive/MyDrive/speakers'):
if not files:
continue
res = list(combinations(files, 2)) # получаем списки кортежей: [(файл 1, файл 2), (файл 1, файл 3)...(файл 3, файл 4)]
# print(res)
for tuples in res: # идем по каждому картежу в списке
verification = SpeakerRecognition.from_hparams(source="speechbrain/spkrec-ecapa-voxceleb", savedir="pretrained_models/spkrec-ecapa-voxceleb")
# print(f'{tuples[0]}', f'{tuples[1]}')
score, prediction = verification.verify_files(f'{tuples[0]}', f'{tuples[1]}')
num_total+=1
if prediction == tensor([True]):
num_true+=1
if num_total !=0:
accuracy = num_true/num_total
print(accuracy)
else:
print('На ноль делить нельзя')