Skip to content

Commit ac30c6f

Browse files
committed
Make Whisper runnable during unit tests
1 parent 6dd8156 commit ac30c6f

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

lib/models/whisper/whisper_isolate.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@ class WhisperIsolateMessage {
1212
final SendPort replyPort;
1313
final String modelPath;
1414
final String? ortDylibPathOverride;
15+
final String? ortExtensionsDylibPathOverride;
1516
final List<int> audioBytes;
1617

1718
WhisperIsolateMessage({
1819
required this.replyPort,
1920
required this.modelPath,
2021
required this.audioBytes,
2122
this.ortDylibPathOverride,
23+
this.ortExtensionsDylibPathOverride,
2224
});
2325
}
2426

@@ -36,6 +38,10 @@ void whisperIsolateEntryPoint(SendPort mainSendPort) {
3638
if (message.ortDylibPathOverride != null) {
3739
fonnxOrtDylibPathOverride = message.ortDylibPathOverride;
3840
}
41+
if (message.ortExtensionsDylibPathOverride != null) {
42+
fonnxOrtExtensionsDylibPathOverride =
43+
message.ortExtensionsDylibPathOverride;
44+
}
3945
// Lazily create the Ort session if it's not already done.
4046
ortSessionObjects ??=
4147
createOrtSession(message.modelPath, includeOnnxExtensionsOps: true);
@@ -109,6 +115,7 @@ class WhisperIsolateManager {
109115
String modelPath,
110116
List<int> audioBytes, {
111117
String? ortDylibPathOverride,
118+
String? ortExtensionsDylibPathOverride,
112119
}) async {
113120
await start();
114121
final response = ReceivePort();
@@ -117,6 +124,7 @@ class WhisperIsolateManager {
117124
modelPath: modelPath,
118125
audioBytes: audioBytes,
119126
ortDylibPathOverride: ortDylibPathOverride,
127+
ortExtensionsDylibPathOverride: ortExtensionsDylibPathOverride,
120128
);
121129

122130
_sendPort!.send(message);

lib/models/whisper/whisper_native.dart

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,12 @@ class WhisperNative implements Whisper {
2020
Future<String> doInference(List<int> bytes) async {
2121
await _whisperIsolateManager.start();
2222
if (!kIsWeb && Platform.environment['FLUTTER_TEST'] == 'true') {
23-
return _whisperIsolateManager.sendInference(modelPath, bytes);
23+
return _whisperIsolateManager.sendInference(
24+
modelPath,
25+
bytes,
26+
ortDylibPathOverride: fonnxOrtDylibPathOverride,
27+
ortExtensionsDylibPathOverride: fonnxOrtExtensionsDylibPathOverride,
28+
);
2429
}
2530

2631
switch (defaultTargetPlatform) {

0 commit comments

Comments
 (0)