Run some automatic tests with GitHub Actions (#68)
This commit is contained in:
31
tests/conftest.py
Normal file
31
tests/conftest.py
Normal file
@@ -0,0 +1,31 @@
|
||||
import os
|
||||
|
||||
import ctranslate2
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def data_dir():
|
||||
return os.path.join(os.path.dirname(os.path.abspath(__file__)), "data")
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def jfk_path(data_dir):
|
||||
return os.path.join(data_dir, "jfk.flac")
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def tiny_model_dir(tmp_path_factory):
|
||||
model_path = str(tmp_path_factory.mktemp("data") / "model")
|
||||
convert_model("tiny", model_path)
|
||||
return model_path
|
||||
|
||||
|
||||
def convert_model(size, output_dir):
|
||||
name = "openai/whisper-%s" % size
|
||||
|
||||
ctranslate2.converters.TransformersConverter(
|
||||
name,
|
||||
copy_files=["tokenizer.json"],
|
||||
load_as_float16=True,
|
||||
).convert(output_dir, quantization="float16")
|
||||
BIN
tests/data/jfk.flac
Normal file
BIN
tests/data/jfk.flac
Normal file
Binary file not shown.
25
tests/test.py
Normal file
25
tests/test.py
Normal file
@@ -0,0 +1,25 @@
|
||||
from faster_whisper import WhisperModel
|
||||
|
||||
|
||||
def test_transcribe(tiny_model_dir, jfk_path):
|
||||
model = WhisperModel(tiny_model_dir)
|
||||
segments, info = model.transcribe(jfk_path, word_timestamps=True)
|
||||
|
||||
assert info.language == "en"
|
||||
assert info.language_probability > 0.9
|
||||
assert info.duration == 11
|
||||
|
||||
segments = list(segments)
|
||||
|
||||
assert len(segments) == 1
|
||||
|
||||
segment = segments[0]
|
||||
|
||||
assert segment.text == (
|
||||
" And so my fellow Americans ask not what your country can do for you, "
|
||||
"ask what you can do for your country."
|
||||
)
|
||||
|
||||
assert segment.text == "".join(word.word for word in segment.words)
|
||||
assert segment.start == segment.words[0].start
|
||||
assert segment.end == segment.words[-1].end
|
||||
Reference in New Issue
Block a user