Add UpdateRecognitionContext() to SpeechRecognitionRecognizer mojom
In this way other classes can call the function from the interface. Make SpeechRecognitionRecognizerImpl override the function from the interface instead too. The UpdateRecognitionContext() function is added under [MinVersion=8] because SpeechRecognitionRecognitionContext inside SpeechRecognitionOptions was added recently under the same version. Bug: 388626991 Change-Id: Ie62e282eeb14cc0054a5005daba69a1e1d24a00f Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6170783 Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Evan Liu <evliu@google.com> Commit-Queue: Yiren Wang <yrw@chromium.org> Cr-Commit-Position: refs/heads/main@{#1409394}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
52e714b046
commit
a7906efbd7
chrome
browser
speech
services
content/browser/speech
media/mojo/mojom
@ -41,6 +41,9 @@ class FakeSpeechRecognizer : public media::mojom::AudioSourceFetcher,
|
||||
void OnLanguageChanged(const std::string& language) override {}
|
||||
void OnMaskOffensiveWordsChanged(bool mask_offensive_words) override {}
|
||||
void MarkDone() override;
|
||||
void UpdateRecognitionContext(
|
||||
const media::SpeechRecognitionRecognitionContext& recognition_context)
|
||||
override {}
|
||||
|
||||
// media::mojom::AudioSourceFetcher:
|
||||
void Start(
|
||||
|
@ -64,6 +64,9 @@ class SodaSpeechRecognizerImplTest
|
||||
void OnLanguageChanged(const std::string& language) override {}
|
||||
void OnMaskOffensiveWordsChanged(bool mask_offensive_words) override {}
|
||||
void MarkDone() override {}
|
||||
void UpdateRecognitionContext(
|
||||
const media::SpeechRecognitionRecognitionContext& recognition_context)
|
||||
override {}
|
||||
|
||||
// media::mojom::SpeechRecognitionSessionClient implementation.
|
||||
void ResultRetrieved(std::vector<media::mojom::WebSpeechRecognitionResultPtr>
|
||||
|
@ -351,11 +351,11 @@ void SpeechRecognitionRecognizerImpl::MarkDone() {
|
||||
}
|
||||
|
||||
void SpeechRecognitionRecognizerImpl::UpdateRecognitionContext(
|
||||
media::mojom::SpeechRecognitionRecognitionContextPtr recognition_context) {
|
||||
const media::SpeechRecognitionRecognitionContext& recognition_context) {
|
||||
soda::chrome::RecognitionContext context;
|
||||
auto* context_input = context.add_context();
|
||||
context_input->set_name(kContextInputName);
|
||||
for (const auto& phrase : recognition_context->phrases) {
|
||||
for (const auto& phrase : recognition_context.phrases) {
|
||||
auto* p = context_input->mutable_phrases()->add_phrase();
|
||||
p->set_phrase(phrase.phrase);
|
||||
p->set_boost(phrase.boost);
|
||||
|
@ -103,7 +103,8 @@ class SpeechRecognitionRecognizerImpl
|
||||
void MarkDone() override;
|
||||
|
||||
void UpdateRecognitionContext(
|
||||
media::mojom::SpeechRecognitionRecognitionContextPtr recognition_context);
|
||||
const media::SpeechRecognitionRecognitionContext& recognition_context)
|
||||
final;
|
||||
|
||||
// AudioSourceConsumer:
|
||||
void AddAudio(media::mojom::AudioDataS16Ptr buffer) override;
|
||||
|
@ -96,7 +96,7 @@ TEST_F(SpeechRecognitionRecognizerImplTest, OnLanguagePackInstalledTest) {
|
||||
TEST_F(SpeechRecognitionRecognizerImplTest,
|
||||
SpeechRecognitionRecognitionContextTest) {
|
||||
std::vector<media::SpeechRecognitionPhrase> phrases;
|
||||
phrases.push_back(media::SpeechRecognitionPhrase("test phrase", 2.0));
|
||||
phrases.emplace_back("test phrase", 2.0);
|
||||
|
||||
auto recognizer = CreateRecognizer(
|
||||
CreateOptions(media::SpeechRecognitionRecognitionContext(phrases)));
|
||||
@ -121,11 +121,10 @@ TEST_F(SpeechRecognitionRecognizerImplTest, UpdateRecognitionContextTest) {
|
||||
auto* soda_client_ptr = soda_client.get();
|
||||
recognizer->SetSodaClientForTesting(std::move(soda_client));
|
||||
|
||||
media::mojom::SpeechRecognitionRecognitionContextPtr context =
|
||||
media::mojom::SpeechRecognitionRecognitionContext::New();
|
||||
context->phrases.emplace_back("test phrase", 2.0);
|
||||
media::SpeechRecognitionRecognitionContext context;
|
||||
context.phrases.emplace_back("test phrase", 2.0);
|
||||
EXPECT_CALL(*soda_client_ptr, UpdateRecognitionContext(_));
|
||||
recognizer->UpdateRecognitionContext(std::move(context));
|
||||
recognizer->UpdateRecognitionContext(context);
|
||||
}
|
||||
|
||||
} // namespace speech
|
||||
|
@ -92,6 +92,11 @@ class MockOnDeviceWebSpeechRecognitionService
|
||||
(override));
|
||||
MOCK_METHOD(void, OnLanguageChanged, (const std::string& lang), (override));
|
||||
MOCK_METHOD(void, OnMaskOffensiveWordsChanged, (bool changed), (override));
|
||||
MOCK_METHOD(
|
||||
void,
|
||||
UpdateRecognitionContext,
|
||||
(const media::SpeechRecognitionRecognitionContext& recognition_context),
|
||||
(override));
|
||||
void MarkDone() override;
|
||||
|
||||
// Methods for testing plumbing to SpeechRecognitionRecognizerClient.
|
||||
|
@ -88,6 +88,11 @@ interface SpeechRecognitionRecognizer {
|
||||
// setting has changed.
|
||||
[MinVersion=2]
|
||||
OnMaskOffensiveWordsChanged@3(bool mask_offensive_words);
|
||||
|
||||
// Notify the speech recognition recognizer to update the recognition context.
|
||||
[MinVersion=8]
|
||||
UpdateRecognitionContext@4(
|
||||
SpeechRecognitionRecognitionContext recognition_context);
|
||||
};
|
||||
|
||||
// The interface used to return speech recognition events from the speech
|
||||
|
Reference in New Issue
Block a user