speech_recognition_client.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Copyright 2020 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef MEDIA_BASE_SPEECH_RECOGNITION_CLIENT_H_
  5. #define MEDIA_BASE_SPEECH_RECOGNITION_CLIENT_H_
  6. #include <memory>
  7. #include "base/callback.h"
  8. #include "media/base/audio_buffer.h"
  9. #include "media/base/audio_bus.h"
  10. #include "media/base/media_export.h"
  11. namespace media {
  12. // The interface for the speech recognition client used to transcribe audio into
  13. // captions.
  14. class MEDIA_EXPORT SpeechRecognitionClient {
  15. public:
  16. using OnReadyCallback = base::OnceCallback<void()>;
  17. virtual ~SpeechRecognitionClient() = default;
  18. virtual void AddAudio(scoped_refptr<AudioBuffer> buffer) = 0;
  19. virtual void AddAudio(std::unique_ptr<media::AudioBus> audio_bus,
  20. int sample_rate,
  21. media::ChannelLayout channel_layout) = 0;
  22. virtual bool IsSpeechRecognitionAvailable() = 0;
  23. virtual void SetOnReadyCallback(OnReadyCallback callback) = 0;
  24. };
  25. } // namespace media
  26. #endif // MEDIA_BASE_SPEECH_RECOGNITION_CLIENT_H_