Skip to content

Commit 4924857

Browse files
authored
Merge pull request #738 from ftnext/test-whisper-api
[test] Add tests for recognize_whisper_api
2 parents c028409 + 3258e25 commit 4924857

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

.github/workflows/unittests.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ jobs:
3232
run: |
3333
python -m pip install 'pocketsphinx<5'
3434
python -m pip install git+https://github.com/openai/whisper.git soundfile
35+
python -m pip install openai
3536
python -m pip install .
3637
- name: Test with unittest
3738
run: |

tests/recognizers/test_whisper.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
from unittest import TestCase
2+
from unittest.mock import MagicMock, patch
3+
4+
from speech_recognition import AudioData, Recognizer
5+
from speech_recognition.recognizers import whisper
6+
7+
8+
@patch("speech_recognition.recognizers.whisper.os.environ")
9+
@patch("speech_recognition.recognizers.whisper.BytesIO")
10+
@patch("openai.OpenAI")
11+
class RecognizeWhisperApiTestCase(TestCase):
12+
def test_recognize_default_arguments(self, OpenAI, BytesIO, environ):
13+
client = OpenAI.return_value
14+
transcript = client.audio.transcriptions.create.return_value
15+
16+
recognizer = MagicMock(spec=Recognizer)
17+
audio_data = MagicMock(spec=AudioData)
18+
19+
actual = whisper.recognize_whisper_api(recognizer, audio_data)
20+
21+
self.assertEqual(actual, transcript.text)
22+
audio_data.get_wav_data.assert_called_once_with()
23+
BytesIO.assert_called_once_with(audio_data.get_wav_data.return_value)
24+
OpenAI.assert_called_once_with(api_key=None)
25+
client.audio.transcriptions.create.assert_called_once_with(
26+
file=BytesIO.return_value, model="whisper-1"
27+
)
28+
29+
def test_recognize_pass_arguments(self, OpenAI, BytesIO, environ):
30+
client = OpenAI.return_value
31+
32+
recognizer = MagicMock(spec=Recognizer)
33+
audio_data = MagicMock(spec=AudioData)
34+
35+
actual = whisper.recognize_whisper_api(
36+
recognizer, audio_data, model="x-whisper", api_key="OPENAI_API_KEY"
37+
)
38+
39+
OpenAI.assert_called_once_with(api_key="OPENAI_API_KEY")
40+
client.audio.transcriptions.create.assert_called_once_with(
41+
file=BytesIO.return_value, model="x-whisper"
42+
)

0 commit comments

Comments
 (0)