|
|
import pytest |
|
|
from lib.utils import read_audio, save_csv |
|
|
from test_data.audios import read_emilia |
|
|
from environment import REPORTS_DIR |
|
|
|
|
|
@pytest.fixture(scope="module") |
|
|
def whisper(get_platform): |
|
|
if get_platform == "apple": |
|
|
from lib.models.mac.whisper import WhisperCPP |
|
|
return WhisperCPP() |
|
|
elif get_platform == "intel": |
|
|
from lib.models.intel.whisper import WhisperOv |
|
|
return WhisperOv() |
|
|
|
|
|
def test_whisper(whisper): |
|
|
|
|
|
report = [] |
|
|
for audio_file, text, duration in read_emilia(count_limit=20): |
|
|
print(audio_file) |
|
|
audio = read_audio(audio_file) |
|
|
asr_text, time_cost = whisper.transcribe(audio, "zh") |
|
|
report.append([audio_file,duration, text, asr_text, time_cost]) |
|
|
save_csv(REPORTS_DIR/"test_whisper.csv", ["audio", "duration", "ref", "asr", "time"], report) |
|
|
speed = [i[4] for i in report] |
|
|
print("Whisper average speed: ", sum(speed) / len(speed)) |