Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d52ec158 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Revert^2 "speech: Allow long speech sessions""

parents 026309bf 5230f95d
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -39371,6 +39371,7 @@ package android.speech {
  public interface RecognitionListener {
    method public void onBeginningOfSpeech();
    method public void onBufferReceived(byte[]);
    method public default void onEndOfSegmentedSession();
    method public void onEndOfSpeech();
    method public void onError(int);
    method public void onEvent(int, android.os.Bundle);
@@ -39378,6 +39379,7 @@ package android.speech {
    method public void onReadyForSpeech(android.os.Bundle);
    method public void onResults(android.os.Bundle);
    method public void onRmsChanged(float);
    method public default void onSegmentResults(@NonNull android.os.Bundle);
  }
  public abstract class RecognitionService extends android.app.Service {
@@ -39395,6 +39397,7 @@ package android.speech {
  public class RecognitionService.Callback {
    method public void beginningOfSpeech() throws android.os.RemoteException;
    method public void bufferReceived(byte[]) throws android.os.RemoteException;
    method public void endOfSegmentedSession() throws android.os.RemoteException;
    method public void endOfSpeech() throws android.os.RemoteException;
    method public void error(int) throws android.os.RemoteException;
    method @NonNull public android.content.AttributionSource getCallingAttributionSource();
@@ -39403,6 +39406,7 @@ package android.speech {
    method public void readyForSpeech(android.os.Bundle) throws android.os.RemoteException;
    method public void results(android.os.Bundle) throws android.os.RemoteException;
    method public void rmsChanged(float) throws android.os.RemoteException;
    method public void segmentResults(@NonNull android.os.Bundle) throws android.os.RemoteException;
  }
  public static class RecognitionService.SupportCallback {
@@ -39458,6 +39462,7 @@ package android.speech {
    field public static final String EXTRA_RESULTS_PENDINGINTENT = "android.speech.extra.RESULTS_PENDINGINTENT";
    field public static final String EXTRA_RESULTS_PENDINGINTENT_BUNDLE = "android.speech.extra.RESULTS_PENDINGINTENT_BUNDLE";
    field public static final String EXTRA_SECURE = "android.speech.extras.EXTRA_SECURE";
    field public static final String EXTRA_SEGMENT_SESSION = "android.speech.extra.SEGMENT_SESSION";
    field public static final String EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS = "android.speech.extras.SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS";
    field public static final String EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS = "android.speech.extras.SPEECH_INPUT_MINIMUM_LENGTH_MILLIS";
    field public static final String EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS = "android.speech.extras.SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS";
+18 −0
Original line number Diff line number Diff line
@@ -77,6 +77,24 @@ oneway interface IRecognitionListener {
     */
    void onPartialResults(in Bundle results);

    /**
     * Called for each ready segment of a recognition request. To request segmented speech results
     * use {@link RecognizerIntent#EXTRA_SEGMENT_SESSION}. The callback might be called
     * any number of times between {@link #onBeginningOfSpeech()} and
     * {@link #onEndOfSegmentedSession()}.
     *
     * @param segmentResults the returned results. To retrieve the results in
     *        ArrayList<String> format use {@link Bundle#getStringArrayList(String)} with
     *        {@link SpeechRecognizer#RESULTS_RECOGNITION} as a parameter
    */
    void onSegmentResults(in Bundle results);

    /**
     * Called at the end of a segmented recognition request. To request segmented speech results
     * use {@link RecognizerIntent#EXTRA_SEGMENT_SESSION}.
     */
    void onEndOfSegmentedSession();

    /**
     * Reserved for adding future events.
     *
+26 −1
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
 */
package android.speech;

import android.annotation.NonNull;
import android.content.Intent;
import android.os.Bundle;

@@ -70,6 +71,12 @@ public interface RecognitionListener {
    /**
     * Called when recognition results are ready.
     *
     * <p>
     *     Called with the results for the full speech since {@link #onReadyForSpeech(Bundle)}.
     *     To get recognition results in segments rather than for the full session see
     *     {@link RecognizerIntent#EXTRA_SEGMENT_SESSION}.
     * </p>
     *
     * @param results the recognition results. To retrieve the results in {@code
     *        ArrayList<String>} format use {@link Bundle#getStringArrayList(String)} with
     *        {@link SpeechRecognizer#RESULTS_RECOGNITION} as a parameter. A float array of
@@ -91,6 +98,24 @@ public interface RecognitionListener {
     */
    void onPartialResults(Bundle partialResults);

    /**
     * Called for each ready segment of a recognition request. To request segmented speech results
     * use {@link RecognizerIntent#EXTRA_SEGMENT_SESSION}. The callback might be called
     * any number of times between {@link #onReadyForSpeech(Bundle)} and
     * {@link #onEndOfSegmentedSession()}.
     *
     * @param segmentResults the returned results. To retrieve the results in
     *        ArrayList&lt;String&gt; format use {@link Bundle#getStringArrayList(String)} with
     *        {@link SpeechRecognizer#RESULTS_RECOGNITION} as a parameter
     */
    default void onSegmentResults(@NonNull Bundle segmentResults) {}

    /**
     * Called at the end of a segmented recognition request. To request segmented speech results
     * use {@link RecognizerIntent#EXTRA_SEGMENT_SESSION}.
     */
    default void onEndOfSegmentedSession() {}

    /**
     * Reserved for adding future events.
     * 
+21 −0
Original line number Diff line number Diff line
@@ -426,6 +426,27 @@ public abstract class RecognitionService extends Service {
            mListener.onRmsChanged(rmsdB);
        }

        /**
         * The service should call this method for each ready segment of a long recognition session.
         *
         * @param results the recognition results. To retrieve the results in {@code
         *        ArrayList<String>} format use {@link Bundle#getStringArrayList(String)} with
         *        {@link SpeechRecognizer#RESULTS_RECOGNITION} as a parameter
         */
        @SuppressLint({"CallbackMethodName", "RethrowRemoteException"})
        public void segmentResults(@NonNull Bundle results) throws RemoteException {
            mListener.onSegmentResults(results);
        }

        /**
         * The service should call this method to end a segmented session.
         */
        @SuppressLint({"CallbackMethodName", "RethrowRemoteException"})
        public void endOfSegmentedSession() throws RemoteException {
            Message.obtain(mHandler, MSG_RESET).sendToTarget();
            mListener.onEndOfSegmentedSession();
        }

        /**
         * Return the Linux uid assigned to the process that sent you the current transaction that
         * is being processed. This is obtained from {@link Binder#getCallingUid()}.
+12 −0
Original line number Diff line number Diff line
@@ -426,4 +426,16 @@ public class RecognizerIntent {
     *
     */
    public static final String EXTRA_PREFER_OFFLINE = "android.speech.extra.PREFER_OFFLINE";

    /**
     * Optional boolean, when true and supported by the recognizer implementation it will split
     * the recognition results in segments, returned via
     * {@link RecognitionListener#onSegmentResults(Bundle)} and terminate the session with
     * {@link RecognitionListener#onEndOfSegmentedSession()}. There will be no call to
     * {@link RecognitionListener#onResults(Bundle)}. Callers can use
     * {@link #EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS} and
     * {@link #EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS} to tune how long the segments
     * will be. Defaults to false.
     */
    public static final String EXTRA_SEGMENT_SESSION = "android.speech.extra.SEGMENT_SESSION";
}
Loading