mirror of
https://github.com/nextcloud/server.git
synced 2024-07-30 20:16:04 +02:00
ISpeechToTextProvider#transcribeFile: Pass \OCP\Files\File instead of path
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
This commit is contained in:
parent
1833d932ef
commit
ef7ce88cee
@ -31,6 +31,9 @@ namespace OC\SpeechToText;
|
||||
use InvalidArgumentException;
|
||||
use OC\AppFramework\Bootstrap\Coordinator;
|
||||
use OCP\BackgroundJob\IJobList;
|
||||
use OCP\Files\File;
|
||||
use OCP\Files\IRootFolder;
|
||||
use OCP\Files\NotFoundException;
|
||||
use OCP\IServerContainer;
|
||||
use OCP\PreConditionNotMetException;
|
||||
use OCP\SpeechToText\ISpeechToTextManager;
|
||||
@ -49,6 +52,7 @@ class SpeechToTextManager implements ISpeechToTextManager {
|
||||
private Coordinator $coordinator,
|
||||
private LoggerInterface $logger,
|
||||
private IJobList $jobList,
|
||||
private IRootFolder $rootFolder,
|
||||
) {
|
||||
}
|
||||
|
||||
@ -90,6 +94,14 @@ class SpeechToTextManager implements ISpeechToTextManager {
|
||||
if (!$this->hasProviders()) {
|
||||
throw new PreConditionNotMetException('No SpeechToText providers have been registered');
|
||||
}
|
||||
try {
|
||||
$node = $this->rootFolder->get($path);
|
||||
} catch (NotFoundException $e) {
|
||||
throw new InvalidArgumentException('File does not exist: ' . $path);
|
||||
}
|
||||
if (!($node instanceof File)) {
|
||||
throw new InvalidArgumentException('Path does not resolve to a file');
|
||||
}
|
||||
$this->jobList->add(TranscriptionJob::class, [ 'path' => $path, 'context' => $context]);
|
||||
}
|
||||
|
||||
@ -99,10 +111,14 @@ class SpeechToTextManager implements ISpeechToTextManager {
|
||||
throw new PreConditionNotMetException('No SpeechToText providers have been registered');
|
||||
}
|
||||
|
||||
if (!file_exists($path)) {
|
||||
throw new InvalidArgumentException('File does not exist');
|
||||
try {
|
||||
$node = $this->rootFolder->get($path);
|
||||
if (!($node instanceof File)) {
|
||||
throw new InvalidArgumentException('Path does not resolve to a file');
|
||||
}
|
||||
return $provider->transcribeFile($node);
|
||||
} catch (NotFoundException $e) {
|
||||
throw new InvalidArgumentException('File does not exist: ' . $path);
|
||||
}
|
||||
|
||||
return $provider->transcribeFile($path);
|
||||
}
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ interface ISpeechToTextManager {
|
||||
* Will schedule a transcription process in the background. The result will become available
|
||||
* with the \OCP\SpeechToText\Events\TranscriptionFinishedEvent
|
||||
* You should add context information to the context array to re-identify the transcription result as
|
||||
* as belonging to your transcription request.
|
||||
* belonging to your transcription request.
|
||||
*
|
||||
* @since 27.0.0
|
||||
* @throws PreConditionNotMetException If no provider was registered but this method was still called
|
||||
|
@ -26,6 +26,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace OCP\SpeechToText;
|
||||
|
||||
use OCP\Files\File;
|
||||
use RuntimeException;
|
||||
|
||||
/**
|
||||
@ -41,5 +42,5 @@ interface ISpeechToTextProvider {
|
||||
* @since 27.0.0
|
||||
* @throws RuntimeException If the text could not be transcribed
|
||||
*/
|
||||
public function transcribeFile(string $path): string;
|
||||
public function transcribeFile(File $file): string;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user