From f846c36cbeccfe900ddf93764651c64adc3568e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Wo=C5=BAniak?= Date: Tue, 6 Jul 2021 15:31:38 +0200 Subject: [PATCH 01/65] Adding $HOME/.local/bin to PATH --- python/setup.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/python/setup.sh b/python/setup.sh index 896f420..96fbda1 100755 --- a/python/setup.sh +++ b/python/setup.sh @@ -73,6 +73,7 @@ then case $yn in [Yy]*) pip3 install virtualenv==16.2; + export PATH="$PATH:$HOME/.local/bin" break ;; [Nn]*) echo "Permission to install the required package has not been granted. Exiting..."; @@ -91,6 +92,7 @@ else case $yn in [Yy]*) pip3 install virtualenv==16.2; + export PATH="$PATH:$HOME/.local/bin" break ;; [Nn]*) echo "Permission to install the required package has not been granted. Exiting..."; From 63f8b6e8d88f19fd902296fa3c6da675ebf7dd29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Wo=C5=BAniak?= Date: Thu, 15 Jul 2021 09:22:30 +0200 Subject: [PATCH 02/65] Adding automatic-build mode to setup --- python/setup.sh | 97 +++++++++++++++++++------------------------------ 1 file changed, 37 insertions(+), 60 deletions(-) diff --git a/python/setup.sh b/python/setup.sh index 96fbda1..c4fed95 100755 --- a/python/setup.sh +++ b/python/setup.sh @@ -4,27 +4,44 @@ set -euo pipefail IFS=$'\n\t' +automatic_install_mode="false" + +if [[ "$1" == "-y" ]] +then + automatic_install_mode="true" +fi + install_package () { # $1 - package name # $2 - if == "sudo" use sudo if [ $(dpkg-query -W -f='${Status}' "$1" 2>/dev/null | grep -c "ok installed") -eq 0 ]; then - while true; do - read -p "The required package $1 is not installed. Do you want to install it now? [y/n]" yn - case $yn in - [Yy]*) - if [[ $# -eq 2 ]] && [[ $2 == "sudo" ]]; - then - sudo apt-get update && sudo apt-get install -y "$1"; - else - apt-get update && apt-get install -y "$1"; - fi; - break ;; - [Nn]*) - echo "Permission to install the required package has not been granted. Exiting..."; - exit 0 ;; - esac - done + if [[ "${automatic_install_mode}" == "true" ]] + then + if [[ $# -eq 2 ]] && [[ $2 == "sudo" ]]; + then + sudo apt-get update && sudo apt-get install -y "$1"; + else + apt-get update && apt-get install -y "$1"; + fi + else + while true; do + read -p "The required package $1 is not installed. Do you want to install it now? [y/n]" yn + case $yn in + [Yy]*) + if [[ $# -eq 2 ]] && [[ $2 == "sudo" ]]; + then + sudo apt-get update && sudo apt-get install -y "$1"; + else + apt-get update && apt-get install -y "$1"; + fi; + break ;; + [Nn]*) + echo "Permission to install the required package has not been granted. Exiting..."; + exit 0 ;; + esac + done + fi fi } @@ -60,50 +77,10 @@ install_package "python3-dev" "${sudo_str}" install_package "portaudio19-dev" "${sudo_str}" install_package "python3-pip" "${sudo_str}" -# check if virtualenv >= 16.2 is installed - -set +e -virtualenv_version=$(virtualenv --version) 2>&1 > /dev/null -virtualenv_is_installed=$? -set -e -if [ "$virtualenv_is_installed" -ne 0 ]; -then - while true; do - read -p "The required package virtualenv is not installed. Do you want to install it now? [y/n]" yn - case $yn in - [Yy]*) - pip3 install virtualenv==16.2; - export PATH="$PATH:$HOME/.local/bin" - break ;; - [Nn]*) - echo "Permission to install the required package has not been granted. Exiting..."; - exit 0 ;; - esac - done -else - # check virtualenv version - version=$(echo $virtualenv_version | cut -f1 -d.) - subversion=$(echo $virtualenv_version | cut -f2 -d.) - - if [[ "$version" -lt 16 || "$version" -eq 16 && "$subversion" -lt 2 ]]; - then - while true; do - read -p "Installed version of virtualenv package ($virtualenv_version) is too old. Do you want to install newer version now? [y/n]" yn - case $yn in - [Yy]*) - pip3 install virtualenv==16.2; - export PATH="$PATH:$HOME/.local/bin" - break ;; - [Nn]*) - echo "Permission to install the required package has not been granted. Exiting..."; - exit 0 ;; - esac - done - fi -fi - -virtualenv -p python3 .env +python3 -m venv .env source .env/bin/activate -pip install -r requirements.txt +pip3 install --upgrade pip +pip3 install wheel +pip3 install -r requirements.txt echo "Setup finished!" From de2aa031a9630b20d1b30349ee19d007b49db5c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Wo=C5=BAniak?= Date: Thu, 15 Jul 2021 09:25:01 +0200 Subject: [PATCH 03/65] Updaing docker build and usage --- Dockerfile-python | 23 -------------------- python/Dockerfile | 16 ++++++++++++++ python/README.md | 4 ++-- python/build_docker_image.sh | 19 ++++++++++++++++ python/docker/run_dictation_client_python.sh | 2 +- python/requirements.txt | 7 +++--- 6 files changed, 42 insertions(+), 29 deletions(-) delete mode 100644 Dockerfile-python create mode 100644 python/Dockerfile create mode 100755 python/build_docker_image.sh diff --git a/Dockerfile-python b/Dockerfile-python deleted file mode 100644 index 31e56e4..0000000 --- a/Dockerfile-python +++ /dev/null @@ -1,23 +0,0 @@ -FROM python:3.6-slim - -ARG DEBIAN_FRONTEND=noninteractive - -ADD ./python /dictation_client - -WORKDIR /dictation_client - -RUN apt-get update \ - && apt-get dist-upgrade -y \ - && apt-get install -y --no-install-recommends \ - alsa-tools alsa-utils \ - build-essential \ - portaudio19-dev \ - pulseaudio \ - python3-pip \ - python3-dev \ - && apt-get clean \ - && rm -fr /var/lib/apt/lists/* \ - && rm -fr /var/cache/apt/* \ - && pip3 install -r requirements.txt - -ADD ./tools/pulseaudio.docker.conf /etc/pulse/client.conf \ No newline at end of file diff --git a/python/Dockerfile b/python/Dockerfile new file mode 100644 index 0000000..b4cda7a --- /dev/null +++ b/python/Dockerfile @@ -0,0 +1,16 @@ +FROM python:3.6-slim + +ARG DEBIAN_FRONTEND=noninteractive + +ADD ./python /dictation_client_python + +WORKDIR /dictation_client_python + +RUN ./setup.sh -y + +RUN apt-get clean \ + && rm -fr /var/lib/apt/lists/* \ + && rm -fr /var/cache/apt/* \ + && pip3 install -r requirements.txt + +ADD ./tools/pulseaudio.docker.conf /etc/pulse/client.conf \ No newline at end of file diff --git a/python/README.md b/python/README.md index b34bd0f..d70ff82 100755 --- a/python/README.md +++ b/python/README.md @@ -4,10 +4,10 @@ ### Build docker image -To prepare a docker image with Python implementation of the Dictation Client, open the project's main directory and run following command: +To prepare a docker image with Python implementation of the Dictation Client, use the building script and provide an image tag as an argument: ``` -docker build -f Dockerfile-python -t dictation-client-python:2.3.0 . +./build_docker_image.sh 2.3.0 ``` The build process will take several minutes. When the build process is complete, you will receive a message: diff --git a/python/build_docker_image.sh b/python/build_docker_image.sh new file mode 100755 index 0000000..3d3b9d8 --- /dev/null +++ b/python/build_docker_image.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# coding=utf-8 + +set -euo pipefail +IFS=$'\n\t' + +SCRIPT=$(realpath "$0") +SCRIPTPATH=$(dirname "${SCRIPT}") + +COMMIT_TAG="" + +if [ -z "$1" ] +then + echo "No commit tag provided!" +else + COMMIT_TAG=$1 +fi + +docker build -f "${SCRIPTPATH}/Dockerfile" -t dictation-client-python:"${COMMIT_TAG}" "${SCRIPTPATH}/.." diff --git a/python/docker/run_dictation_client_python.sh b/python/docker/run_dictation_client_python.sh index c5ba806..ec2561d 100755 --- a/python/docker/run_dictation_client_python.sh +++ b/python/docker/run_dictation_client_python.sh @@ -134,4 +134,4 @@ docker run --rm -it \ --group-add audio \ --network host \ "${docker_image}" \ -python3 /dictation_client/dictation_client.py "${opts[@]}" 2>/dev/null +/dictation_client_python/run.sh "${opts[@]}" 2>/dev/null diff --git a/python/requirements.txt b/python/requirements.txt index 1fe385d..81efc1f 100755 --- a/python/requirements.txt +++ b/python/requirements.txt @@ -1,7 +1,8 @@ setuptools==50.3.2 -grpcio==1.24.3 -grpcio-tools==1.24.3 -protobuf==3.11.3 +grpcio==1.38.1 +grpcio-tools==1.38.1 +google-api-core==1.27.0 +protobuf==3.12.0 gapic-google-cloud-speech-v1==0.15.3 grpc-google-cloud-speech-v1==0.8.1 proto-google-cloud-speech-v1==0.15.3 From f922e53813da4552f6c52f21d9e3a0f416e51fcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Wo=C5=BAniak?= Date: Thu, 15 Jul 2021 09:31:13 +0200 Subject: [PATCH 04/65] Removing redundant requirements install --- python/Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/python/Dockerfile b/python/Dockerfile index b4cda7a..a599396 100644 --- a/python/Dockerfile +++ b/python/Dockerfile @@ -10,7 +10,6 @@ RUN ./setup.sh -y RUN apt-get clean \ && rm -fr /var/lib/apt/lists/* \ - && rm -fr /var/cache/apt/* \ - && pip3 install -r requirements.txt + && rm -fr /var/cache/apt/* ADD ./tools/pulseaudio.docker.conf /etc/pulse/client.conf \ No newline at end of file From 5da4247be02ca193b4dc262b3e5f7b5dfcd2b6dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Wo=C5=BAniak?= Date: Thu, 15 Jul 2021 09:34:58 +0200 Subject: [PATCH 05/65] Adding missing newline at the end of file --- python/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/Dockerfile b/python/Dockerfile index a599396..54ea78c 100644 --- a/python/Dockerfile +++ b/python/Dockerfile @@ -12,4 +12,4 @@ RUN apt-get clean \ && rm -fr /var/lib/apt/lists/* \ && rm -fr /var/cache/apt/* -ADD ./tools/pulseaudio.docker.conf /etc/pulse/client.conf \ No newline at end of file +ADD ./tools/pulseaudio.docker.conf /etc/pulse/client.conf From f5c78a4189cb940565dfddda7c2dbb624c6da4ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Wo=C5=BAniak?= Date: Thu, 15 Jul 2021 09:46:52 +0200 Subject: [PATCH 06/65] Provide automatic tagging for image build --- python/README.md | 6 ++++-- python/build_docker_image.sh | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/python/README.md b/python/README.md index d70ff82..7b14a86 100755 --- a/python/README.md +++ b/python/README.md @@ -4,11 +4,13 @@ ### Build docker image -To prepare a docker image with Python implementation of the Dictation Client, use the building script and provide an image tag as an argument: +To prepare a docker image with Python implementation of the Dictation Client, use the building script: ``` -./build_docker_image.sh 2.3.0 +./build_docker_image.sh ``` +(To set custom image tag, use the tag name as optional argument, e.g.: `./build_docker_image.sh custom_tag`) + The build process will take several minutes. When the build process is complete, you will receive a message: ``` diff --git a/python/build_docker_image.sh b/python/build_docker_image.sh index 3d3b9d8..eb909dc 100755 --- a/python/build_docker_image.sh +++ b/python/build_docker_image.sh @@ -11,7 +11,7 @@ COMMIT_TAG="" if [ -z "$1" ] then - echo "No commit tag provided!" + COMMIT_TAG=$(awk < "${SCRIPTPATH}"/version.py '/__version__/ { print $NF }' | cut -d\" -f2) else COMMIT_TAG=$1 fi From e60fffa442c4d0bdefa2a2ddb38b8a35fc99c214 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Wo=C5=BAniak?= Date: Thu, 15 Jul 2021 10:02:48 +0200 Subject: [PATCH 07/65] Improving version syntax --- python/VERSION.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/VERSION.py b/python/VERSION.py index aaff7c3..3a5935a 100644 --- a/python/VERSION.py +++ b/python/VERSION.py @@ -1 +1 @@ -DICTATION_CLIENT_VERSION = '2.3.1' +__version__ = "2.3.1" From f15eaaf1c03dad0e5fb43a4f1b157691088e629b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Wo=C5=BAniak?= Date: Thu, 15 Jul 2021 10:06:25 +0200 Subject: [PATCH 08/65] Correcting version --- python/README.md | 4 ++-- python/build_docker_image.sh | 6 +++--- python/docker/run_dictation_client_python.sh | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/python/README.md b/python/README.md index 7b14a86..650d4e0 100755 --- a/python/README.md +++ b/python/README.md @@ -14,7 +14,7 @@ To prepare a docker image with Python implementation of the Dictation Client, us The build process will take several minutes. When the build process is complete, you will receive a message: ``` -Successfully tagged dictation-client-python:2.3.0 +Successfully tagged dictation-client-python:2.3.1 ``` ### Run Dictation client @@ -248,7 +248,7 @@ On the Linux operating systems using Advanced Linux Sound Architecture (ALSA) mi If you get the following output after runing request: ``` -Dictation ASR gRPC client 2.3.0 +Dictation ASR gRPC client 2.3.1 ALSA lib pcm_dsnoop.c:618:(snd_pcm_dsnoop_open) unable to open slave ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe diff --git a/python/build_docker_image.sh b/python/build_docker_image.sh index eb909dc..342ea01 100755 --- a/python/build_docker_image.sh +++ b/python/build_docker_image.sh @@ -9,11 +9,11 @@ SCRIPTPATH=$(dirname "${SCRIPT}") COMMIT_TAG="" -if [ -z "$1" ] +if [[ "$#" -eq 0 ]] then - COMMIT_TAG=$(awk < "${SCRIPTPATH}"/version.py '/__version__/ { print $NF }' | cut -d\" -f2) + COMMIT_TAG=$(awk < "${SCRIPTPATH}"/VERSION.py '/__version__/ { print $NF }' | cut -d\" -f2) else - COMMIT_TAG=$1 + COMMIT_TAG="$1" fi docker build -f "${SCRIPTPATH}/Dockerfile" -t dictation-client-python:"${COMMIT_TAG}" "${SCRIPTPATH}/.." diff --git a/python/docker/run_dictation_client_python.sh b/python/docker/run_dictation_client_python.sh index ec2561d..0dbdd8d 100755 --- a/python/docker/run_dictation_client_python.sh +++ b/python/docker/run_dictation_client_python.sh @@ -2,20 +2,20 @@ # coding=utf-8 # This script sends request to dictation service using dictation client inside docker container -# Requires "dictation-client-python:2.3.0" docker image loaded locally +# Requires "dictation-client-python:2.3.1" docker image loaded locally set -euo pipefail IFS=$'\n\t' SCRIPT=$(realpath "$0") SCRIPTPATH=$(dirname "${SCRIPT}") -docker_image="dictation-client-python:2.3.0" +docker_image="dictation-client-python:2.3.1" usage() { echo " -Dictation ASR gRPC client 2.3.0 +Dictation ASR gRPC client 2.3.1 -h, --help show this help message and exit -s=ADDRESS, --service-address=ADDRESS From 8d5cb4b48668efbdf7372a161835f73a84fb89f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Wo=C5=BAniak?= Date: Thu, 15 Jul 2021 10:43:01 +0200 Subject: [PATCH 09/65] Replacing old version variable with new one --- python/dictation_client.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/dictation_client.py b/python/dictation_client.py index f463f3f..e926da6 100755 --- a/python/dictation_client.py +++ b/python/dictation_client.py @@ -4,7 +4,7 @@ from utils.mic_source import MicrophoneStream from service.dictation_settings import DictationSettings from service.streaming_recognizer import StreamingRecognizer -from VERSION import DICTATION_CLIENT_VERSION +from VERSION import __version__ def print_results(results): @@ -36,7 +36,7 @@ def create_audio_stream(args): if __name__ == '__main__': - print("Dictation ASR gRPC client " + DICTATION_CLIENT_VERSION) + print("Dictation ASR gRPC client " + __version__) parser = ArgumentParser() parser.add_argument("--service-address", dest="address", required=True, From 861ad0a923cdcfad51e023bc1baacdade0df0225 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Mon, 19 Jul 2021 14:44:37 +0200 Subject: [PATCH 10/65] Adding simple CI --- .github/workflows/ci.yml | 49 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..344d9cc --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,49 @@ +name: CI/CD +on: [push, pull_request] +jobs: + + python-build: + name: Run test suite + runs-on: ubuntu-latest + + steps: + + - name: checkout code + uses: actions/checkout@v2 + + - name: build docker image and push to repository + with: + REPOSITORY: jaredharet/private + DOCKER_LOGIN: ${{ secrets.DOCKER_USER }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASS }} + run: | + cd python + ./build_docker_image.sh "${GITHUB_REF##*/}" + docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io + docker tag dictation-client-python:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-python-"${GITHUB_REF##*/}" + docker push "${REPOSITORY}":dictation-client-python-"${GITHUB_REF##*/}" + + + # cpp-build: + + + # test: + # name: Run test suite + # runs-on: ubuntu-latest + # env: + # COMPOSE_FILE: .ci/docker-compose.yml + # DOCKER_USER: ${{ secrets.DOCKER_USER }} + # DOCKER_PASS: ${{ secrets.DOCKER_PASS }} + + # steps: + # - name: Checkout code + # uses: actions/checkout@v2 + + # - name: Login to DockerHub + # run: docker login -u $DOCKER_USER -p $DOCKER_PASS + + # - name: Build docker images + # run: docker-compose build + + # - name: Run tests + # run: docker-compose run test From f280c975d8b7a5000d777899101cd1fbad323a36 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Mon, 19 Jul 2021 15:06:25 +0200 Subject: [PATCH 11/65] Correcting syntax --- .github/workflows/ci.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 344d9cc..52afa7f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,14 +3,12 @@ on: [push, pull_request] jobs: python-build: - name: Run test suite + name: Python image build runs-on: ubuntu-latest steps: - - name: checkout code uses: actions/checkout@v2 - - name: build docker image and push to repository with: REPOSITORY: jaredharet/private From 09eaafcee6e6e30733c55247b353b3be6aa7aba9 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Mon, 19 Jul 2021 15:10:25 +0200 Subject: [PATCH 12/65] Correcting syntax --- .github/workflows/ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 52afa7f..9f77f63 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,8 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - - name: checkout code - uses: actions/checkout@v2 + - uses: actions/checkout@v2 - name: build docker image and push to repository with: REPOSITORY: jaredharet/private From 037b88336418a7ad9f091b3dbd296702fae653bb Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Mon, 19 Jul 2021 15:15:49 +0200 Subject: [PATCH 13/65] Correcting syntax --- .github/workflows/ci.yml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9f77f63..f338801 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,18 +7,19 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: build docker image and push to repository - with: - REPOSITORY: jaredharet/private - DOCKER_LOGIN: ${{ secrets.DOCKER_USER }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASS }} - run: | - cd python - ./build_docker_image.sh "${GITHUB_REF##*/}" - docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io - docker tag dictation-client-python:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-python-"${GITHUB_REF##*/}" - docker push "${REPOSITORY}":dictation-client-python-"${GITHUB_REF##*/}" + - name: checkout code + uses: actions/checkout@v2 + - name: build docker image and push to repository + with: + REPOSITORY: jaredharet/private + DOCKER_LOGIN: ${{ secrets.DOCKER_USER }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASS }} + run: | + cd python + ./build_docker_image.sh "${GITHUB_REF##*/}" + docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io + docker tag dictation-client-python:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-python-"${GITHUB_REF##*/}" + docker push "${REPOSITORY}":dictation-client-python-"${GITHUB_REF##*/}" # cpp-build: From 0010b4a8dd288864fe618da4d20c39379636160a Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Mon, 19 Jul 2021 15:19:48 +0200 Subject: [PATCH 14/65] Correcting syntax --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f338801..ebb93cc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ jobs: - name: checkout code uses: actions/checkout@v2 - name: build docker image and push to repository - with: + env: REPOSITORY: jaredharet/private DOCKER_LOGIN: ${{ secrets.DOCKER_USER }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASS }} From 52dd465631082d1f7dea49eb6bb99f0130c623af Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Tue, 20 Jul 2021 06:17:33 +0200 Subject: [PATCH 15/65] Adding image build script for cpp --- Dockerfile-cpp => cpp/Dockerfile | 0 cpp/README.md | 6 ++++-- cpp/build_docker_image.sh | 19 +++++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) rename Dockerfile-cpp => cpp/Dockerfile (100%) create mode 100755 cpp/build_docker_image.sh diff --git a/Dockerfile-cpp b/cpp/Dockerfile similarity index 100% rename from Dockerfile-cpp rename to cpp/Dockerfile diff --git a/cpp/README.md b/cpp/README.md index 94dda4f..6c9ecf0 100644 --- a/cpp/README.md +++ b/cpp/README.md @@ -23,11 +23,13 @@ In this case open project repository in web browser, go to the `submodules` dire ### Build docker image -To prepare the docker image with C++ implementation of the Dictation Client, open project's main directory and run following command: +To prepare the docker image with C++ implementation of the Dictation Client, use the building script: ``` -docker build -f Dockerfile-cpp -t dictation-client-cpp:2.3.0 . +./build_docker_image.sh ``` +(To set custom image tag, use the tag name as optional argument, e.g.: `./build_docker_image.sh custom_tag`) + **Note:** The build process may take a several dozen minutes (for shorter build time use the python implementation instead). When the build process is complete, following a message will be shown: diff --git a/cpp/build_docker_image.sh b/cpp/build_docker_image.sh new file mode 100755 index 0000000..6019a8a --- /dev/null +++ b/cpp/build_docker_image.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# coding=utf-8 + +set -euo pipefail +IFS=$'\n\t' + +SCRIPT=$(realpath "$0") +SCRIPTPATH=$(dirname "${SCRIPT}") + +COMMIT_TAG="" + +if [[ "$#" -eq 0 ]] +then + COMMIT_TAG=$(awk < "${SCRIPTPATH}"/libdictation-client/VERSION.h '/LIBDICTATION_CLIENT_VERSION/ { print $NF }' | cut -d\" -f2) +else + COMMIT_TAG="$1" +fi + +docker build -f "${SCRIPTPATH}/Dockerfile" -t dictation-client-cpp:"${COMMIT_TAG}" "${SCRIPTPATH}/.." From 8c1f9b02d0c66aefe06c37bbd0ce3a44bfc0e85c Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Tue, 20 Jul 2021 06:20:04 +0200 Subject: [PATCH 16/65] Adding cpp image build to CI --- .github/workflows/ci.yml | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ebb93cc..c0732f3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,9 +20,25 @@ jobs: docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io docker tag dictation-client-python:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-python-"${GITHUB_REF##*/}" docker push "${REPOSITORY}":dictation-client-python-"${GITHUB_REF##*/}" - - # cpp-build: + cpp-build: + name: C++ image build + runs-on: ubuntu-latest + + steps: + - name: checkout code + uses: actions/checkout@v2 + - name: build docker image and push to repository + env: + REPOSITORY: jaredharet/private + DOCKER_LOGIN: ${{ secrets.DOCKER_USER }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASS }} + run: | + cd cpp + ./build_docker_image.sh "${GITHUB_REF##*/}" + docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io + docker tag dictation-client-python:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-python-"${GITHUB_REF##*/}" + docker push "${REPOSITORY}":dictation-client-python-"${GITHUB_REF##*/}" # test: From a7fe90ede70c2755703e862dc6f87600697c529f Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Tue, 20 Jul 2021 06:55:46 +0200 Subject: [PATCH 17/65] Initializing submodules in image build step --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c0732f3..e11d8cc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,6 +28,8 @@ jobs: steps: - name: checkout code uses: actions/checkout@v2 + - name: initialize submodules + run: git submodule update --init --recursive --progress --depth 1 - name: build docker image and push to repository env: REPOSITORY: jaredharet/private From d7390d9a518becce7b056710f33dcc8b85f9e681 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Tue, 20 Jul 2021 07:23:41 +0200 Subject: [PATCH 18/65] Correcting image tagging --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e11d8cc..d339d30 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,8 +39,8 @@ jobs: cd cpp ./build_docker_image.sh "${GITHUB_REF##*/}" docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io - docker tag dictation-client-python:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-python-"${GITHUB_REF##*/}" - docker push "${REPOSITORY}":dictation-client-python-"${GITHUB_REF##*/}" + docker tag dictation-client-cpp:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-cpp-"${GITHUB_REF##*/}" + docker push "${REPOSITORY}":dictation-client-cpp-"${GITHUB_REF##*/}" # test: From 3ac7df251f311b173899a3de954b956b038413e5 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Tue, 20 Jul 2021 11:32:01 +0200 Subject: [PATCH 19/65] Adding -dev prefix to dev images --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d339d30..604f03f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,8 +18,8 @@ jobs: cd python ./build_docker_image.sh "${GITHUB_REF##*/}" docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io - docker tag dictation-client-python:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-python-"${GITHUB_REF##*/}" - docker push "${REPOSITORY}":dictation-client-python-"${GITHUB_REF##*/}" + docker tag dictation-client-python:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" + docker push "${REPOSITORY}":dictation-client-python-dev"${GITHUB_REF##*/}" cpp-build: name: C++ image build @@ -39,8 +39,8 @@ jobs: cd cpp ./build_docker_image.sh "${GITHUB_REF##*/}" docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io - docker tag dictation-client-cpp:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-cpp-"${GITHUB_REF##*/}" - docker push "${REPOSITORY}":dictation-client-cpp-"${GITHUB_REF##*/}" + docker tag dictation-client-cpp:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-cpp-dev"${GITHUB_REF##*/}" + docker push "${REPOSITORY}":dictation-client-cpp-dev"${GITHUB_REF##*/}" # test: From 439c3c81aaf64f45ce2fc19759746c8249e0328a Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Tue, 20 Jul 2021 12:17:26 +0200 Subject: [PATCH 20/65] Correcting images tags --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 604f03f..d4bc2dd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: ./build_docker_image.sh "${GITHUB_REF##*/}" docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io docker tag dictation-client-python:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" - docker push "${REPOSITORY}":dictation-client-python-dev"${GITHUB_REF##*/}" + docker push "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" cpp-build: name: C++ image build @@ -39,8 +39,8 @@ jobs: cd cpp ./build_docker_image.sh "${GITHUB_REF##*/}" docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io - docker tag dictation-client-cpp:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-cpp-dev"${GITHUB_REF##*/}" - docker push "${REPOSITORY}":dictation-client-cpp-dev"${GITHUB_REF##*/}" + docker tag dictation-client-cpp:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" + docker push "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" # test: From 5e2cc6640b8e05e817ac5766d8a7cd4f59952c86 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Tue, 20 Jul 2021 12:18:06 +0200 Subject: [PATCH 21/65] Adding workflow for publish deploy images --- .github/workflows/publish-images.yml | 48 ++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/workflows/publish-images.yml diff --git a/.github/workflows/publish-images.yml b/.github/workflows/publish-images.yml new file mode 100644 index 0000000..4ae7ffe --- /dev/null +++ b/.github/workflows/publish-images.yml @@ -0,0 +1,48 @@ +name: Publish deploy images +on: + release: + types: [published] + +jobs: + + python-build: + name: Build and publish Python image + runs-on: ubuntu-latest + + steps: + - name: checkout code + uses: actions/checkout@v2 + - name: build docker image and push to repository + env: + REPOSITORY: jaredharet/private + DOCKER_LOGIN: ${{ secrets.DOCKER_USER }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASS }} + run: | + cd python + VERSION_TAG=$(awk < VERSION.py '/__version__/ { print $NF }' | cut -d\" -f2) + ./build_docker_image.sh "${VERSION_TAG}" + docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io + docker tag dictation-client-python:"${VERSION_TAG}" "${REPOSITORY}":dictation-client-python-"${VERSION_TAG}" + docker push "${REPOSITORY}":dictation-client-python-"${VERSION_TAG}" + + cpp-build: + name: Build and publish C++ image + runs-on: ubuntu-latest + + steps: + - name: checkout code + uses: actions/checkout@v2 + - name: initialize submodules + run: git submodule update --init --recursive --progress --depth 1 + - name: build docker image and push to repository + env: + REPOSITORY: jaredharet/private + DOCKER_LOGIN: ${{ secrets.DOCKER_USER }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASS }} + run: | + cd cpp + VERSION_TAG=$(awk < libdictation-client/VERSION.h '/LIBDICTATION_CLIENT_VERSION/ { print $NF }' | cut -d\" -f2) + ./build_docker_image.sh "${VERSION_TAG}" + docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io + docker tag dictation-client-cpp:"${VERSION_TAG}" "${REPOSITORY}":dictation-client-cpp-"${VERSION_TAG}" + docker push "${REPOSITORY}":dictation-client-cpp-"${VERSION_TAG}" \ No newline at end of file From 56952e0bc9a1dc87d19577144e1beff0a652eb99 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Tue, 20 Jul 2021 17:51:25 +0200 Subject: [PATCH 22/65] Correcting setup script --- python/setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/setup.sh b/python/setup.sh index c4fed95..17e3285 100755 --- a/python/setup.sh +++ b/python/setup.sh @@ -6,7 +6,7 @@ IFS=$'\n\t' automatic_install_mode="false" -if [[ "$1" == "-y" ]] +if [[ $# -eq 1 ]] && [[ "$1" == "-y" ]] then automatic_install_mode="true" fi From f52165baf67d469dc2bdb20369d40bbf2446ba14 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Tue, 20 Jul 2021 20:23:10 +0200 Subject: [PATCH 23/65] Adding CI tests --- .github/workflows/ci.yml | 59 ++++++++++++++++++++-------- cpp/tests/data/test.wav | Bin 0 -> 55340 bytes cpp/tests/test_service.sh | 72 +++++++++++++++++++++++++++++++++++ python/tests/data/test.wav | Bin 0 -> 55340 bytes python/tests/test_service.sh | 72 +++++++++++++++++++++++++++++++++++ 5 files changed, 187 insertions(+), 16 deletions(-) create mode 100644 cpp/tests/data/test.wav create mode 100755 cpp/tests/test_service.sh create mode 100644 python/tests/data/test.wav create mode 100755 python/tests/test_service.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d4bc2dd..80ce563 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,6 +9,7 @@ jobs: steps: - name: checkout code uses: actions/checkout@v2 + - name: build docker image and push to repository env: REPOSITORY: jaredharet/private @@ -28,8 +29,10 @@ jobs: steps: - name: checkout code uses: actions/checkout@v2 + - name: initialize submodules run: git submodule update --init --recursive --progress --depth 1 + - name: build docker image and push to repository env: REPOSITORY: jaredharet/private @@ -43,23 +46,47 @@ jobs: docker push "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" - # test: - # name: Run test suite - # runs-on: ubuntu-latest - # env: - # COMPOSE_FILE: .ci/docker-compose.yml - # DOCKER_USER: ${{ secrets.DOCKER_USER }} - # DOCKER_PASS: ${{ secrets.DOCKER_PASS }} + test-python-service: + name: Test Python service + needs: python-build + runs-on: ubuntu-latest + env: + REPOSITORY: jaredharet/private + DOCKER_USER: ${{ secrets.DOCKER_USER }} + DOCKER_PASS: ${{ secrets.DOCKER_PASS }} + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Login to DockerHub + run: docker login -u $DOCKER_USER -p $DOCKER_PASS + + - name: Pull docker image + run: docker pull "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" + + - name: Run tests + run: docker run --rm "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" ./tests/test_service.sh - # steps: - # - name: Checkout code - # uses: actions/checkout@v2 + +test-cpp-service: + name: Test C++ service + needs: cpp-build + runs-on: ubuntu-latest + env: + REPOSITORY: jaredharet/private + DOCKER_USER: ${{ secrets.DOCKER_USER }} + DOCKER_PASS: ${{ secrets.DOCKER_PASS }} + + steps: + - name: Checkout code + uses: actions/checkout@v2 - # - name: Login to DockerHub - # run: docker login -u $DOCKER_USER -p $DOCKER_PASS + - name: Login to DockerHub + run: docker login -u $DOCKER_USER -p $DOCKER_PASS - # - name: Build docker images - # run: docker-compose build + - name: Pull docker image + run: docker pull "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" - # - name: Run tests - # run: docker-compose run test + - name: Run tests + run: docker run --rm "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" ./tests/test_service.sh \ No newline at end of file diff --git a/cpp/tests/data/test.wav b/cpp/tests/data/test.wav new file mode 100644 index 0000000000000000000000000000000000000000..6a9906bca38e98bd8b2004ddb203a9350dc17d77 GIT binary patch literal 55340 zcmZ6y1$-1c_W(LB>(Z^eKq+l;w^H2Q-3k|XcfYt@-1Pz%cc*B90>$g@+wI!y?)bdv z<@?_Ee{b@eB$FdKIhn~MCnx>8b?zLQ4gf>i5AKvSV}7U(002-9;e!F7<39iZ0Xksf zxcTD%8Ap_AAd(zIG8Xi2?ti7CBuRi=CjJ}O-a4R1pJTB|8Rcu z`L86ux%}o@gHzMy|F-78IKR{1IR6*(zdZj3`7izdN@O+uM|U-8%~Op|YeJ2#Ywnu3 z1|s|h%Flv)|GsJp{T(Y{tY$K{pM0rS54`EW%~cp z*7V$euitOU@2B5dtr*2Ktva=46B^NjsV zSJOkkDIqznk+6pM?>_piso#3}-Ts<({eB~B`nINJHTX6Cfcz_wDEA#8Lw<)ESPk@d z8)_(OU^STkd)I2@{e9Q8phm_T+TX3J!K$J7UBmCUpoaE;*MHxb8jKoU^8e|}8aaP! zn3XtLN=f47@LTqpzTo8>kmctkMuvOj_;(riFGP~dYMyJTSUJbYsVJA#P|*KAbN^D* z@U5x0rUz`3^DwHJ@KusH5G8_OXsYni`vh=J}E@ex(QiZIIGP#VBX(?Ii-@RL-vl@Dp%*i2z z1K~iuf3-sZ3Ry#vq?SubSsuI0%Pv_Ytz23zsemrB^hL6Eeo2+G6hna~KqSxzr~|~y zQYz(qjpl1~)IgRq5eNgSq!_?UZiysalqN`Ly>vv?V31nw300#jv4LZ#;5D)6{0i(7mPzK~waHN6md z{+IL?Tnr`vW#9)XO}GUN1ip$-#UapbDGGc9tpWc6Is;}fUuqy0NDBeActrdreU(C` zP2wu?g3Rx@ut91ry_A*-1H~!8ZXib1-VUjstS3^|SXp+Wk-&1Xp_Bxs0WHN6aSd<+>?kDh>!tS43|T`xg~?I{ut|Pv+K4Cw0dKiWfPmiS z7xLL)1Eep1QXCBmq7&)>WxD6XqwqEE9nu7#gIvQUIFDa0=z#z<9q2;ug1Z52fKFmx zL5H}ZNA5-NG31f(KrDu%fEckYa8>BTo>+b7W0I!3mvd2Ix-xkaS`XlT3Rg4$D4v6NOa;=nm zfc11&X&-O~>?v*}Zb|Q{rtl^B0??jWhz^tn3s=ZcsIzk=@Jnf7-|#_V1>yu6QN6L} ziqF>70%VxT8|fWD1NfP!mtsj})kI};;usI`jok6dnGyvqqm#iE;5{jn4P?uS-EacC zhBJXbktA>@Hw3s0t#w~x4ysX9?K~y?iPt9oa3qMm@UeUh_=8O)c>8um65iPX;-kf( z=n+o^yc-G@P(+|^XurFfLhI01?!M}gLZ;Zmp5d+cxZM4fU+mrVSKa>nGv#dlHpqj$ zxZ3boX%kqVrpR{OE@r=CD?fo4Se>LDz-H6ywUyQRs+D3}$rl>SbWk@FjdYH92mggm z78jVmY8L7nRMr(rlzSO3=)CH7m6zg#v=1Bx)JJy@%Sg#3=A2>*tJBby5J1Oz{zL5V`{1;*E$| zGD#bOdt4WAEm+E3QwG_xg*6bMUt=rc1{t=wpK;@$f#i4x4o^mcSeMio9V~r8I*4yA zD&05YtJBTzLdT*lsh)U4z#HORi*$NR9~3ict(^cr`nz(rlnr;WXRAXUmsFs*N2m>+ zhZ!i*5+gRlem3BJ~XixG9_fb0Tf$@FhbBBRztFPlYjLi|JIs7zX z(g4;Eiw2@x4dA_m3Tt3Hz>gq`RsPOwE3ZyN8$%lUy=9d*;3X9t@w7IKQ&=naq3eO~ zaEObA@-z=BIZdx>g>JE;u=preOTC}nAztENGYd4mk@5C-{Ahi-BS~C`lwl?I56CFR zG+S5AS>d+(gu0p3i_#EDf*1Oln@IO1y@3&UeWy|IR*j=qz~`}B+$%@2el@y;+T~tr ztOIv7C!ya|f3aTfIOSu|;~Ym^Rdp}=Vi*KIroVE<8k`RiT0oPj7@w)`Ag3DP^&?y@ zsTP{K%DLsMNHvlS^x|$JD4^!7Xt*>BFRi|$eaO06OX0yuLASwWkj?dUI8n8ac+ zn#9}#xFhsQ?i1x{!0tMy#JEjNtj6k?BAn2Da8wFoq@VD3qTD^7&L=M72ran>7}ncT z@DvHP4Ka)qC-bKrMdW6Uzpb`Y3RvTw!bJhM#6hZ<>OY`PioW75_g|`co}18lG>ALH zHv-2fepqqHPgBcN?er)|BDbW4uD0TH{hv;j8v^E%%{(XB3YFWQ;q^iAFDwr7f|Be# zv187q`qOaxY8ds^f3vCijRqe}f|Q{fX+MB(bUgr@Yp=Qf6taN#_&i5~O6_?BTt^PF zV}(PC6#BB*1}6j(QagQpC)+0r{gHRP2)?7Uu?xzrj&-iFx*}|Z^9%SG)l)Hww&Vs! zS4!(&=6XQukRM22;3U-+Rl^J66t^BYMWzTV+<&WTIS~Aw)COD+CGt^B0y<5FR24zB zv1nwMEgj1Rw<(udE5#p*AFKyWrKUsA(0N#9Ra@ktYKgTEUaXv5u^6jom~0CW7oeZT zy;wdQ>1?D}tjV%$mb~%CpjIg3e_=+rma7+dM7y&(2-w`#a6Q8Fk#yX(VcLL{4M z@V54YZmAYpSL;68U($JjJ)Hfj_`pAHn>nkdEpUzh=s4(AkJ2DvzykKJgd(l+9_A>` z6zqeCkpIC$P)w@kadw8{HM0Vk3{K)V!41Ui@K`nkSc3G!Q>ahOFEk063f6K?0H@)z z(C;43<>ULBn#NDybEG<^*=F3GssA9%6AeNewu$l|c~bkz?W1T6Y@=1^YN0uF9^6l_ zmHMiDtiHly<7dZDAzge*21CcIJ80|-hoC|_NO4t26|2Jv#m?^4DiwPL^LKRCeRFRY zmLQX%HGE5{p`yRD7|#Y)Lxn8HC%}`idho$2Z*rG9x%{xE3i!ze02DY+`r@4LyQHEK zHeMY_O+`M@VY+FR{S?>1U@jfM_~*-9gROF4Z5xG|Xau2ZyWIxgJAJnGyO^ zR)y-Y%PbY^wai+}P31UkhV`xXRqo4>LOR6p*1MwO1bGJp*o}%w{1E$U-;ws~?jy=0 z3jfMsTsQxCmrK~hR45bq#&CvP1RAOv*=lLMt4AvB5+qy%Yw=GMdtFPwBT!#3P1wM! zLWXHFi(7b~ga0azRgF+wuL?ulK4KQ9;#KV_3Ah0&ksqE1xQc(otTrUtKYDC>6F=KE z0@527RBfS(LnF&Oi@P+XREV^QfWacFH@KRpkEklV44>df<^#&U3d}kfn=VDd2(;R5 z$1Z@oJ!hc~<8`x2wT(Da=A#>~ZeO%jm9HqYeIj7b2jvFG2r%C#yd;(#7G7Mo z7IdOR;l}P0P$a6U-s=* zy90#zN;fl$aItM&a}Aq?Q}))1bQ4;+&Dq265f|*~BZUCL@;llJJ1*{XbTar!eX0jw z_w{;`Ge7WW)iTd*eKB~iszAx0LC!+5 z8PbmG!R9Dm0Y@CEP$lvj8YFe+F9{pO&zfN_Enms?F?p&w5^b^3<~BxB6<2fwi&S-H z7ZdOE-UQnDaF+?`tvqABM2v@$f#I%H#vOh->nooS9%AcWJ~Qx7-p&;{>Uoz~5}}s3 z%Gq7LO6o4gI)?f^rW3?^)Ja22$mp0sPYN1Uwpb_&8j`cX&rjIqxPvy)J}mY&9T$E% zMKqH9!oRG@jl57W7e7GkpcJa@m4bg6|CAoeeE=A-y3BI8esJ)oj| z8W-w!(fSc>%uR@@Sw@gm5FPGVPiKPyO9 zH8$KVzOVbI`iSNa!D=58+%mUZ*&QFw?v|blABaJ=eD7J7u1tZ^O`mj;>Ueerg5mMz zlX!xv!qwbU%edHD7dxVC>)8OW5lYpu_G|8Lrbwot!-|g4csoX6-QYrJF+wRa`NFDw zdZl7r;Z;Qop95JcpX0)8*KzeJDoz-peeEg|+T%8{9=4-uplMds-})WScJyk~F3Ji9 zi`x+^w;lZs<_f4Z6&@r_Y9=&mullS;z<=_wOhut4pjI{*5^DIzTgqgXD8J=X(Eeugo++w#@ z0g3~W74EV8X?!s@)in#4NL)bvuv{?cxu)Pa@vER_hGpH=@T1f(|i3){i1fGgO`p0UcoScp9zn1?1RSC=QE>1Y^jQH`y* zqSxCODHbV@S*|LzN+*>men9#N0Z<0F-}6Li*#Ty)K%&XVnwmu(eD zJA5+J7aYrdRp_Dh_Ga=*>>yJKG%+OGZX!Hsb>*;jqz%7`&jwCPgklAs&+Wl0Ss!3F zk|dtwGU>*K!{*lTVf8G2GK;Z|v4)Cvw%v{~fnz;?d48!AA(kJiuC}R=1nf9{5UR&F zKt@B=@ z0SDh=Q;5g*zR*m;Onm2q%qrzMFJpBBE*ZN(4j>90Q(R4qO`#@~7e58g#S&cs2o3HR zZea?~VEzs^1buHGf=>r_2XlOsLTE(w zQ!)+c3RLq0iP!9C;SltZ?|p>w(8&}wWat){CQcBQ!abo3$Vbe41C*mD3I~O=!amRlj)Vp=OF=6b3yy;q3wM~E@H^m}(1tk- z`=Q&I=1P(7yN0^SNV|1#^3N&XlvOv&>t!ga^Xtumvmh02wVprA-U2G8b;t$1Tm!C?cEQPF zIoA*Fhpz+%gUh52NJI3f*b6uX)Pf;+8k-C(0d0JL@tQOo?k$Z6a47;jA=^tn@{5F} zQkr-j>I9I|aNs^T2f8lxfx@Lk;UI8Wm@2Ln>j;Z@0;Gjt=>*?G`jcPJT;Za)=d6O! zim9xZu!i{}trl*II`MDuwCEA0$aAG(NMkn&`(k&bd$0j~DincXk_&mEZbht8>{0nB zROod6ECVvWRC}7|{K4JO0Qfo?uLg7*RauJFnx{k@v4~iT1}RfjZw;xwdY@^2U40+u z59m*8afJ_Fgq*@@{1BRfcq8v+>r-FZI`Q0o)7-5js^CW6_1x2WIl1NeYm3737v}WI z==jT+F)wpzwla5DAyKBToMahopGRf5dN93tRvHRyhwGvb6m|3o#;M+ue1G^H@|ozn z#ni%wHT()}?3JOXBC-QbMlE^@yo4=9BvnS}(Gb=@SJ?(~)9#{IdBK@!Ijbu5lo_mz z-V<;n1)E7MkPXX)STpD?um~TfdF6d2WMfRXCPSP5-MDM?prECum--6LSM6JGG$1JG zTd>1dr(1;vNJqIDwzBfUMb|R|zm|MW`(gOe=u7PP%jvhiY)|=`y#8UcdmZklJ$v?U z=BGzrihfjOjW4J!+Fgd3mpQcpfo7_5bt8SY1fGgaiAk(KpgplYLUf$BehHk3Vrd zOL{*bV?}il{}geFC();>j>ZygtopgWnJz|O?)y0GPTg}&54T_1CvIR-k3U*GjE#@X z2wLPL`UZ#ELtcmdiU0z7s#DnR)+`$U1GB*S*a>Bn9H-YJ@R4-Ebly&-O4qui#G+O%)KqvO*= zCShFb`pr`sZjGA}gGP3Vu=-V*mMhjGc1v2>1dq;jw_w)WE}y9^ThZ}KFJ237qGl9p zv&VeE@1|a?f3;b%%ZuGWIb(g38caNGj zX5yfe326;|;7PPhY z#Cj1eJc;2wE)Vh^y?@lhzK>fxjyUJ*)?8P;)`Et+#&F{^dByat+M40_>0?UjtBKD| zk00M(e*gV_dx0! zQvJRi{rK%^&*$dv3)nnluy%pIEq2cBomZMx^zPoX)YmTyx1a^#U1I|pk8M(2S5b?L zSRUNQd!Tl|@8wzt>JMu=v~~MVt$Lp8?d;yYt+iGi?LnYG7$vI3H{b*OIC)h$6Sh%Z zv#!56`HXu`Jm(*qpUir(KlN&wCcRxopNt#no?q88v$Mu!_Q?8Cm|@=mKhe(jG5L=U z2n$LM&;*|Ldmh*`GA(9b!_bDy8;*;8U%N#_o6u&ytbQn-4rcO3&sOT6%Dv@4VVA;f z@~8uT$@p~g^WMyhc^|*G{XX)uDzk-Sl<{%IlZa`CU08oAxNyt&J|8=Lt(|{ZS{FLG zS+8b)HJDxJbwsbgB-13Vnruv%jWJOJ8})CV)3j;ZvJPw8|7sK+Qc2FI{p?q%p0c&q zf&L`EHNIYI?g$4;{vw(hMRh*Ujl=G+Soc{c6e%BM&l7p8n*hNTXAQqlgp=gQQ_!|) zT3sh8u|oQB{WFrjvos5;7ka#bDSBggk?#WU{+eIdI50tY3+Oe6LU+aPs(&GtX||=^ z*w*=VrW(Sedd>rmHmr||R6W*zHN7<0bUeMNT>0bJ`z9Y_f7Z=7p3&vk*X;CiZArbN zBUwwcZ)PscJe473Z_BS$KH7B^?5tL6Sj|;UsOAesY&wt9QLtxR2}cI($Fa1 zSnp%{I_eC31=0{`3SJcR*aUYyduvB`bL%QBuTK8xjJA1k*^ROl&O>4|>#vNP88e(t z$;WNb_ToYfa(bRur%`5tnc4{ME%(RGx~e_ zuesTwIcH0!7xgPzQ&>0eN$&aV)9LxSD+=w^^}ulTbW^czoc5a+9c8eXU+xb0H;!-TxZ`~hNkE2@FYY{Wpv|4*a^-!@C zK)5Ty3-qaGT0l|s{kX0TspjhwrnRVuc!lSBcGBbAT_i6>o}rE31@G712oXwI3X3!I z)A+QPUzYxe``P7JSkBmzM^!V*8kRtLu?68vZ0+WR8@s^ zN2X(|R5>OzplA5ruxFujf(`~<_nl*0MO4T;2$(4HBiW7Y3Obm*?pfmbQuV0xL-ywU z{n?>;2lB>PHxT!^x+McLcU0a(&-q@6e%TUg*f1y-Smb_M82xcX%HYhwjK8jXs5P=~ z_z-=Ws=30ZoC~DTb%hD&J>^=%^N^v@SL+wF%IVmmomeYEv5-GW#Zj;LU05B{Ex)pW zg+c2ySt3|^Ix{_ESO)yV@~!Px=2z|fq=MGvLP`Dd^JRAnQ?u{?YWQt-diPwt<+}u{ zf9cxjRQiM3spKFy3$znf-2oF26d(L1%o?~TFxLNs&vwmWMLF1k-$ak}L~={%bDjZA zGTYnTk-AzsujFd(qvB1O!}HFW+w*tP9Lsvk2lFs{7S^=RxE2dqHHp&tl|xL$%U?@B z{ronrV42W0AS*5*#O%{b8>(@jO{I2hQ`b6ACag5%1%IeDCwfw|r5)#VGB<<*o1;&i zZK~clr;?mH**H9a4H3h)DfiN7Nx_fMpXT%d-=2NjnYQ)UhJuK~q|!~Ld(4TYyYstc z>C*$hz5Bi@_qOdO*jD{Of6sKmD^$}F?*y9x3vx<5!1#}Ug#X0Q>!AZe+64ytf7Fjr zdI15v!PCciz~%2D_^SfNnVIdbR+Vka6S9vL^v;=Ct}1$1q{lAm6i{?!P)VxrT-U&q z*tmTwsL>VE2V|M&MZx;dC(;_0jAS=x-vv?;nWj=zxpI(xkfIy7O5RCq0)JIz8e;rde&>0HNEl7Lz?M>Mac8BIl*u$um0gTsm z{YpbEJWO6AdGQ2fRwVem3LPBNwqZeYMO$;dUB(7T2E#b*&i2e!RS)A=6B07qcdELT zt6#~-%);+&(!PAT`zh}mo!+28tn6JexBQR7pCu!6Po#%`9r7(Evwdj@wG-^GysLhu zS)n!)h42)iRQwL_Bo-MacxCyW2yh2Z2z?PS&9qAQ6`O_3=K3){^c%X9yiQ#KE&=be z8(deNDl=L!tYClX`(7#MLeZ@Aj z%s0DX-bPCcbc64DpQ}FmeUsH&R9&n2A3b-CnOi z6NOf^3C}`C;k2=rez|u&)f?`RYj@GREHr20&%eJ1e@XjtD0^j2dEw%+cSVCs9vAe^ z0dt}&i9G8LVH7z zh!#nmgxSnw9+L)uNzh1WoT%rPyB<4|s+(8(S1qqNVjXD{UDr8(ZU;X??d#tJpX-Wp zwBkdRr-BAGyxLkF-_kEiSu8xV7_!V+A?8+0Bh9M7$)SJyXjE~k)r#%-CFz!66oVuZ zEzz7Xz44zNb)nv|Ci(S?!#3;V@d^Rw0FDFKDwk-EdHI>HDlov$d8q1Y`GuU?>Cb;I z{r=+{m_9H|ncFO{sOUiDs?w(U-O?|lb^Q|hwM$lf>GsOQF17RnTdJsow1&dKJ^+t6 zP}!!W2vff@4Dsy~u*Sch?^Lhu#(L_O#6{?Zuvq}bE$}Av7TO01Lv{n10zvDkepX}E z*6P13q%+z%*`3QFqJ?Wrv{GwfOg!p7F8U~Mni@nci?>H#3;p7qs(dINw{Nqm9k1L< z4A2kr=Dk_8@p z+auev zLHQR8>z8&i?{>t~B$vZK7R^Fmun823Hh~+$@8J?;Al8H^#m8Z}Bt{_0B*kV0M|2}o z@ImBz!Vf!*E=85t6J#Os7Osys#Jk`Mv;vJs+QWX}Ctwh`2O5v6@Ycjb0#Kb%=4jrl zduoiDKI-Y}{TfdDkIrAWSo>0YL48j(OtvXjV+=L|H<542H$)7f!a=#p!SEumJ8)dg z<}`1afsHjR19v}c~u=jb<{xt<;FZSME3 zRW6zu?8>5cxoB5w_kH(lx6%_$_h(ixT{tT@M5rgG3Z13DfM75m%z%!;)6ro#N*KsL z6j9`BvW?QBSg(Gm>Z0zgnWBl;j?_A}@3ddF8?|+`Z8XuETy=#8(00?_)i^W(T3^jL zRWs!n17RrQvLM7mSKq*l|GH>LYaTMdEkI?<- zC!X=1KAr;}!DFIV((UO*o>cc-cMJCySDtIFySeA3=MXK@#dHdtOIOim`XBllokX)9 zt0&Eq;YpMsqnTW$h?&5^3@-mcw|mBUCc4MFue(#JIQI!pg{K8`)IHPnMCNjf^J9B6 zf!qQvUYIN804muhPAulS1C@K|q zm9dI!^&Zta^$FDi)giB^dJpx%iKIRoIT2f)Av2=+#g+=-Ot_U zJp1V}bSGvI-I}&~XwNJ8e(b^NaUQ4V3H^-TD05!RT;K!wNVbYy&mRUzF-1Hp+yO5F zu~1`30Ujc@E2iO7ppPQWw*ZPD0ml`zVgTt@9Z;vJMw8<(CAJZJt=ys6uDFIy$1f=% zL$1!IT7||UJCJGkFl-3&9X&*T)il;DQ>yU!*eRSPH{<7#mS8RTCecjQMsr?uf*6N< z1G2fA&aNI{z2unSyyhHk z+glxH{!%%-a=N9h`A*em`z=|sU0hx4>urZA-ZPyGk-v=!78J_CozN?YL|5QNidmZ3 z+M(L9s@6(hy~V4W_YLD)Lz*K0$>z|ea`%P-OX9B&A-NRiH_5!k>8S(;Kr21R?#>?Le^y%u| zz~>*|=l-@JHfT>shv3N}je?n=kpZ0o>iCZJ9qrT1Yl@+_PNhM#v6>yK0A(7!8(V>{ zhn>Je*-vjbxEctDI!d#o&tjN_^GAR;^kyMa=)i2j>!KaN&fFT;W%m;@nbi7}`z+Bl zS8oNPnby|CqPYACRbT8AL`ZBe9pKxsv2tH$J7!qwSh_fJ>EqNA&mndp*oWw?UO?ty z!J>uXxaOV&?lIRF8b{hyYGp^oMQ{?go%!ju(-w-SCQ=^PcdD~9+Fr+UwX&)_y0WTd zU!gI#D1Tnz$D&y!ElY<~EGXAid@qH{!%NRrFqU?1hS77K1(k3XNPsW|g_jbXx`R)A z!1;jOph;l?5vL-4MMZ}*;T^+XhOP|%8s-YQ5Oz3xzdSRJ@XPS|V%V(Npc$oYrk_zW z_TT3_-H=JXld7ER^03^Fd3`Ik*gSkIVF+L8Habq*zgSkAr&TPkbXHxncXZr#@ott| z2>RmV;rBvU`XcqnwVgV{ycSlVlSm)+Eb=0X3CHP{9@J%El9(PG!Hs3Vx!O^=);}x< zD_fVBl`SuCQx;n?r`V^kQ_19#_az5QzZI=5-dgk`?|t#r^5@mHJ+Z8VjbxlI$)jYS z2oJ%zc%*KK@3f%ZAt}Laf{>86Av+_MN6d&CAH~)NVy?stuCq5? zU3}O1D*dGbmXsBjZY$nWOcj4BT3UF!sJuA1B&bwb@vyQ- z^(R|DXPHau{^Y(w@8ZWm&50T6ONKwZpZW#_E)SX(I3Vyt(82KjwNj&vb!Np3jO`z% ziQ66n)*cZR9kn{@Vl7QnXhd{)bXZn!kASD%^}VO)qjm4KtZImE+;Vd7XTtKr9pOQn^vPwE({fm9~;lNt$a#QH*_*k245vbl52AD&LGC~APCg|h>7 zld5*iag4D8wrAFEmY-FYD#XH9yR92+jT~`QwQC_gf*HpR7EZQ3*g zX*y@B<$cL#o$prvw7{Vu0pXEh&WLGIsZphoZ^Pe)4~yIwnH;_-{O|CVVRT4RU}3-& z|E+%W{bqaB^$9Y5)Xmc0(kxaTP`)7^U>gvtv4sh3WWDyIgx8hX0Z95b6uW3RF6 zxB%WLjF!W4p;CAxo{>F-uLD+~4cHxo!Eu0H>L7dG))%{pGsJZHUL%|qv?44f3rgWV zA1O>1vIQ?`KF}Vp!sp-zkT*IO$wPy&pZGeWM3Jh>P%qWK)?)ho`u2uY!vSNOv7J}A zS6}brCfujHccjl8?`_Z@p!m zXnkpAtN*qZTchoB9nsVi>Vd1Bn|F1R=g!aNnc;0ZmHCsq$-m|Egk)i)SS_;RGpP@- z2K)fNhYmm({0`a)FNfyAuiz@s4Cg>^;M?$1_%xV`_`=(uyT}S?2QnGn2akuHNER|5 zJtk`{1+9lo!;WJgaFAF^jv{}MBNeO2^NM)I3Z+7Ys4`V)syNL6^#tv5b&*D;8LLT@ z1EqSW>8yUF-k_bO+OA)qTBvQT{;0I870P$2b;_HHFlDl0FZo81Mt;CI5^i}_at}*} z<$YIZ7t|JH!A#kMI!tUKy7;bKQ(2RR>?@BKO}T5)$@2JeiTdDN=$z|Jb{=!=bB5bD zIDG6*`v{xcnqnJd9c({qJ7HUHe{8#NE3>t?wX-j>wXx^ej@mQqAMCXp`HpMOU(PV< zG&S5+>1yYh=uy+rbPzL<>A;R)li6CFlN-n%5S&6Yv85Csc>~{pzk%(b2x`H$@=<~n za1*#WoCF_13ZW)Q3VZ>6jFv)+k=4*-^dUSF9Rdv*ktT67D1dRMiMK@L^6cPA^#$~5Uo_1ioaBhVv#yn@kpLUk5tF0#waeU zO^Oq0qvD~ew`w2h)OeAZibPdEqLTbZ#wtz{FBLa1NU;#@iTPqL<@$d@dGJt3A@7=+ zWWVsmz;eJKEftoEUHBN`He1bZW_jiZ8_T@)?4ldGZ@N3Wd%GKWwm3h!8#%KnALn~# zxHE*>W7j(*`!Yw7bCk`?dC=a7T4itV=S|I92T6oaZP%=WOZ~b;H@mmE<}g z&&S`n9(kU4Jj_+f)Z$)95$k#(farm^gNn~>#$eY8EiY2jNQlPVCyg=HWcfEMdL7*DSy$y z_tqS<8T%BnD~VML-ZgT;e&}b#CbfJtWQkGt@v3Yl=urDNCcBd@dw0L{1WL) z6k=(L1oUs^BkTk*3Ga+P#fRfpkfj)dn_xR}5V|3+yayp+cop~#tqZ2Y)8R>y2%VNz zgExT&vZrW(xE6TCcNHqQ1TI|ohpXmqGn<7tcN~9?`Q^!Br@8xjZaQ<=N6yFe0p~Aw zLuZBy_Eb7UT(g~h-N6nm72)_!U3BcGCR0bKOnC=EL;ZApay)T`JIA`+o@L|MLY!Jzz9NrcSz=jd;@Co<}dHR`Ms|XEZHs21oJ@!Cl;BZadpf_MSK+PU4Td)$AX1xL{`wGWiTlU11hdvmJS^ zTkb2K8%&C;7gOf3x{grK6?P`>^Uw|GUL+VL^m>2G3 zD$lmd8fjZ!o$hSznak(Pr=f!66D{{0n{2W62d-uEF*yTb#89}G2ylaFe>#$TEloy} z$R4WhWEJLse@d+Y*+&R{O$=4eRYQ??;(|g+MyZAB+Qo}K=T{lvfpi5Losq1Q2sb}cbUJ1sn2F4Jheyf_M z`l_5m99G{~w$?u|bW`LKr!i34gHUi!Bo6xq`w^{W3)yaYU6DxLV|`p7J+WL8HO#r8 zs<`ZaWgW{hTe{GwRvhx*>Dy~*`s@ha(DmRskFP&XBpd!oK$y#2? z$usOPcGfP*tCC?9&ewwO;k%`y^e^Y1Hoe14#nD5>zv11=5G9Yc6B;|^`M4`iIEuNH z3)IVWD-#al$aZ|XrlqmSxLW@~9g2?zU0^yO zj|IvD%AHD9VZ>&^ryxj-5bp7MQ4Q^Z3!nqiA3{E-<%e-^nET8L<{>{%)^?(N4lGc3 zE;JBZi9MvnQW_kCog{aY2E}@89exInCn8lx)bF&bjCTzC3_px6wNbxP_r@6SJ>BPy zsf+h(<1}ME!(4ryVVq&B7i#=w$kYzfo>xa`4k){;qm)aOQ^`uq14qG=z(T+XYD7rt z$Gu|@c_267cx&HiO|^BhdQ~qnTgx|=$$MbMQ1PqcF-1S*{p~jeXY+##;&OO-bqy8t zFZ2}pmHbo07c4JKDmqZouA;p;rgDX4ydA0D!_2p{6@6@X97%AtwzuXkKA0z{L5?$? zw&FaX6TVBU_Ic!;(IMjEM&m1pQe@F2F)`_X&D*Ux^w}0E<`=+6q zLRrrVXcm@F98^~8?itT}z1ICu`e8m`H!u*CkTkNC97DXshocw32%sK&*Y(ZCGS7j( z;p5;3-pVLwn5JF#9M$%P6d(j6lVxwamh41#IDMY!%(9iDroYq*u9LRN%V+oj>h8$W+hN&Unl?)=O=A<-Ob6>DA0o zOFLgROy#2_RgINtiWFiJ_5^+gJ`?{DFg{AQRga=~${qwA?F%ft*}Jk<<=pbYWgAP5 z7B(sTBY#-li=4sPm$Fi`+*voWwq>r&e2_6B>p~Wo-94vY_Uar({-8X+g3_Y=()y*{ zD(+PImBd#Zpdj}@v|7AoyIqZP-N8ME={_c{8a>T=i56+Re3s&&vZJw4a8dXe|9EmX zKSlN!{M&bVXt$920eid}dEGN?RaBunp}C45zFoslg^u%iuY8WxC5DkD$|BN1{-a)J zbeS$0wkwK(bYZ)A5txj0z|!F$^dpuAuZNbg3mtXr)v^ypBPkttD+F;fJlEt^PD87r z`loe>TP;nMZJbNE!&I4Lfom<(i$5hDkk2ZuP)s1NqR)ZRz!LPja*(dnc-gSQP;B^O z2sR$oH#IKz8sh66aLm7_e?PxI-bua*zAL>C`1CUscpWx%@S5WVdUe-z*7j26D8dyJ zh-$nMb`{wJFM}#%%b=2J@44?9<=RHgazM6?mZRp%iuPrbioX{W7IZ7TU*O39EB8(2 zicBzrP9KrkCF4MP-OSC|Co&zG-{rmRrddmJ%5qK=6c@ZNT3?b<+@mb4qC>?q^F8Y% zd$J?b6T~#5M#0N5n=n+ixdOs`?fBqU0n-DLHA&!ZM6Z0M_SIkW$_UsT9uVmcRA>^w z`S5-9pT0vPz_2rZkoQ=_Pwi0ECOjTjY8U&E!SMlp#_427WPm(dJ)n3%-camT_S25k z!K(S_aOpXpC^mq{z@6cN&@yQ;Fb`-WlFR_Av%~J3!OZ0~!WCwjXMt;rYZt}X7Fj#k z7Q1io@j#9c$)K)D?%Q-S8^eDP&Vn}dxk5{vMA|~*p&U%FzMwg+tE>C2r;I0zZHy(l zJNkLX3~$0G(Qmp>sP7Bk?mi8@R~tqBJ3VRmV0decF&;DgsTriYil0Zvpb3Z%YDTWY zZ=lJ*U;Id>Kc#T64uTp^eRr&}U8#ClIlZh~$%P_iK}^w+VtvWvqPBUnvkEg>X6((r zkU2OzC#z-F#oVNv)7iH&&u8#i9rL#r;>G=nGm3pnPsrayMa71yOv@H4>2gpXm_M2J z^dWAyeD-e{xEH>!7@;3RoL9!<2XK|?L`Y!m%i(U*VEN12r`V=jsH40`1~rdZT{|&? zG9dkRg7&?{aTU|Bz4u6z~zJjD!8x`8?C^S0aa^0J$;9kXkMe=mpkMz5WQNBY0D7R`9gD&=4+!+kC4W#}cei(;mFlyR(2l(Eb}>I7mW{8`!obSAxYIqKo6OyUt{K=uHK z<@JA8U=obTt1^E~fVxRfB(qp1T;fv&J3mSq1X6-V^ymMk7t=H8CUP&_qI2jAyoIY~ zt35qjh&=E2XZF!wSr4~K8YhKF(LBzt=f8^HFpmtt^0AeKFHVvXL@ZfOh{~3l!`gG& zz1r29*4lx(OPaO1balA4i?*SbQ~#wZR=!dNsI!zPc^{jODA94~IAl3gEDZ+Q%AU{L zm@XcjrzhQjZb3hBZE}8bOta3cdT05|a>c?|C00$YwwLcNt17-%Y$+p4mX>;z-YEmi zQcKFfX?LQMIs~tk~?hY!9+*uAc2U#cyYKQU7@In1Ny& zd0#9*s6wo0V|bXVlWctm!<}k_sz_O+uB9dPtM$*d)0IDrt>t;jMPFLC*0}Zm;pi;D zqez-Q-ebG7E^!w^LP!Yi?(Q5ehjX~QyW8O$9CmlOySqbhqQq^pS=X`t>ir&`CCTp0 zba!=i&rbKR{uMY)J38=b;GnPMcBod(hJfwErAetH3AAWN8;s19|3WF$K|hPX zd&QAbp7>De2C<_Z$iYN7l}8##p14b@DHk=A`biq(3dTovlh2bar0!Dd$gi>jdOUfT zegH3;NhRwNhtUSYL8OaFERlMPeYqFhS#CAI-G9ro$=A*QlUwHcUNz0T!r#^P(l*Gk z(s9Fn(7C#5vt_B(YpG+K?p{@O$U4*3%JfHNyd}n_bRKmKHdVJLxQaM)>8Y|jUnl2W z{(@_3)dSCKajSbol|^hw1^N@sE^e!aMR%RKw&kjpK}qDGvSD;+*ben&G7c{Zcq5yl zYpJTuUNoGeYiM*q12o^16LdoZ+9+8q5s+rc(e9G1Q4LZXLYJ#v$=?PRYA>l@DfX$- zHSJWp*<~_;+0QnWRi}SZ9Tj)vJ;^@_3#{SU#hYj^n<%SGKBRgvB4Go@|GVTTmZBeI z5)(_Ci09H%ahcSY*g_;CIn|%tEK4KPh(LHkF%g659?Vm61Y=_gs6VJr=m_zO*nvLM zJ?V|OK$OrtY6P*8mwcnRTEu)}EIhS+kPb;a#Cg5+$4RCB_xx7!fH(|RR~JaP&_?c) zlq)qAE=h;@t!NYz$p7#?BW+mEcjIinFk&&$!)-+qh)14j+-Oqoo5YoHd$@N%)*^1X zV}$Ta*yCR2=_?*|rQ;%(+jds^?6{3Hx#Y5z&UAi-tjM+0{L{Wc8jrraOZa(CyX%85 zSb8NicLlnJ;g-G@)KSk>ALv)OKJiDrGNPNX-P2iCpHBC!6~23Jy2q#|Yvf!n?;TRF z*v$XUv!Jw)$#kcy6A5y&{3_pG^^-V@zlV;NjLs{?@{(#Ctz_F$ zF8K#)xB4(UQrS{flZk~jB|SV#FVt+*ZTC8uuFOznQ@PjKFkpxBliI_Db86WtZ6)gE zJ;Ig{E16%!DGCT4>8gApZo!Xb3gmN$noMJ~4iQXl0llCP-dyQB&b;kN3-ntb0e zWsalN{#t*D+Rv>vUp8!#UlH31ojnx0!9ZJeEbx8RtwD#0 z5jX_TWk0I+afgT=LH+F4eW~F-_dMKJc}6jfkMX`Uyi={B%B$Y-J=s*fThpa{CA~rI zQ#JDTb-oC>3_>meUMrUu)50>SqP}*A@~A>rG1--=S*WOirwETqn`+#F-zvV6!?2Sb z=ilQx%U9wy@=`~XCs6g7(730fiIUH0WV@+~9OLgid6%)~rHzsgr)p9R25fLJc&nkQ@4c(&;dIuH5pD$2Rvm5~)GOk7|f zKc2E!_j)p-mb#~#Z;DG4?>&9o)zrhBg^pQ4ym^A9X2@ZGgy){{lp8Kz=iH>;By1{N zX{;r`>iO5}XNI`Kh+pcZ?s1-Xsso(bo9+k*JB4RdHMHlDDK%#1huT}SCAv9H?WH-_;Ra?EWBoJN4Zk-!rnyc8+_K16uio}UGail z<{TKZzuYLZB$@K=_&Wz~Q5dPsWD{DVi;euXv&jBx%m-;rnO|3jBZv;RMLFV$D|AxA4^TXnK8L{yR=gSWbml(h+N z;Iqr?2=$~!>eo2aKcHey)Mzf+v6Jr3bzyFDRXB=1E>59F=U>w=Q0^|DO6_sgl`X>0 zgpIa7IEP*U!t_<@HGxgCzBm( zLM}VE2ClaT0>^Z~c3&6nOVwm}_pvjmXR<_Jg<@9VrHTOhSa2G3&Tf@m4m@nr;gewj z6>Y=nQ@tunwY%vW>Q2Jul8UgYdW*HGr-e2`eZm*(b16xan*sXAM#8b;FE}7n2)S&vH!prh7e-mG{;R7dk8y(S$E6Zz3Ue~R~`^(0w zf*ds*@4{0!cPS65Gof-z=~ViP-dy%Um*Q&c83(iuZQTv=|5~9<NN%cm&CV=NDXPWmqJPh~l#K}G|L^ohbzrkA&7z!%q5|C{j2 ziq(oEPPeu-TjZEcHTAC1y;S+ESGXAE$pDwdYkw6}>KWlYsdULZ%4d2wZ<)RW+tZfd zpBNHmFGJ%)B26iDjP45=g=6Wc$|JGw$PrlwLx<5LHNREOAm^zQ*|n_rt6B(e%riYf zjJmh?vEdB&(>gRf%Kd`ABdZ{s7Dspnue6E61w61URxfgPR5HXGGLQHOG2|!sn)<7i<2AcwBg(Q8LM$Psy@}6E|Dtuw z2#9v9r(No;<%tMSEIJ=5I!8%S+SrP1#7%W7UTLipbl(04(V1P%-@?mXTo+*`}nhaTlA(02hA!J;3;@3-Z# z)uk~14b<6nDTpyQ6=!KHyuah6?yI^P?i}ecGH}5VgSy#Lp}RqLEw!=5bgANz`Hpj; zo~LSfCtKq5UUIVkFFe(EM>*G*A{=l!&T=t0aJK!NR7=(qjnu6!_oz7OE|o6(VlB|Dlyz|q zmHj|8+d%w}Xy|QdXieTO8JNTst)tqh{dhaSU-GG%I1@GZ9BWk9@in(v&+^MfgRBv< z@+q>D=#$uoT)?ekM^N9nZ-R@dWM|n|s?vmpVxB&!{En(W{Zib-J@KNShViuw>=DLWB)*9(Chu{aX7V>KF`nPeX5;YlGhoq%Oa<55JvZUbpUg~JW`3|VpZ?3 zqvgri67spsK^LjqmVcPT^0Bs1wl&kzwn$N^Y4_`K@JcG&HdnqwuC|scPf%mbg95g= zoa7kpqE1(O*YFR$w&-f)IH`L1F+-Nr*ez<0lw0&K#2?PpTIA35JW{y$DF07{RkbR* z>c0qw@guabsE6Zy-2|w(X0t8E|tDSPU2m} z7J7(pG1CGY2sLQ-O`taULsgr+v5X&=iBpOG)CTE>aEF;M?3N|Cwa~i2bNJK8(td zOKeOX72A_{#iQg*=`cj8caa{Gn13j9vP&YHK1$u(3&{rUjGSCq`1vLJGK%Fp<_zIeWOVB%f8;!>Q5*{g#=!IVr zNm3qKkNV(xWLN1IaZySn+>)Buh{laLL62VeOUcR&x}liP6IC|n<9g2rJHzJ!~g92hMg+z|zU z?&C>l$9~W<6hJSr6X-|gf$CyU)Dz2y(YObyjvApFpa^M1#o)2)@i%k<&xAf140@C; zKqoQ@{RLOp4hoKskQOM2+MsJ00ve4g;mn?(8Q2_D5B)%1MWM!M1}H`@0i8w<)c7yB z-aHfwYLRo`x1Gp`hk$sH(ANKHbULA*D#50cKp`>~h?0F!uRp8hoE@gZK>`w*-2*9awV(t_EtAC7^zJ7FP%Bt6-!jqT}GtN8sd;Blj0kyq`Z-Ted&?`~s zI{E|b^cDJP94L0SgPwecc0=!<#{JPC)C?a$%keb0#stvTTn;7A2R|49{c8hncVRtP zbSavMUC?q1nv1K@7#IPu;DJ2agu{sX5>Gx6juY#NNzz%uFZf|3&L-}mRH76#N=^6% z_#zFq9S#39s1SN|1Hqzpuv=drZv!9Of>lHYSgJbo)L`&m7Dh!AbX_XNE%D#d5Of84 zX%C#s<5SXLbQZ?-JiG~xO9js!3w-xp{0UvdJ3vMC0PaDIfi`_cQTQn6XxdOWbOx+^ z3D-lLVRUrH2~elsQ9MqEIpHB5iskq|ZiWwotvi5r=ryp#XYekEG#YC82Dd?b!505O z54-@Yt_RJ`Qz#hT?}x8~XY>aD-17e;{1Diq4a^XsL}z>u`hNxZ@LTYu)<}aJ5WD~1 ze}>|bL^~XZZle0&S&hN|0*)l#0~dT6-4z#-$zn3-Q-W2%_KQ#!=z_e%xwsn;&-L-& z#0~JDQ!qy?Mmy1e(3*32AGF0IX+X(i5gq`n*Cv>4UVxQ40-LZ2J;MYj?-YZ7O~w+^ z;Q$buoq{URDY#+WtaOGF7)5exBjoCzhS0=ry{B4~@W8?HMXR9-tt>CzQxDy}8P5clvjLJvAF zLt$iRqUX{&P{*B)hT-dI4#YRu@juc#)E{X1Y^WJ4KET~YC5+PrpgR(U|0FMG(o1uYh%iN#WuSeKXxYIr(8!G?MDcI*R`N-&P+KV({|@@RN5lh?M;bx=0W`%O(6%d* zI!nFrDRI4&DL%v$%rW`Y5Ml?gbALz~_!z!M%%Gx9dhpQB zL^D(!y_$*sz%boQ+PFJ>bl(X2m!}-M3!?n@#!M~sHB(;Tk<`CQ? zw}8)ICxWP^OsYJat)rf!?W9*3!i)=z(+#NxT0chLS{J654F4Ld83!64>j!IJ0OgS_ zzseLrEQW@` zoRHvt?!QGI<%f7Pd@cQd%T~&>wYH!psxD}=_nn)soLq9TG`A|u^|vsZ3R3)}`XGax zmV3!uJc?h)t@o|;RYNjzzI=}UZb+l>?;+Q9Ta}9_AW;R0i@;sUHnKnEJ>_eteW<>4 zL|Eu+ZQlm5o9l`v6*ed|7tMqi>$kQ}j!o8eW%>E{f8pG$yh8t#G7M0TWtHu8Qn58V9*?;pjsNb!+`ucVFFFNyo##=>)1!k_my*F?11> zR}Ye7g?FA+mdFZM@!OmSKmJU2zlnTJzj3{HefgO2KL2y6tURK`o%<}KiS z6jyt3iu{RTYFJfNi#S|ub0V9ZQDaq&3yJR&2iM$F=dUJtt^RA*xc%eS^_!&C*;{>0 zlri*SpebOa@wCCCpR3uUs*?Xl9>Lk(#SV*Ud-1RQx%q_!zm>(CD{Z}8mt8i`aaS)_ zk$tDr?N$j(NPvGdIYxg-VT3LEuc+x!=RSB!JjSa#(SJT&uuK77^mu#K$p7~|vUzX|iPBzY->8;L>@Gh}Fu9#i2svzjslZkP9(YDX=O8xda~ z6A_*sMC#rv)>ExejI=`>gzHNKq#*xv+p6;6d6gN{zfMix^5M$+G3nL5%75rHe#;Ec zUXryc`*zl!8GSO2Wt_^}QmiTaY^!wt?U*b4Eele%0Hx9t9L)3ycu-?ZT|U_mLdce3 zzDcbv4QAJ> z9c5H47fyJM-mTs~zD9npRL0bnKO*PwG{g&KnN6kE+O2zUKT* zF3|VE-P$swyi4ApAOEKBe4~1O{PmZ2-O?X^8u_i_M@m+=?5SDJvQA~BWRJ})Dhw_= zQn}vI!j~ajgs1ajDwU9^3rttzBJDZl4^qQ zD?b+%q?h!rYUcZo{7q9Y^mFX{gt!`qQpeV=nP#q0mDn=jM77#U_ft33U(n=n^Q+B+ z8VA%GTWxsgT-`SIG#NmCgy$WKxF9*jO76D5kuT8xz4B;r-~6F@H}hMTt}+)oy7Lc+ zMY320X6BL^@I9a#x<_uI&nhGJZ$l@?DB`JvHqrS}wS%u4PN_yymvM&wCD)mI;G6A! zY0ay+RK(>>`Z3_+yw}rT8effl)8^fskL^EK{~rExP}ZSrE^AJ9S$6M&w30BBt*R1; z*~b1z_>Oyuf>?fqU#-`stDVNcfT@~ux>2EjMLG3B>LIF3RhIxmlqG3b^gr6BWC!oE zs>s|a-{=2WlwDDN-(LsPcpM{cF#DDFlzwJDvlO0KgP48FS^9qZ7Gds0w(hD1ZEAax zq{zzw;o6aG3B7{k>F#V_wxw(c&fv~^>f3u&tt|QVt3yWTugku8KHvW8__;K{M|o-G z{HizRdleO>8D*bLpfKPG1HI%$MrYWg*pfuPX2)6qb$8S;r!`3HQ0q}jdh*{j52xL# z^QKN(o&Bjhl1{`(p?!=iSUbr{Z^dT*9M4+!P-kCfPrJjh-(oS{DvvH5S2nVIo@q!` zGy70aroV%5T?-?Kc}Fur|5w1E;NL>#hBgXb5HbwZB=#!DG8fTSZiBy{ zbEWOPDW!CN!Q`A9KOcWRmVW$WqmRb)PwBRg4L+BC9`eKVvmjH-e)8*P{_Xtk#bFf< zst9|Ir!M!0R2#FzCt?)6mOV>6o_`M)q%n7?hzwlLTE7bu7%zjic!~;B{?@{&1aIrTR z<3+Bo_S@DF>jDd1#Z|s2Z(drnXm0+?+-kY^vNN*BXTQxEmNy`;O95H9s@POAtMojoDD005_%=QXp0<0DgNQ2-TX2|Z zA?KMm_+BE{dTYxPP4 z9k9dr%Fs0+Cnzs?RM6U>n4kkeMFC%oI^#C&No@!9zsj@n2}~fwNn?BksG@uxh;e?s ze=Ef926}sXvz()yVNR7Z6QUQlyUw~kyY9MNj$y8jj=fb!EOi|1fqK4e8*GoXA9n1v zH@6wBH>$ENPc7Xm_f>o}pR7DlxymA%CszzL52=c;cvzlU(X+gIWkUJi<%?|Asy9`p zitA?Vwz@dr_>+8xJhcA<{sy`!d$<(YHHILsiARV^_A67JokOWqI%TD5l;W7`nC>Ed zm)&8=QoffDQ1@fM%0d*`8c{ZrS;wl_OY&p7u_{`APK7_6ls*f_T?3^~K`0{F5P4gsCG%Pq#f%~EP#Pet_QQHZ1^HfD2)S8S;Gg1W zTp|hhniP*dkiS6!o{7>L;xhF^G6|Q6mefzs?(8ViBHa7oj)VFdUiebn$L)=Q^6BnrV;Si=FJ5j~_L#9bj z^^FZ_6rn!LPFGFT_o4q}7HSSt+l`Gi#jL1VEPEo~M!A#|ls(zSM7}bK&7+;{LisP{ zbRf6v^k{hwrDId6i$pIatP0A`XqqvX>E_IKcDUvaUO;oKSN5IyfqqxlS5-)9iXD0< zMahTIf^w@8wEZ2m}m~^ThjMIE4U7`O*WYv&F2vv zR5xh{A4|5z7d4F}Zw@13B7D3potlo#V&BDt*#dD5?RuJdnj z9rRsw-Ny^i8aJ>c7`KaQAS4#iR^oJJ3JeA;ioI#C|66Z&?90uM3gO4_4nSsjVQJ3EhxD* zLVpTR11&z5zM?&1o*H`Gpskz&5%U6{rQRZX38#FiDu~Q-B^q|%hGc=fh*-jXpoSU< z{I}mOf2=%2oEH1(YLS@^I|GXk^c-)J_N4c|7RxoRjch9^hiWB%M|AVc*fqiu`VZMb zp%!sQh*AB=Z1QP|Wb{}c@5-`v3XH-ND{ZnF@&aEGsr6i>`l;-;6e=;LL>ox~Z zax4|!`I^YOy4HCmMK5&4(oT>mQ~Al}<UriLjdinpA95nH9T#7x}_+Y?yx7_a)NneG`NzbvtYBs=F_N!4Ya zI@U3DH1EA-e3c}trY}YnJi2YJPD6S@3O_At8n3$g$G)6W8t>hUzT+LgC8)RYwpOp@CkD$g9 z;gU-E4x&(RYs}~Z-$SI_wSg1q!q-$4c{;(0Z!d>OGZPe{mrCcQ9>jUiDC6d;8vZ2a zKCwotEOCoY^+Ef4a*=EcGVuoMB04*$+pmYpx|-)D5!9cG5E1DTEM3Za={^g+*%-4R z9g{x6x>Rj4LMeLR2u04D?64qh>2{Roy#VSQ1#UGyD?JbIXG!*L_J1>O=Oo1j zRUh`1b$~2`=*{%j##OokO57V{8A1k=;oBH^$2?J142m$-(7c?%NomBtr6#I2vr_$! zl*POKnX>xPVOde^dhH$3FTN-5(9zC&)hoPA)xnTd@`P)EyrFKhtvc&gU-T`|5Y98K zTx$@UyFVzW2i>(x(i^F>B8=A&>w$`>ue<1+s@v}wNX;RY4s)p8^HpsC<@bN&ulbku zf%La9rK_;4jeaNI$PN~r7E{my%M>~5+pD0ZX`Wx~TuVXtzupG!L;kgrLR(mQQ?<@_ z#hxrpV0#+_^6pz2RPSIhTiO`k77sC;krSouJb%br>RMKe@XeCGt4!!<#VLr#FXdMd zvpw|%7pbuq>E}9i{wOxdx|t@(`L+^asiuA5ZipQBOVymGJa8&b|Lc5jxqirC#4ZO)=i_%qScA48! z{Uw24UoER>t0gDAn(}2?iFZ~Q=NnJfa6T3r#}73RfiDI;90yH8xE+iD&Y*ef+RE~9x)wFhw z3b{oy_O+}}5l6SSB&n0NcZ3j}AaoYxnk4x(>tv};;1EZdafDN_3kjb*UmP)X3x=X} zQnt4~@kz0UigJcfRf>Q3D?CFhXsxeYj8YXikKq)bnz*XG;5-g@+(^DUe#RUYpL?eZ zAGQ6=$vTx|qj^O{{ld9A8}gVtfJ)_jy3Em%MD_)`H6A}7PLei<=81hbbyJ+ebrHSX zRAyAsT4lE4N%>l_4q4*8$&Mu^6u!`XX9pBM603()S(dn-vfH=~j_1k}zR-3KePIsL zN##$~#WHLDfj-$DR0qfF4!RvH@~TO%x2?5@nHM znfHl!1;19`k{vBR9C!((8;ZQXiU&arf{vDa7F!ug$s1gfFII8i7;N8UYZX6F>{qo@ zcU#ri^@Hym{88D?q7>!@=!}(x7P!OIQo+cyZ{kt8hG|`{UB15*50wGH zINGQZwic1ikC(SX9^|3#fLe-6@tIpng`o@bT*a;8;Lz>#L!wV*l0GY_S-~Z?hitFm zVPTT;w(^&?S>O=YA7X9QG43~Ju{6-VUjHwD#3IJsC}-TSqm$gRpis0&d&$ySyWKn2 zbu4Uc`5Sf%tXx-9J56!i{s0>{&HPkrrkY#F(^l0x)Ww!b7-VC;rIcV?_WcV>#Q4j) zfIgEyCZ=#Bd6V4c8>BwsnJP5nkusL=D=)0@$}Ma=$5k#^v(j7Y+QaDlKlCZ4=6))& zP1!b1qtyv>rG`F=YpR+7`IsL14+a0{A74-y{9c|`)RNezIYE!|keSZaWV?{rmTO!N z{apQ=`_1!New^;XZ>0`!2|-QFdxX_dbt|f*;eplNGi{aOr|t8UoA^!qE!BGT&{HTM ztSoblBX6L8m?l1X7+-J@5s|GWdD&tXhkPI!R^@YmMXRhX@dO`%2Qk00Ub0?Qx0Yt+bQi{a<=K2&Mg0I*~=8j z%Ipd3CnDdQD=AbKSAXHMQtkgq?iX63u4KGtqQT+sXj&XIz)|FHkM_WP)yc6?oA265 z*Yx#MeIWS47Eu&Yr}&Sc9sU<+Ka$zPwIZ>^Rf8&KE;>APEqZ|GKK~}bR9+#!$UJpt zYI95`W*>o{&~ASZ`T#xH zKN|(mzw!IX$!upwH}U{IN3pFcnv?>P+@+#loTS<>HWM<1kJ3rQ9miB}zo1)=eX<|K zMLyR5dthU~-K+>b%?02-UP>`-+ z^m4@ruD9J2{J=c`_h+toYN$>zaZbJOeB8GZA3mu_MuB3YPo}NG|MdN&lv-ES4P48p zcgCQfke9QClDF(*>Z@1T9?7fFC3lFT3H7fBvQ)AAxg9`KK9v`97sN_+fwczJj(s6K z;*#W@{V~*0g=nRy?;54uBi7IkcE^Z!Wb<)b=^2-x+y#-d<25l-sVz^LP0w}&Fau;w z-7BccaE~3VhP@=$5cNdw1HQjuoNYR1GyLfsFVX6ImQKo7^eDTa{MUb&90r*cmk15n zNu0@hTmQjP7r#_4c3g**>WRWgs+Kg86>aNO4Y^$Wh1R&k6p_+E|1bGseyuc$C7gHI zR^JWbWqU7VqG3(W^K1txlHW@IPL=uwP(0+5SjMy$qXmLlMJD+x*tXsy zOa*Gkl`^cbn);KgCbNh`iR)rHc^aPG#u9;2b@_95cXgF(u_DIzi@ryk@}AR0*)FIa za;urS+$(aNq+s6i9Lht>gf8-GzS@e9-f(&<`A~!`ZS-oP2dHkv9B zR0;&{r=036M1fZAB_IUM+mqAbd2;GC(*-sL|h=Tv>Rpd zznFvKPw_F;g23DfvKV$<`cZ!i8$qdcAQ>ULVP|p;`V*L>l~i+KC@2MuK(~b{bh?m* zE}(f*Fxij~V3fjIQVB$a0|QA#PZUO>)x-~cLpVfsLkZG+X&Yfi1BJ=tV8{|0iiS(y zh!Ij4ktY51{~0!~5+kJ|$lYOwJ@`ziIx$Wf2D_+vVt;fMC<#v5i`NmiA#!;*P)cgx zHUjY?VwUt#dP6W$KOk6uUW1)|*vH2;{>Qt(e)Sc2XHVY3FG0kZ5j@*ju?QUW7!3(9;! z6ie-i#h4^=p!FH3J&;UJd=Ts~j<|`3K3@Rz#%WN= z`ig!4w@@3%pvUlYBGf(%)q~%!0fY1rc!BqrCW>HxT99@?4R&BRdM4$={<{?vA9Bzi zK#!aU4(BH1B{_;3;N#Fj1bf_GAT_?>K0wa21NvhT&?}{&xc3IwpbL=Cm4%wD2Lfpq z?6md*z9S9Q{C^(FD*X#b>fo5>K$heJHFg$yZ6Gi*^Wc~>xG~hN5Abmpfm~P(R^9Rc ztj7i5j;_I+c?uYkKIjQP4Z86xFi9?445cc8nmG%5=3Bw43n4S@|1uL3@Fd&;SgQZv z7%y-=g+M38!~YS$LH&kq0h`nw&A`Ke*)jqLBmk3f4Y-qdsC7KL3*=BW@T9juZ19lt zi$aM&a0$SW9fUIy(Fd?dBVewgf$SiG#nON(mJiBFgdDpnuuLdwibN>2843rVNC9F> z1jeK`oI#w0k6^?2Of42uBr~=raN5DA{&~hJqRtIKO32J44^K?Mb)da?@6l@a; zxp=Km|C-Qe|I39O2csgEMYmcS=UR14+dN}w&Qu$!+1PAv>t^S|87K4^OiaBA;h zoXDY!m(Wrx{$D+!feVrW6ZjSK|K5P(OJNLu0_w^LZL9}gLj$7}1eVo9T|Pl+#gM0& z2am~xcNjQJ4OSBVpQ|c|_A8;@HuyXQ+UtU!Zm$dC2*uuT#VBZVD>%-A`w=#22xI_W0(99m;DpRzw{}3Jh2zdZl-39WR3&;J5?EfQLy{(r9vg)$oe z-B$voH%HB&|2T+;4Tp1jL%%izHf<3wicYZDHvAEM)dzhr3D~-3FlIJ`1t#H(=n#yJ zpK#6BFp4fg346g_S7F8t0RI{TgoYY?Mh)H_2mI?&uuCgAZX3P`)YfbuAyR>ww4p7a z!1NfXwU4+1a9=}F8{oqfMowucSqQ`lK{SCD4k2RjQYi_v)ZLJWc?cQ@wBtG8NE(6_-{M7hr<4P% zsZ}Jwifg5Y_zG}%579Dd4SqwM!e;Q@g^)vR6!8tOMz9tNqf!m`6ra?ASOk4`6ntVO zkV6xQ|A-+lTVE8XQ7Yhszfe~o5&2|cG|X>_cp*_CV)74Z8qpT)`47~$6XZ{xgtTBi zGf@Cpf5W6nz=KTyt+`<0CG`@rIt`=T)Ovx!vqT*cK`j^Cl4i04wN#jh-${Dm23jrM zf;vv8i||6}Dft)S0A{iWTqP7Tbf@4sa3}eM(jjBk27Fzp#nhKpi-E*4=|AeU*bFqT zTLZCl74)tSB9f{D_t^$?0%}T9(jAEEcqOe69{}eQO!=4(z__|mD{=##D9Uj$HIX`Y!peS{L`0o4z$B;TQW;$iYHX`%E1#vjmHcnDc2 z2-HalqP|g;z)}sxU(z5VoRHAJq*-cAZU<{@l>U)`Q^Lj4F1`_DMmdVNiBr)bDG2mB z4v60oiPMBL#8XhAYl$O?KZHl*I;x|nqBKC_Y!W{ZO^M}@{q8A{a))pPIfKZQSaK%r zNM0ew^GUP;c;@{$n#>Vv;znd^$Qd_MdPtEb3c$q0nB?ub_Xyw8Gh?F_yCq!86u>S~!bmlOnMm_8q)P&wN(S(_b-e37Q%f z8yy~RPcSB}N^D)dQ9^vYIyx?VL@*n;Kd?^F;b2!#K)}F&j{2*rIm#6IF7lVuOUUxw zawR(gtg5Q-RpV`A9KSmf-QV2_uD;%nzQ6nv_)xJ2P*gV9kIZ2f$oHv?x@^5k-%FRF z-mRJp`WiXRK{6k{M;;eufSPn|&pYRC*8tZ;M>hwuRFthQ+gIAUq)~~xs98~Zal0~9 zx!bhAyj|sAcBS={`4BgU|JU^q)S6Gay9z#bS{hTow6Ed6Uvz7gY zZIFDpQdb_F8T~MBTI|iJ4PlEy9!ETg=c;dt?-v`FkXqwz+U^Dq8_MdHq!^MO#-9#r ztq+Ar)P4MI;hS)gYXcb)-n-AcU-`QT^?YZYo$Ni#K2wxwS@~ZTY~@7TRc2ZKz6O{*X-mjqY^ohw}FY&$Byb z4Eb*P^7V87&!;}0_!gOYBQqtF%Y2-bmsRuE(Y%)Vx%s~0hvjFh>N`4n9!Q&{XemJP zSukXxxZ)dU+#Usn$KCbd8~F+tjtQyEiA2PdRDY3qu$4cpFR~l@@}9F@;>TsAq#6n zG>vXErbTAmHYtPCKGi#1Z%FFZ*od%{u(;S>$y`d`n%@$$;!nk2iA#&9tL4Ob_NS&< z<=x6Bl>Sq2H1|keRE5UXkRKzi5LHrV#L(+xGU}r6)>n(aO{|so)U?rCjo(6-#Dyj2 zrS?s6Cccgv5mgZS+%Or`wZ6LMSraVfReLKpmt_`JFT#bl3v=`S%4+rPSUUIN)d%MN z;5YkU|9Vp^o&1@Q->S5>Imlk_{^U1GP8@~Jpt-sZw3#QP7&1X_B{wl01CoOh^j%e( z$p!cp(w=sDXj~lOh{6Xx^m3 z!=yhV=Y?zuzZ5nyXu5HoVN}rhsIf`aQrPO2@Vua^z)L{~gFsZr8Ji`0z2V8!CpDg) zdid*3^8FRB`({2U399H`GOMtD`7zI4qLN7GYCBKarg~nGjCN+=+;DkyTiq3{-gW-e zeRbEj?K`zT(n8ZzUw>xu{0L6-oDLu!p|z+3t}ATx8#q5dnIGY4Vf|HBRyd_#a^aE! z<1a&YYR;0vIJ4aUgUV3dGae34k1tL(q-{-`P&1?Yjd(V$NzBLaS-~sy>owoC(MChS zTm2-+I-iH82=lx@EYFKRX4Lwe{{HowxvzG<*z~;h3-_C4UwUSp%}XolUs}!drs|T- zVRzX2*;?5@IQMzNxPfA^)P(3DyQJ!)A8)i8R_R-7)vD)gxS~S(<`IPIe75tL^uHVK7xkLf+t=|| z6SlT2rD@{1$fiN{bQZ-;MUw7IV5b0&X0d`~{8R_IhraE-TG;#jg8QRxHn=tTR*mbm zt~I|C^y0<0CdD~b|2YnDy_9{!CnS7Myq(ZB+7vn^yg_tGTvhy(q!TIAYmaU4z3H76 zEn1{EZPVy$osl(l39(^z#d!a;%B}^SaxP|~&;zRu=Og(I@h zWOU1z@e_UD@$LLiea^}J8pSP2P884`nv%IM!j}8yOPNx2jX+wBDdE5&}y;$=Xm0r?D*H-+*RMX)D{e^z+UGUH*ecq z(YtK0C4$J&PYPLLSWC?J{Og$D`OQ1NYFW|Hynxaq&ugYwwM8*eB@3BQGqv@&9v}R4~b0<|q(`t7D?Xl&l6(4JvB&OR`qe#hs7Nj9wA_J!)BGQ1pLsJrc`m z)~PilH7~hY4SizWxDLU`~?Q!4VSTHCif7TE__!z}^k#ERh3M@8L>HWeq9=b48%M#K93 zU3!3eyJ2{MUw=>4Mm7U&EkV12N2{0Oq2A`c9elJf$aB;ZVCn9GHBiMI)oWI!8XK}PsaJ#A&8^L+ zHky;RBe7;|S=ex+Mg1DG(dmHxIpI6O)#UPgKRp9|2gOXX4H4scT=Mhh)lXADzI}h{ zwey+kS?a5$pStISmIc|91&xvpi?4pNR-byw^^CQjCC{loJN}Q@yD?WH=Z5+NWC0t4 zFGQS=DU0nJTR(Pd?CO}nhnX6aYSv;%)SG3|m7nTQ+DGf}P9!H~f20{6N&exX1B&b|x~OQA@Sb5ag8Tw+1Tg=Huf4fh`+n=EE8nri zv7fqR?|07DujuFX1ZVxMMd`y*LK1)Ym>nPVu~C9sYRT+{yt3kNpAUS}B{o0E>6rlR zIgujcBHovH7x8w^+chz2f}XfCJzkrpHuTK!@UnMOoHkp5#^K+T@G9i=TxvK_6Q}f- zSzD7M;*KN~%cw5~uo29|cGD{k$kKX5!LXcw!|+~gs(#03=6X0i zcyHiN&&Mq8mb%>IAFo=DHeynG*^lGiFMNIR`Q<2jx8JQAw};(3^w{}oQGA<>M84hb zTcBxZd_+L;;>8MuFE3oZ$k^~d!Y3DM6;#OossF;@9YwN>l`Z+QCW_)8T&Ifq`ygvOLC8kd$;S=o)>$gpG9|ibN9WPI4Zq*?n?22tWu7< zRdgiTAGp0BL->uXBk5nKT}r)@lAe&66qx)hwYzgR$)ah-8_biodVUT|EAgP{#-N|w z`zd1-o2to@StFAEiYF=OGt#oVVwE%1Sx>AXOV|!udG}zS;r@^O>-to4s~{`nyiPxmTr{rYYmcY4hb`~@aIZ(y zrRdS`Cnbht7J@}I$bF9QX8&pdHv`HBwhp=;_$(m8udP=D&x1aN3l0oh7;&`3veE_1 zEv?YELT=f6CCe7=6Q&k??3JxNaW4E+BcXT9toM)KABbC;SS0mm`h=_}S`!jsPXM-e zq<5NUpvMOLB;}qcp}o$%s&$dWl|J?%9+iAn2WX+Y!=DxVwb;4v!@-|?*Spo^6Eg}X z+%G)*iXPFfA$Ql7&lQ}^7=yGq zO+3$eAM#n}z0sqKTNHd$duV@WE=j%;bKrGC^t$L8uiW0Pi$9)rGN+|jM!#@7@7cm% zh72fjy2!pl9$}Y5z6jnM*gNo-puu6=!mkwDQoKO%b;aA4s9oY%(J_Vh1nu+-@i@*Z zI7@u;N}L~GD*m_l8VQ4v2B)scc$+)fc;VL8r+uJjSkuC>g-aIsr|>U@Hiza0Zt&ml zm+I5f%W#x;Q;atQABXTmv*rhGWy$|htOV4bdDDS!UeaOx9 zjJJ2L&zhFnDSpm}3Lo};i2X1wwo2T^MDNc-4aMVgf&GD@K|_K!gv<_!2t5$eI&ib! zDbHnYMG!AGh-{#DScX!;t+->O`+oOS+iK$*tzb?{X30;>6AHb1|LkLw@55sczI=4| zS;IGV;yhf=PrTUbvP_}*f zi4|5>s91hL+2N%Rlo%9VHF$>aZ}xwT)Z8|oi=|Ia`!2Onik>t&x$viTSv8?W`PMeo z@xXJCPkG<*K102hdqe_j{Y!_iH@EL{JLfjfJ=%LmK*=z_@HOF^irg;TJS;M(MuE=m z)eJ2wC8bPU((9hj$~`P`_tCnS|oj&8k;uuQ+FWr|DEz< z>ipE|sa?~eQfYdL>|OAsI6?a>-PKTAJ;z!gw70iMsc-3zvb_ADPtpCHx)aZ~j`mDSjT{6fzlX8F8INo|+p5#` ziC;?4!O)JO(?eE;b}O{L(3geA2CD^zdrq-$RVP88GDOSBZRZTr_UZe8u@$S&au&(S z%5rAA=hn*kkg+5AWc>BG`5*fx#vt3x-)T!fSBEdQa2w@0%-6f%iIAT`{g=g76gwNf zIc#f4osgQL^TNVIHwC#DJQC11uy)W7L5l;+75oE;vakJq^4{iXtc(?r$QJZGqjmb& zv`Q(J6IUc$O=|e*c-G&}ANdG5m_Adl*z36;bNJblfdc-k8n3itSBzugfM@`{%}%%X z?%X55^QvdG=RQw|XGuqpGFp_&jmp@OGXG=0_Yto)Jg@yM@>%ofMlUhroaGSXg; zpOxgDIxH^50-bG|iJ*tUB-@u=%) z<>qkna=fyK*v6A}9(G3`w+3ow8ZQF1*4d9Try;hiV`iz$ZJD;uKV=<* zH++;cLi5x;`7ORw%oSUq>VB#{(O`krVzm9*Dy@#zPmj_yK3tZE-uWb=9^KUlcxTlx zVvv{XA7_^wnpHHT&8K&%Pm_-%bxrD@bS0@^N+D#esP$=i`ls|MK>7J9%RjqCcA1<5 z$miB6rzGOXrfF?>M_Gz67ONb$wL&JSM(z{cuex{i=ezVWj{vq4@gl@QU&% z1b>ms?(^KXD8XczsBiR^JNP_(I%ad_jq=J-$4;-GeVh7c6xiz@6R;w%Z%}+dFTW>V zOC9~}S8atD5WIPeJZO}sPGA`laL2Nw5FJeVlVV1i9^!nNwIwqqefFoUw1=sMQoE(e zPgOGNAd^IqtOMCKobmcJktC`Evw65&3aj2bnuGAZq3kT%skBmmRHv)IsGDrB-6|nI zaGqPHI!N_YKPchqIAt1+f!7w3#Wt}>yceD2AhA?PejUEpG2$DUAhX0^Sg;z> z1;FXwk4!p;*hDsv-C|C*P${DJ1`gv?Nw-(;wJAnnJ760f_5e4%=}WP$I$*EgcR^A?)Em6R9bM zxXQQiH9QF(|4CX8y}I@q89u(|W%T{}JAIb^6%WR;7=yCiR7laU=4bCBbSZ>1Xnq zwPo#*4K9++Qx&C*(pGsye?XR{0!l7gM+VlQ1HN~tEm5hedfC2G-l$x?tgKfv(MEi1 z->bvbRmy!OMM+S4+P1R#>M^B=GC`%tpfdwVpl6g$$}?pa@~cF$?yMeYa2?rT-pgX5 zwcICai4MX8ISQi$m*M0U5J#V}^=NfHSsC^dY(-0Ct{5Tu@>Kp<-^uH9cab1k!G=&? zE|u=GuP7!q@H9O^4?%yLs@2slXU;E)TxEvxPT8&esPtFfvJf_zR%RV&8@dd3w~4U+orLAh8@BzP$m`tG2$id3Md>B~ z5^qHf;B7AEj8DMmb5Vb#{i+|=g7u2pQf&ybT&~q>I>WVs&Qs1QTCg(_81h@3KRDZH zADzRHb>*xvM))r%Pw-vI# zQ_F$hPqnqQ`67SFPNjspLTPL}s$5V9D_ap06AgazmQ6vH1si)v>a)X$)Sp3m!Rol2 zNZ4(5(f0HunFM?1b)&g40Nm^=o&p{>jb~%Tz5`D8JMt{gm1Sj1BNR5|=Ef%=n_dsELX@f##eGXMvL+?N^FyRg+toKXI@J*<45>#ev+%A2eLsf;|2H$eZ8*f_4JXP z>kd9!58zAq3SLHJ=)dr;{5UVln~EDe4AJoK!~)TpR}%C1U}P!#$~YxH8G$k$UM&}m zzO*fkrXT4(wB2^<48+HmU_Y~a0!=?v`L1q6WIHV{`1m%0joR z$R)GZR@^PyK2Zs96u0emQ*343R@&ligAs2sS}l)UvlHCfx&5g;x6M)f9JARSdtv2Q zrKg*Zdd>EP*02wuv(*h4WqxCC6+gr|__#eFsY*qbOB*XGw1hH>rnCC=A-PJu=mpw~ z?SW6rH^4Ib0oK(ZSf!82j>d6u&^QWvT2;ivM#)&N$OLYeXZQj>5Zu!rW9v@62tTAZ z(=)aE7#q*&_w`qLw%%8d)oN+ww0q8?S~=%MXD7_LcWcwN##$4-hF+I%;|0W2@tsKK z(fkAt9gG2AdM-A|^{8E7E=U0c13%>TIRM}Mt@x7p^cS*>P6m?0RJM_RqE1Q`yAsV> zv!lvq8i%~H9h72fdF2nF{7$v?R@N%#!B5jL+SEhNojDj+UNNH7VK$|&;)Y&p&=#yQ zE6A$S7c>NRqhR_89y|NtFR&YUKrbM{d=DIw@$f#1M|m~_b3!5;NCV(=C`N1f264sV zu#6rSJ)~0{gSPe={PKr`N0*Vm0$X(i?wJPkg@N*!(HK|@yN$Pa<85O+ykypqmGHG# zNOFlMtAQ~ zw684{sK+hHY^5pdK(^b0$xz!TTE?xAdL84;D|TPGk2Y}Dn97bD_32(?FbSpK*q*Tq z$_Sf6dfL7q4qBO1gzr|Uahn`5+EZYKD-+0kaF^%CFgn6`4P2U+$o$n0W%o9=l0doI zcnk}AA`neZkP|=}>0o?qlmw-I6|;FaIRLp~b9fB0d5q@o^v2==+Q$mM4n4}wf8vky ziF^wB=6k)G-cSFGWwdA_Q^jdz zu14(DNu!@EEhEGOeqV3Ov-JIt-*zF>-4nFv$MOg~JC>lOWFg=4Ub#fv7k`-u1;QT^ zQzuaj9HN~}7W?E#SrphWCygi>0Z)&w$Qan6zoy@kKUp#0ZC_CQlqpIN^`){%JqSL$ z7wFI@)Hdop$giVR58Ec&725<`TU$5Vb#*J`@&@ou{|hJ?smK}kx3ZqCQ2wD!lvXT@ z-Czz#MR$;Q=p|@c5Sdt)la}-r`Ie>tKPv%fTrtKtc!8BSet{HUh3KGaXX%u!7HsRD$#b~FW;VGqe~u$5m%Yj6UAX{0fY?l%UpWds=Nbe%emrJ{6O$aus!8ngs* zoFAfJC~0iEdWkht?jl>l2jFjeDVJy*txnd`qd;K33c1XaT`=abilh$PMXs@)WHa*Y zouZwUZ|GQ3!q|s-LoB^$=s>CIZVabR(uOK5f*pii>HzxgEYc4MUztV|x(cXmW9W9W znjN6El`g;xc@Mm-HbBxU0m+~%JeQst=Z#GG!WDuKUKQi9*eW0J2-I%@j95$c$%6BE zxj;PP_4Jp{OlKnR1>Yif(#QxjmdW+}FDJ>Km(?)qtE@3O2XpLNvNKj|rhh4}%M0)d zyogw4clh&+5EJ=7+J1c(UoAJlXKyhwB*1IXcqR+V?IIHy$A)WfodM2$IeoJ2IbOL% zwdL9e%sG0%vo}Y-tE+lJy*}oR{l!mmA$*rcBOmDomaBx?p4gVSIqYrhC+$7#YwT6* z6YO{G!yKcL@9q!xM()XugO2`=&W`4e9`;~+HMeKBMAaAb%>|Hwr?S0_AxlnM@QBHD z2UTf2d>BLE2i1fOfR9=>ysF&E2*QDA)Bv(nZ}<+4H>w#IAm?=hSDGPb$>p*iq~xx^ zdASF$XiyCFLD6lPLgMSHPdoP)gCReo#4 z;hWBb2X}`gSQZ|VAK*FD1n6dQWGE0|ssktgDLcv9(=6a+y@1!yc(NEHWm}~kqGf+m zNQw!;zodhYdpyTf-a}2NmTcoy2C-#jFTB!~SIJSa+p7d#GGu-Bpe5 zS2ofhR)q~iS*ODv^AnKX7(5t8!=LhoJa6oTg!7%a&1VT;-cj7cjG!`Pr+;`Up6EP< zjM%B-6|_{(bBkv;6A#5<`Ze7KoncX+oy6q!%P5^bE^TvK80PuM^r`v^pl<#yli|@> zP6B-pC{IaZEi$;}I0JbYkeXW9_Pc%OR>>`%Eu-aSSACGSKF5)po--fuRW@f*Za+w? zMf75r@doI(ov(5m|W5b zzh`-`IIrQ}JAA78?C^GYy+kgcy>8J!Y2OY`RZ#5-IlY0h1jtLd#!wUaN_NEf`$DgT zU+bWc;_>{or~n_iXXG8~(4T|=6>Jrxz-Qzn*+?H__IrReWDVFupae~)vB2i4WRw9n z?#PF6cfOo|#T)Y`TJFv0dO-O>S*HYpJH1tFD>^*5H)GD6M1NCj(8_9k z`Vyn&BK8ff3E!t}#3_3l128Mp z;Y0WksAXr7xBYMU4|k-c;Ai*>euX=LZ^RALuXZR#_73pJY>qJ|oS&1)+8G|fcWVXs z7;O))pzqQTY0LDZ&SHF!7O0KZU*`UdIm@uz4tf>sfc8;usd>p!dKM3KPIne@X6cdo zPtaUc$i2c(YORgNz?~~Y2LVT{pB&@N$&JpamA)f$U&a*ePHs8bO#YQOZy6%z8jW~! zzLl@iCdiliV)zd_*amf`eW)YdaUY01{gwKplrfpV;EVYlG2ZA+Cee>%i}5R>w(lXM z@jyhV4|A?@zRrzydTQ_W1tJ(eccwO{wXy;{JRYs$9b2ZXa@%iDaDU+0-)o%rNH2G< zWY4=E!#vMJvlZyR#F62s=y>dC?8vfjf?epd?W%g5m8M&bTC%pBA*#rp@&{SVm@H#3 z>z*mD@rJw;AIjhIVDT45Zhy3q4I~&oV>jtL8j0*Qx8PlAdMF|$8}fKEbPwOtOtKxG z=BtF@Rrx-Bh;G+~#*s%iL0hlQ(FSQ>YW1{J&ZEwD&H>0tS5gVz z%~}T7ZW*LI^cag-UCg^{tIyO+Y7N^?^|o3?y^Ji=F=`vg-kklU7FL%kv1)hPO%0;; zpcVXzouo~vARd^7mm<69CLn|DAq$n~bUkuTEM#{uSNvKXgGk4@N=2Kl^tHWE7b6Se z71d$8tPZrjRhp`qEKwQ6zDIVnVeBzuES@z6_xp+5f#+=xpw{Ig>U@=PN`3^2=>xHu zI7I-w9tQ&3W}$o~bVNPW68niKw2P(T7a9a_(2w#WWTj1_nyk$q3U{6h*}fEVVt=K_ z^BJ0lHcs!J`__5dIT-w=f%Am^i#AuAr5`~a$YkxgGZgxOxz459Gi|#zM9fAMas&OI zUPpA`0T?CbK)X^$UewpfET_VIYI~8_`6jCa&U=>5Hi}6_`#onVGPUo@3gsX4dYIqc zC%4Etxl69XJTnrRjUR}U7(>#beqeYB7W`w`m(r8TPwbhc`c%RjR(ZH9W? zHeXGr8)ysp0{RGdexCQ?6~rmDoImAF*+cGu)cGeyxfY1N|5YZ-y@W!y^sBA4o9gg# zlyh`*DE49Yoo-ofMI3!#jhN;B)ZNP?!;uZ$+9>2$JOVw;WJOVCu`D_Tiv-HrNz#mL zgS@{@1|iqqJpP3LC@M%__`M#2mZAZC_#0ssJrns3Yhe!ljtruq7_Dm3IMN6+T3`69 z=D-)ILRKepEjn!Xk#_OpNg}a>=Z`Ttx8eVsW`wRdn@PJCN`aUv5TxKOJSv1 z4C}`@T@F3*6grc*(=o_1+m`I0&+%pDS#5e1zLXPL6MB@nv6ado#8DPNJFTWd8)Msz zh+a=+hMEMqWdZw*?p8wSU^SNhq0XW2m4&n{OCsLTMD>J6{;!a*qU1+1730zbamV;u zM9c4FQ|L?|@Bu~>e$SXBvW>FxJT$6IY!J=)8sI0-G8ivS%84biq^!&5y^Z>h<~21_Y?=5?tH4VHQ(e66pMI>o+^*%i=^az#X9Ki%HvrZ zuLT6ag?tCO&)o?%8c5x!fV?AK$hT9JFP2;QU2wvfx<=iN{F z2R&O?iX+SMef1#5lV0i;WXY|9xxfOYmfA}d>IaND(TV~2KbX9PW@|q@)z6R_XeqtP zK@wqnmOEuIdh%AFWwxOc$aTy`m$6KxoALp=@!!>}z&&VhYi9c%*(I;I4MLu`1$KAG zVB|t+1^yAQ3{jh@dzD-2R&b}=6l{fzgBSTf@Mpd(_ZT;X8xW7DfVUQrx+nldqBe50 zcnjXQi=Rdwmeu(B2#jghWmCwEZ7}~>E&q~nvI{)DkIQz*rE?H7iydgY`*>-7hF{jD z{!vfV8gs7I;w$v$kRQh(7V)^gM;DNU7a=z31^0)h;X9dv*|H&{f!8_)`FDV7qKqa* zSZ`XNhM^V4K(afb{6z;TPhiVE%8rt1tUGjqgXkb=vrf^$7=PQ*t>iHxr0SD+vWNB| z1Cbf&FGzRqsH*sqUr=L7kQRg4KIH|yqZVRLWi*XN%a-sqKSWp4Gsprxo%U8ENjs$g zY01iyC!{CldwWR*vJk$x{XklV7hF-blG6-LV|;H;q}OB^?n#Mj0+*#H=e z!MJt~`tDuudoL>L$a~P3loOBi-rN_NgN_6BGZfO)OD$aQrft*?>l1jCYzY1IM{-f` zX8fpW7;yr%0%Elu&Bw^|JWbRxYVdJ#lm4x!jTq;j<=1)*paK))AWcQw(P<-!H;@lR zLHQ@55Oy0&fn4b>%h7tGvuJAc6>&gVE`$glAK*Lgfd_sPr1RVSIw>W)v!%v#c-h}G zuE67Sf=uBLWL;4mXraBK(L79+$^g<>Rzj>pM+1rHjabaNhGNcon5EH1N_W^L=0P_9 zNr_~4AT9o2i&YfcGc{2uXxpP8=Z3PC7J&7zj@nv{V;*W-dJ8&Uv4{A0I^HUf?W25pXH7CV)(jN5*Nf88E9Ms zT_Wiuqb%J5oZ@ZZh`y{N*~bd8ZS)CiLQ2y%rKb7FWmvU9P3mZoZ^**!NLe)j;ST&IiQKl*Nl(9hK z=gN8-poA(%$d}3mWPDo>OVzJ5l#N0ZpA$2tPeA_O50uoph`D?Xi`z!y2xfzufG`b= zaoAMf8UBc22{i(Ye`FYWAyUDA*NVnQGtnQB9vY&y8X;b(C{d&bX$wyL72OAW(_wOk zjz!$gCScvh!$S2l;-YTh+x8gVa=Eb{m_rJvHcUns8)bh{8K}K?z^`6ot~cFSW4sn4 zWQynnTjpW830Cd)h@#poUqfOFvMWiaHVozP1L13$SI84F3IIq61M8{5S+Lzly#_Z=vv7k@6X18SaQQ9`Y8y2Tk7z=mal9*Zc`t z1LOE(;B94#WF2o7d-aBLioQgigMGgfvb(L4---x1O0K5kKhg?m#l1M?=(Nv?23l_l$qoTlozOqeWPfI+LDLX0pxX6h^2>BZVaxoIa$# zvF9w9c2{yq8RY?FxH5=~+ek9t9W+Jl0J~Uew;SqQxBB$D@-<0kqm|c62V^dfbGyN^ zp|=>xb_3b^F&R$3S5)9keP!HXD~(q)LG~e=Fm@k79aaF!;AB!&ILTo76bQ!SWpA-j z3?q-_c6va*C)Y_OjJ; z8He}`(p<*MUkvEu$rCXf++(ZZhjtT-IYkHg)_4a?VwzDHc?e#JslYtWfTU0o@rH=a zBR>Ocdmpl7&mg1F14jbgyBub!dyL9PqO5E9AP)DCK@h!F+h~vf6Nv5%Bl{3P2ahhY zo>T_T_BgVho-wj8o|L5b5J7f>>X={s#A2cOY0iLRugo?$rpk}n90)fMQx*704uEZV~!*i`4q zNw8x~=F9aoK34Arn?#hT3`D_cvYHqzkoQmwkgfg0_@7O*LFIBUxKLxS%L>81^0e|xjCbh9!Bma;MA32gbd<<}^M2i*os zbAQ+j&XbksH8Ic%Zi1%bTk;9I%e(O7&o-LMg~(Yv6s^Mnf7BX4jqeGJ`Blbg;LcB_ z#bGh50FCMsqaqL}*I@JrC*9a95(llyGFp~Ckw4R(K)$<-@BN8}vtF3xG=)th61pQ# z@SzpZV26OmYxJt|H=PPD-4XX!rVU6*S`C`j>(F(-LTveC)Nd{5dLJ4q5vRQi`tEsT z34VDq;y6|4m`VY$+!H#LK*TXdA|@T$MuA8d*!CKuU4CIag7&+fEFiOZ8RIjTaABcWd&o4c!PewKxFZ5u&HNYNfvitBe)MPPz|xBJrR33263LxX{_wW&KM); zb!sQ6tgCT`W*|y@E?GeOKo^lk%EB)71`^f=L^r=jG-y9^0AnJ9&AcETfLDW3%W?gc7o7g_^+W)%3vGb4Z@R+PTR9J4$!sV}2% z@UHQoY8ZJ1P47X>Qh$U#q$XnJmm)93FUV5w3moKa%FmeN#gNK~tzRLx7=Iy#{1;jm zoL3-T^GEU%Ec&~pH}q2% z_Ml=SH2KvLS6vEri`&3rS_9kHb$FAMmHWjgSxz1UF4cUw5_=ST`++#V9rg`>XwXdC z?<~af-IAX`^-OsIk>c$@yNRgv0njDukia*~4$z#fpzq;pvjOce84=FC5Tkz0=mm{q zU*@h1VL!1_>`OWxy{RR2Fw<28t2JJvm)YHlDyLwE_BIf7rnYa+4g9(~SPGA_ijCJ_U%zbMVW{ zjfRM&MvO7~R4h4-64ii3yAL91XUkqj2+DLGqx`qP8PL&dI~Y$z1#toyb=+hZ&~Q8= zQ-8wy-$0tLE+WN1(Lj2`3J3l!3&A7iCOlFOp*A+cTDnYjHZIA>#s_fHPoP6rSbk=M z%BK-oodL`OMh&`_&4mu(Dl})cXdRjW9s62n(T}nEuzX!))7Uj=wED76N*(1p=ox~Q zX7FlR2upVhR-cW>J1ZmZvOn#OF@7(ph4&}GKH~um+y!{bbVW9Xw{p1g5IsyqY;i@P z{Z|Da^^=8=zj(N43j4!Y(H!!+26?iL*pKYZQ9KM;2;1Nsfk(@8cwzMx>!B~n#eKhv zOF$IuE6+gR^8h>n(3a5H`yxVq5G;6;Fe?3E`I1)0{Qeq!j@X;Y;K|eJ5NyAu z+i4%menjD@pGtQ;aPIcPH)eoQtcl_4%xImdb+hi@&VE9|*1 zp%E;?c0vZ41iywiGzK!_aryoW1#90N;9@LIN5t$5Y9yIsO@!tye>SmCKXF*#(5&4cx?27_G4|t3ocpFFyS0Tmb0-<3LtQ*rX zs*eOtNEIyIAOZgY?Lj6i10A4u?t=DHo)St0 z>9B~71?|3r{89;Z{TsOU8}bsgJ%O>{9Em201|C@xG+zO&&>ciIGkO!e zaXBOacg&iugKtm4(gN5OKayAyL_Mi5b*BlKVYG!kumx}oMq%9>`6Q-7*Loa2Hamcm z)Es^@ouKn*g7s9y-S5qNQyn1gHo`CV#Tb1GxG7svvbE$VvIeLmUGYp^*zcmiEAK)( z{ubK}kcW{02)(T=@JU*N!i^F2hH-B_J_;2V4Iz%x#*2=M2T(a9|$XM_YP?F*^$~*+r;;awe8Oph{D;%g)$;g5?%TAqq96=F5;tw~^m5i(3jk^=VQVoVz;u zKp-uJnyd=WVMm?UMjI$di_?CP%&OqHDs)?c$ktLEHB%d{#Jtmoa*|GNWB&APEhTMK=)T3xNDq8eSo0Zmy4*MQ#DU%_(f3;yWZTSPDVs5P}&~ z434kCBjY#ppBRkGX|Q1UVss<0LOsJbeumtafpea~@OX{6W(qJSO5-~Rky%)PmH;H1 zX=n?Zz$aHC-g5w!*6_j`1F3Nm((RpyR;(PeXS59er}Pu@9wAMju~{{85v!^g=IQfu408y?7_G=iESx>S^?W zG%(HRf!aF(REb|P7Wc&XITtuLXE0wKhvOBPRW?EWcgA)(vgJ(0(|_Qdec_EV1apcl z__gln)dTUa+UVDVks)k5-n1FNJQMF8g{McNWvoQmPUFd?c*{5(4@HR8iR_#Xi7a1dk5Iq-rL;Ef}}i?-(-{f%-zg}*{9Y9|fKX8y9pyP66D;f@ZH3u(ghMJg!etHoK_pzHkz)#0h&;0+uYuaeo7^03iUl09DNq< zm0@1_5 zP-Y8%$APxn6m{W;Ih2`K%|;?nXXQvkP^b>@da3}mq6Yjy%7RmvNJ1rHZ!CrVW~2dl zMOSzZv;cBYUDWQEcuRkbZ1uoTJAf)hF;{Df^Sx2$-N2WJ;aUS+?T^0I4ZW@x+QCB9 zetq!cHsIK;aJ4h~*CMo-@~~;P#F;O!4a1vzqcjCELvM;-3qwA%OwgKuH^iY|e}&R; z)KV}wMhaTreOwdZc}b|d0HDhx;M-q-7XBDrpFk=r1l*xC@Bw#l8MDT2f~&{m)qFHK z#tZDnfLrtC#*0RIs3&-;M%b&<4bOn6rAZmCfu5UxHnuc0G zhH-c^M%CS@^Ao6-)u@->QB#+2?^(2!=cplMAq9WFgSK)8Wk?1(jyp;gkk_KjEPB4E z3-hb0q6R8~22H`A`+|-wL7#aTzs5i==>!RH8u(E!Y)9jKGsyN$(9e2;P7N`tb+;3#?F z9VNjf{BVt7T@Jm>ANs;X)Qfp75YLwYHO%*Tffg!C&QYQlsEteDJ(uz8X?eYqq83dl z>JdC^U!q?o=Jnu2j2qdgy(HAMH@?^x@0KW=Ndb1{PqWMi5vKT zf|9)jwaqf7fwH$y|F=>0d)Rw~v$>Ej)AP#t29&>ov#Fp?CTb%JUlRw)rePh2H%gQ{ z1MStsm->j`iorE^P=~+==_4p%jy&et54}}^F8Vd@_CXsmQM7EJB*)ecN`#fbzSXS%476CY6=&k#tS6Jh zf5@vPQ{(;`RD6fy=fIXfLi;6w`724nzc>v#pYJQVu0EPsNkMg z5|6yC*+#vv=ZPy~$9!&NsNo9E24<`*GBaNg7A8S|~? zb6&V+B8Hi3^I7w)wtv6ge4{t^Eh?E*^hZxJ*Cqm+x%SIjtgS^&^M12L<~z;uTW@tk zeVhGL;tMgUL`!pmqB;2D9JIKsyd@K~NCP!fK}qvJ8B5~7O9H5w`0uevW%G)8-Mlju zbW8&k)AML)z9kbi<63f2UuNx@3kQc0_;qt_{ekRxeNNa}^!>dnQhN3*0>ZCWkKY@_+D%WS1qdxdE~ua?bvw*IZ2WF1-c zp4R~Wy=v~e+Jt%4JTlj=Hf~-w|6Ethc4Hm0ytA$zVD$p4H(1Y`YqNcs=d7zHqGbMJ zo;P`zdDhyx)>fSstQR{JTs(oxiwRi0e%L zubO-Rw`^uvt#7bOZhc$++WKCTUe-68dltp=$OgV5^Vs#PRu3^tVeb9+&ukYmuT5EJ z&F^xxoBw`a{?}UdZ?4UA=3;SnYcIbYSTuIgH2=K0XVRFW9$ZwnXl{;u`S+RoR!!yK z<$9ZW?SI~F)r)!E+H;l7RYKR+tS#%ithMV~ty*-g&9f#QEc)fs%cPx)er9c(l(y(+ z?YXX6RJD$*R$<=z-^ILUJ>$A=-R-)^y6*aA^Eb`0(_CEliGOR&EVJuAYtLF+^=Msj zowx3FeWhz_zT3RdI<{)oe8N@7u9`Nln{;$h&~==D&b4Pz+qJgtcfHL#Yu1uE;<`AA zb%A5qa_#58%e>3#gXX#XXI%TPJFTn#{cUUC`YvnVe7pH)K5PD&TNfS7-~TV& z@(%yAvYxT-HowN~MXo;=J@ebq|EwXa4VkrRKH<9d-+t&iXI-`G-*wJv16KXJe$l#S z-tBsex$kwnLgZ}^|b)}5|rt)u+4>wfEui}Lwjm4Bz}x6Es<`^>B6 zzN_8m-)-&v_dfGX{;{=}f9$&7MSs_^^^EIT>+FBulYjkxf8l@2>Do89))$-W|CZW% z+ANRx_uu&2; } 2>&1 ) + set -e + echo "${output}" | grep "$phrase" > /dev/null 2>&1; #if this line returns non 0 code, 'set -e' will cause exit + echo "--> OK" +} + +echo +echo "Testing: basic recognition" +cmd="${SCRIPTPATH}/../run.sh --service-address ${test_service_address} --wave-path ${test_wave}" +phrase="serwis testowy" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --interim-results" +cmd="${SCRIPTPATH}/../run.sh --service-address ${test_service_address} --wave-path ${test_wave} --interim-results" +phrase="serwis" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --grpc-timeout" +cmd="${SCRIPTPATH}/../run.sh --service-address ${test_service_address} --wave-path ${test_wave} --grpc-timeout 50" +phrase="\"grpc_status\":4}" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --time-offsets" +cmd="${SCRIPTPATH}/../run.sh --service-address ${test_service_address} --wave-path ${test_wave} --time-offsets" +phrase="testowy \[0.51 - 1.20\]" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --recognition-timeout" +cmd="${SCRIPTPATH}/../run.sh --service-address ${test_service_address} --wave-path ${test_wave} --recognition-timeout 10" +phrase="serwis" +check_output "${cmd}" "${phrase}" + + +test_result="success" \ No newline at end of file diff --git a/python/tests/data/test.wav b/python/tests/data/test.wav new file mode 100644 index 0000000000000000000000000000000000000000..6a9906bca38e98bd8b2004ddb203a9350dc17d77 GIT binary patch literal 55340 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 } 2>&1 ) + set -e + echo "${output}" | grep "$phrase" > /dev/null 2>&1; #if this line returns non 0 code, 'set -e' will cause exit + echo "--> OK" +} + +echo +echo "Testing: basic recognition" +cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave}" +phrase="serwis testowy" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --interim-results" +cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --interim-results" +phrase="serwis" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --grpc-timeout" +cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --grpc-timeout 50" +phrase="\"grpc_status\":4}" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --time-offsets" +cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --time-offsets" +phrase="testowy \[0.51 - 1.20\]" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --recognition-timeout" +cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --recognition-timeout 10" +phrase="serwis" +check_output "${cmd}" "${phrase}" + + +test_result="success" \ No newline at end of file From 94fbf7a243a76bd14ac4280508e46930d628389f Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Tue, 20 Jul 2021 20:25:26 +0200 Subject: [PATCH 24/65] Correcting syntax --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 80ce563..661ec33 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,8 +68,8 @@ jobs: - name: Run tests run: docker run --rm "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" ./tests/test_service.sh - -test-cpp-service: + + test-cpp-service: name: Test C++ service needs: cpp-build runs-on: ubuntu-latest From 95865e7e8b064a40736e4d882279cf5ced922221 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Tue, 20 Jul 2021 22:28:32 +0200 Subject: [PATCH 25/65] Correcting paths --- cpp/tests/test_service.sh | 12 ++++++------ python/setup.sh | 2 ++ python/tests/test_service.sh | 12 ++++++------ 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/cpp/tests/test_service.sh b/cpp/tests/test_service.sh index f8d6b18..4e0ad55 100755 --- a/cpp/tests/test_service.sh +++ b/cpp/tests/test_service.sh @@ -40,33 +40,33 @@ function check_output () { echo echo "Testing: basic recognition" -cmd="${SCRIPTPATH}/../run.sh --service-address ${test_service_address} --wave-path ${test_wave}" +cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave}" phrase="serwis testowy" check_output "${cmd}" "${phrase}" echo echo "Testing: --interim-results" -cmd="${SCRIPTPATH}/../run.sh --service-address ${test_service_address} --wave-path ${test_wave} --interim-results" +cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --interim-results" phrase="serwis" check_output "${cmd}" "${phrase}" echo echo "Testing: --grpc-timeout" -cmd="${SCRIPTPATH}/../run.sh --service-address ${test_service_address} --wave-path ${test_wave} --grpc-timeout 50" +cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --grpc-timeout 50" phrase="\"grpc_status\":4}" check_output "${cmd}" "${phrase}" echo echo "Testing: --time-offsets" -cmd="${SCRIPTPATH}/../run.sh --service-address ${test_service_address} --wave-path ${test_wave} --time-offsets" +cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --time-offsets" phrase="testowy \[0.51 - 1.20\]" check_output "${cmd}" "${phrase}" echo echo "Testing: --recognition-timeout" -cmd="${SCRIPTPATH}/../run.sh --service-address ${test_service_address} --wave-path ${test_wave} --recognition-timeout 10" +cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --recognition-timeout 10" phrase="serwis" check_output "${cmd}" "${phrase}" -test_result="success" \ No newline at end of file +test_result="success" diff --git a/python/setup.sh b/python/setup.sh index 17e3285..188723f 100755 --- a/python/setup.sh +++ b/python/setup.sh @@ -77,6 +77,8 @@ install_package "python3-dev" "${sudo_str}" install_package "portaudio19-dev" "${sudo_str}" install_package "python3-pip" "${sudo_str}" + +rm -rf .env python3 -m venv .env source .env/bin/activate pip3 install --upgrade pip diff --git a/python/tests/test_service.sh b/python/tests/test_service.sh index 37c1ff7..2fb8917 100755 --- a/python/tests/test_service.sh +++ b/python/tests/test_service.sh @@ -40,33 +40,33 @@ function check_output () { echo echo "Testing: basic recognition" -cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave}" +cmd="${SCRIPTPATH}/../run.sh --service-address ${test_service_address} --wave-path ${test_wave}" phrase="serwis testowy" check_output "${cmd}" "${phrase}" echo echo "Testing: --interim-results" -cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --interim-results" +cmd="${SCRIPTPATH}/../run.sh --service-address ${test_service_address} --wave-path ${test_wave} --interim-results" phrase="serwis" check_output "${cmd}" "${phrase}" echo echo "Testing: --grpc-timeout" -cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --grpc-timeout 50" +cmd="${SCRIPTPATH}/../run.sh --service-address ${test_service_address} --wave-path ${test_wave} --grpc-timeout 50" phrase="\"grpc_status\":4}" check_output "${cmd}" "${phrase}" echo echo "Testing: --time-offsets" -cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --time-offsets" +cmd="${SCRIPTPATH}/../run.sh --service-address ${test_service_address} --wave-path ${test_wave} --time-offsets" phrase="testowy \[0.51 - 1.20\]" check_output "${cmd}" "${phrase}" echo echo "Testing: --recognition-timeout" -cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --recognition-timeout 10" +cmd="${SCRIPTPATH}/../run.sh --service-address ${test_service_address} --wave-path ${test_wave} --recognition-timeout 10" phrase="serwis" check_output "${cmd}" "${phrase}" -test_result="success" \ No newline at end of file +test_result="success" From d099bd834010a91b6cb761dedba90ff7aeabe062 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Tue, 20 Jul 2021 23:39:35 +0200 Subject: [PATCH 26/65] Correcting arguments for cpp test --- cpp/tests/test_service.sh | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/cpp/tests/test_service.sh b/cpp/tests/test_service.sh index 4e0ad55..180b63d 100755 --- a/cpp/tests/test_service.sh +++ b/cpp/tests/test_service.sh @@ -1,4 +1,4 @@ -#!/bin/bash +##!/bin/bash # coding=utf-8 set -euo pipefail @@ -40,32 +40,26 @@ function check_output () { echo echo "Testing: basic recognition" -cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave}" +cmd="${SCRIPTPATH}/../build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave}" phrase="serwis testowy" check_output "${cmd}" "${phrase}" echo echo "Testing: --interim-results" -cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --interim-results" +cmd="${SCRIPTPATH}/../build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --interim-results true" phrase="serwis" check_output "${cmd}" "${phrase}" echo echo "Testing: --grpc-timeout" -cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --grpc-timeout 50" -phrase="\"grpc_status\":4}" +cmd="${SCRIPTPATH}/../build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --grpc-timeout 50" +phrase="DEADLINE_EXCEEDED" check_output "${cmd}" "${phrase}" echo echo "Testing: --time-offsets" -cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --time-offsets" -phrase="testowy \[0.51 - 1.20\]" -check_output "${cmd}" "${phrase}" - -echo -echo "Testing: --recognition-timeout" -cmd="${SCRIPTPATH}/../cpp/build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --recognition-timeout 10" -phrase="serwis" +cmd="${SCRIPTPATH}/../build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --time-offsets true" +phrase="word: \"serwis\"" check_output "${cmd}" "${phrase}" From d0dc7870ad4361a04f4ffb49902d5bfcb3393e29 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Wed, 21 Jul 2021 00:10:54 +0200 Subject: [PATCH 27/65] Correcting path --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 661ec33..4b778f5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -89,4 +89,4 @@ jobs: run: docker pull "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" - name: Run tests - run: docker run --rm "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" ./tests/test_service.sh \ No newline at end of file + run: docker run --rm "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" ./cpp/tests/test_service.sh \ No newline at end of file From d43d290ec201e32064d8cfc88f8a442bccd341df Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Wed, 21 Jul 2021 00:44:08 +0200 Subject: [PATCH 28/65] Fixing shebang --- cpp/tests/test_service.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/tests/test_service.sh b/cpp/tests/test_service.sh index 180b63d..f5f11b2 100755 --- a/cpp/tests/test_service.sh +++ b/cpp/tests/test_service.sh @@ -1,4 +1,4 @@ -##!/bin/bash +#!/bin/bash # coding=utf-8 set -euo pipefail From 797e0625bced61f3d8b9ecb10efd4385ba063326 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Wed, 21 Jul 2021 13:29:13 +0200 Subject: [PATCH 29/65] Correcting --interim-results test --- cpp/tests/test_service.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cpp/tests/test_service.sh b/cpp/tests/test_service.sh index f5f11b2..8aea7b9 100755 --- a/cpp/tests/test_service.sh +++ b/cpp/tests/test_service.sh @@ -46,8 +46,8 @@ check_output "${cmd}" "${phrase}" echo echo "Testing: --interim-results" -cmd="${SCRIPTPATH}/../build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --interim-results true" -phrase="serwis" +cmd="${SCRIPTPATH}/../build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --streaming --interim-results true" +phrase="transcript: \"serwis\"" check_output "${cmd}" "${phrase}" echo @@ -59,7 +59,7 @@ check_output "${cmd}" "${phrase}" echo echo "Testing: --time-offsets" cmd="${SCRIPTPATH}/../build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave} --time-offsets true" -phrase="word: \"serwis\"" +phrase="nanos: 60000000" check_output "${cmd}" "${phrase}" From a14f019e1bbe7595b538af28becee82e116ec46f Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Wed, 21 Jul 2021 13:46:09 +0200 Subject: [PATCH 30/65] Move image version to variable --- cpp/docker/run_dictation_client_cpp.sh | 7 ++++--- python/docker/run_dictation_client_python.sh | 8 +++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/cpp/docker/run_dictation_client_cpp.sh b/cpp/docker/run_dictation_client_cpp.sh index a4dce29..4cc2c74 100755 --- a/cpp/docker/run_dictation_client_cpp.sh +++ b/cpp/docker/run_dictation_client_cpp.sh @@ -4,18 +4,19 @@ # This script sends request to dictation service using dictation client inside docker container # Requires "dictation-client-cpp:2.3.0" docker image loaded locally - set -euo pipefail IFS=$'\n\t' +IMAGE_VERSION=2.3.1 + SCRIPT=$(realpath "$0") SCRIPTPATH=$(dirname "${SCRIPT}") -docker_image="dictation-client-cpp:2.3.0" +docker_image="dictation-client-cpp:${IMAGE_VERSION}" usage() { echo " -Dictation ASR gRPC client 2.3.0 +Dictation ASR gRPC client ${IMAGE_VERSION} Dictation ASR gRPC client options: -h, --help Print help message. -s=ADDRESS, --service-address=ADDRESS diff --git a/python/docker/run_dictation_client_python.sh b/python/docker/run_dictation_client_python.sh index 0dbdd8d..f0a832b 100755 --- a/python/docker/run_dictation_client_python.sh +++ b/python/docker/run_dictation_client_python.sh @@ -2,20 +2,22 @@ # coding=utf-8 # This script sends request to dictation service using dictation client inside docker container -# Requires "dictation-client-python:2.3.1" docker image loaded locally +# Requires "dictation-client-python:$IMAGE_VERSION" docker image loaded locally set -euo pipefail IFS=$'\n\t' +IMAGE_VERSION=2.3.1 + SCRIPT=$(realpath "$0") SCRIPTPATH=$(dirname "${SCRIPT}") -docker_image="dictation-client-python:2.3.1" +docker_image="dictation-client-python:${IMAGE_VERSION}" usage() { echo " -Dictation ASR gRPC client 2.3.1 +Dictation ASR gRPC client ${IMAGE_VERSION} -h, --help show this help message and exit -s=ADDRESS, --service-address=ADDRESS From d4e2f739a37246189d3266d8fc167053f877bcba Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Wed, 21 Jul 2021 16:56:26 +0200 Subject: [PATCH 31/65] Adding context models test --- cpp/tests/data/test_context.wav | Bin 0 -> 45612 bytes cpp/tests/test_service.sh | 7 +++++++ python/tests/data/test_context.wav | Bin 0 -> 45612 bytes python/tests/test_service.sh | 8 ++++++++ 4 files changed, 15 insertions(+) create mode 100644 cpp/tests/data/test_context.wav create mode 100644 python/tests/data/test_context.wav diff --git a/cpp/tests/data/test_context.wav b/cpp/tests/data/test_context.wav new file mode 100644 index 0000000000000000000000000000000000000000..501ed252421263669170ae9240744c27f326e443 GIT binary patch literal 45612 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 Rx0q Date: Wed, 21 Jul 2021 19:30:10 +0200 Subject: [PATCH 32/65] Modifying comments --- cpp/tests/test_service.sh | 4 ++-- python/tests/test_service.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cpp/tests/test_service.sh b/cpp/tests/test_service.sh index 2a0e314..27f7d42 100755 --- a/cpp/tests/test_service.sh +++ b/cpp/tests/test_service.sh @@ -33,9 +33,9 @@ function check_output () { phrase="$2" set +e - output=$({ eval "$cmd" 1>&2; } 2>&1 ) + output=$({ eval "$cmd" 1>&2; } 2>&1 ) # we want grep over output whether the command succeeds or not set -e - echo "${output}" | grep "$phrase" > /dev/null 2>&1; #if this line returns non 0 code, 'set -e' will cause exit + echo "${output}" | grep "$phrase" > /dev/null 2>&1; # if this line returns non-0-code, 'set -e' will cause exit echo "--> OK" } diff --git a/python/tests/test_service.sh b/python/tests/test_service.sh index f1a2799..47fbd66 100755 --- a/python/tests/test_service.sh +++ b/python/tests/test_service.sh @@ -34,9 +34,9 @@ function check_output () { phrase="$2" set +e - output=$({ eval "$cmd" 1>&2; } 2>&1 ) + output=$({ eval "$cmd" 1>&2; } 2>&1 ) # we want grep over output whether the command succeeds or not set -e - echo "${output}" | grep "$phrase" > /dev/null 2>&1; #if this line returns non 0 code, 'set -e' will cause exit + echo "${output}" | grep "$phrase" > /dev/null 2>&1; # if this line returns non-0-code, 'set -e' will cause exit echo "--> OK" } From 93297580cd1ba532fb6b98253d21890aea114406 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Wed, 21 Jul 2021 19:32:11 +0200 Subject: [PATCH 33/65] Adding tests for run-on-docker script --- python/tests/test_service_on_docker.sh | 83 ++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100755 python/tests/test_service_on_docker.sh diff --git a/python/tests/test_service_on_docker.sh b/python/tests/test_service_on_docker.sh new file mode 100755 index 0000000..c8af3a1 --- /dev/null +++ b/python/tests/test_service_on_docker.sh @@ -0,0 +1,83 @@ +#!/bin/bash +# coding=utf-8 + +set -euo pipefail +IFS=$'\n\t' + +SCRIPT=$(realpath "$0") +SCRIPTPATH=$(dirname "${SCRIPT}") + +test_result="fail" +test_service_address="demo.devtechmo.pl:51190" + +cp "${SCRIPTPATH}/data/test.wav" "${SCRIPTPATH}/../docker/wav/ci_tmp_test.wav" +cp "${SCRIPTPATH}/data/test_context.wav" "${SCRIPTPATH}/../docker/wav/ci_tmp_test_context.wav" + +test_wave="ci_tmp_test.wav" +test_context_wave="ci_tmp_test_context.wav" + +function on_exit { + + if [[ $test_result == "fail" ]]; then + echo "---------------------" + echo " SERVICE TEST FAILED!" + echo "---------------------" + else + echo "-------------------------------------" + echo " SERVICE TEST COMPLETED SUCCESSFULLY!" + echo "-------------------------------------" + fi +} +trap on_exit EXIT + + +function check_output () { + + cmd="$1" + phrase="$2" + + set +e + output=$({ eval "$cmd" 1>&2; } 2>&1 ) # we want grep over output whether the command succeeds or not + set -e + echo "${output}" | grep "$phrase" > /dev/null 2>&1; # if this line returns non-0-code, 'set -e' will cause exit + echo "--> OK" +} + +echo +echo "Testing: basic recognition" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --service-address=${test_service_address} --filename=${test_wave}" +phrase="serwis testowy" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --interim-results" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --service-address=${test_service_address} --filename=${test_wave} --interim-results" +phrase="serwis" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --grpc-timeout" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --service-address=${test_service_address} --filename=${test_wave} --grpc-timeout=50" +phrase="\"grpc_status\":4}" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --time-offsets" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --service-address=${test_service_address} --filename=${test_wave} --time-offsets" +phrase="testowy \[0.51 - 1.20\]" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --recognition-timeout" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --service-address=${test_service_address} --filename=${test_wave} --recognition-timeout=10" +phrase="serwis" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --context-phrase" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --service-address=${test_service_address} --filename=${test_context_wave} --context-phrase=context" +phrase="przedsięwzięcie" +check_output "${cmd}" "${phrase}" + + +test_result="success" From 54f1048407565ceacfe86a224f9be657c707d9d0 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Wed, 21 Jul 2021 19:47:19 +0200 Subject: [PATCH 34/65] Removing copy of test files after test --- python/tests/test_service_on_docker.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/python/tests/test_service_on_docker.sh b/python/tests/test_service_on_docker.sh index c8af3a1..4f06e89 100755 --- a/python/tests/test_service_on_docker.sh +++ b/python/tests/test_service_on_docker.sh @@ -27,6 +27,7 @@ function on_exit { echo " SERVICE TEST COMPLETED SUCCESSFULLY!" echo "-------------------------------------" fi + rm "${SCRIPTPATH}/../docker/wav/ci_tmp_test.wav" "${SCRIPTPATH}/../docker/wav/ci_tmp_test_context.wav" } trap on_exit EXIT From 9502f88af3aa60078cfb6c215de051dfd3835483 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Wed, 21 Jul 2021 19:48:09 +0200 Subject: [PATCH 35/65] Adding tests for run-on-docker script --- cpp/tests/test_service_on_docker.sh | 78 +++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100755 cpp/tests/test_service_on_docker.sh diff --git a/cpp/tests/test_service_on_docker.sh b/cpp/tests/test_service_on_docker.sh new file mode 100755 index 0000000..ad17d2e --- /dev/null +++ b/cpp/tests/test_service_on_docker.sh @@ -0,0 +1,78 @@ +#!/bin/bash +# coding=utf-8 + +set -euo pipefail +IFS=$'\n\t' + +SCRIPT=$(realpath "$0") +SCRIPTPATH=$(dirname "${SCRIPT}") + +test_result="fail" +test_service_address="demo.devtechmo.pl:51190" + +cp "${SCRIPTPATH}/data/test.wav" "${SCRIPTPATH}/../docker/wav/ci_tmp_test.wav" +cp "${SCRIPTPATH}/data/test_context.wav" "${SCRIPTPATH}/../docker/wav/ci_tmp_test_context.wav" + +test_wave="ci_tmp_test.wav" +test_context_wave="ci_tmp_test_context.wav" + +function on_exit { + + if [[ $test_result == "fail" ]]; then + echo "---------------------" + echo " SERVICE TEST FAILED!" + echo "---------------------" + else + echo "-------------------------------------" + echo " SERVICE TEST COMPLETED SUCCESSFULLY!" + echo "-------------------------------------" + fi + rm "${SCRIPTPATH}/../docker/wav/ci_tmp_test.wav" "${SCRIPTPATH}/../docker/wav/ci_tmp_test_context.wav" +} +trap on_exit EXIT + + +function check_output () { + + cmd="$1" + phrase="$2" + + set +e + output=$({ eval "$cmd" 1>&2; } 2>&1 ) # we want grep over output whether the command succeeds or not + set -e + echo "${output}" | grep "$phrase" > /dev/null 2>&1; # if this line returns non-0-code, 'set -e' will cause exit + echo "--> OK" +} + +echo +echo "Testing: basic recognition" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --service-address=${test_service_address} --filename=${test_wave}" +phrase="serwis testowy" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --interim-results" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --service-address=${test_service_address} --filename=${test_wave} --interim-results" +phrase="serwis" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --grpc-timeout" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --service-address=${test_service_address} --filename=${test_wave} --grpc-timeout=50" +phrase="DEADLINE_EXCEEDED" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --time-offsets" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --service-address=${test_service_address} --filename=${test_wave} --time-offsets" +phrase="nanos: 60000000" +check_output "${cmd}" "${phrase}" + +echo +echo "Testing: --context-phrase" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --service-address=${test_service_address} --filename=${test_context_wave} --context-phrase=context" +phrase="przedsi\\\\304\\\\231wzi\\\\304\\\\231cie" +check_output "${cmd}" "${phrase}" + + +test_result="success" From c3e2c313003500491c6edd2e60d8809b4566d18e Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Wed, 21 Jul 2021 20:21:31 +0200 Subject: [PATCH 36/65] Adding tests for run-on-docker scripts to CI --- .github/workflows/ci.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4b778f5..0208f38 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -66,8 +66,9 @@ jobs: run: docker pull "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" - name: Run tests - run: docker run --rm "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" ./tests/test_service.sh - + run: | + docker run --rm "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" ./tests/test_service.sh + ./python/tests/test_service_on_docker.sh test-cpp-service: name: Test C++ service @@ -89,4 +90,6 @@ jobs: run: docker pull "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" - name: Run tests - run: docker run --rm "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" ./cpp/tests/test_service.sh \ No newline at end of file + run: | + docker run --rm "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" ./cpp/tests/test_service.sh + ./cpp/tests/test_service_on_docker.sh \ No newline at end of file From 43edb1bfcf390a98c61268b72ede1a5c5aa1e306 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Thu, 22 Jul 2021 06:54:21 +0200 Subject: [PATCH 37/65] Enabling testing of custom images --- .github/workflows/ci.yml | 4 ++-- cpp/docker/run_dictation_client_cpp.sh | 6 ++++++ cpp/tests/test_service_on_docker.sh | 12 +++++++----- python/docker/run_dictation_client_python.sh | 5 +++++ python/tests/test_service_on_docker.sh | 14 ++++++++------ 5 files changed, 28 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0208f38..5cb8fa3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,7 +68,7 @@ jobs: - name: Run tests run: | docker run --rm "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" ./tests/test_service.sh - ./python/tests/test_service_on_docker.sh + ./python/tests/test_service_on_docker.sh "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" test-cpp-service: name: Test C++ service @@ -92,4 +92,4 @@ jobs: - name: Run tests run: | docker run --rm "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" ./cpp/tests/test_service.sh - ./cpp/tests/test_service_on_docker.sh \ No newline at end of file + ./cpp/tests/test_service_on_docker.sh "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" \ No newline at end of file diff --git a/cpp/docker/run_dictation_client_cpp.sh b/cpp/docker/run_dictation_client_cpp.sh index 4cc2c74..89cebed 100755 --- a/cpp/docker/run_dictation_client_cpp.sh +++ b/cpp/docker/run_dictation_client_cpp.sh @@ -18,7 +18,10 @@ usage() { echo " Dictation ASR gRPC client ${IMAGE_VERSION} Dictation ASR gRPC client options: + -h, --help Print help message. + --custom-image=IMAGE:TAG + Uses a custom docker image instead of the default. -s=ADDRESS, --service-address=ADDRESS IP address and port (address:port) of a service the client will connect to. --tls If set, uses tls authentication, otherwise use insecure channel (default). The tls credential files (client.crt, client.key, ca.crt) should be placed inside 'tls' directory. @@ -46,6 +49,9 @@ while getopts "f:hs:-:" optchar; do case "${optchar}" in -) case "${OPTARG}" in + custom-image=*) + docker_image=${OPTARG#*=} + ;; help) usage; exit 0 ;; diff --git a/cpp/tests/test_service_on_docker.sh b/cpp/tests/test_service_on_docker.sh index ad17d2e..9e5e393 100755 --- a/cpp/tests/test_service_on_docker.sh +++ b/cpp/tests/test_service_on_docker.sh @@ -7,6 +7,8 @@ IFS=$'\n\t' SCRIPT=$(realpath "$0") SCRIPTPATH=$(dirname "${SCRIPT}") +service_image="$1" + test_result="fail" test_service_address="demo.devtechmo.pl:51190" @@ -46,31 +48,31 @@ function check_output () { echo echo "Testing: basic recognition" -cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --service-address=${test_service_address} --filename=${test_wave}" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --custom-image=${service_image} --service-address=${test_service_address} --filename=${test_wave}" phrase="serwis testowy" check_output "${cmd}" "${phrase}" echo echo "Testing: --interim-results" -cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --service-address=${test_service_address} --filename=${test_wave} --interim-results" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --custom-image=${service_image} --service-address=${test_service_address} --filename=${test_wave} --interim-results" phrase="serwis" check_output "${cmd}" "${phrase}" echo echo "Testing: --grpc-timeout" -cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --service-address=${test_service_address} --filename=${test_wave} --grpc-timeout=50" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --custom-image=${service_image} --service-address=${test_service_address} --filename=${test_wave} --grpc-timeout=50" phrase="DEADLINE_EXCEEDED" check_output "${cmd}" "${phrase}" echo echo "Testing: --time-offsets" -cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --service-address=${test_service_address} --filename=${test_wave} --time-offsets" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --custom-image=${service_image} --service-address=${test_service_address} --filename=${test_wave} --time-offsets" phrase="nanos: 60000000" check_output "${cmd}" "${phrase}" echo echo "Testing: --context-phrase" -cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --service-address=${test_service_address} --filename=${test_context_wave} --context-phrase=context" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --custom-image=${service_image} --service-address=${test_service_address} --filename=${test_context_wave} --context-phrase=context" phrase="przedsi\\\\304\\\\231wzi\\\\304\\\\231cie" check_output "${cmd}" "${phrase}" diff --git a/python/docker/run_dictation_client_python.sh b/python/docker/run_dictation_client_python.sh index f0a832b..80a0178 100755 --- a/python/docker/run_dictation_client_python.sh +++ b/python/docker/run_dictation_client_python.sh @@ -20,6 +20,8 @@ echo " Dictation ASR gRPC client ${IMAGE_VERSION} -h, --help show this help message and exit + --custom-image=IMAGE:TAG + Uses a custom docker image instead of the default. -s=ADDRESS, --service-address=ADDRESS IP address and port (address:port) of a service the client will connect to. -f=WAVE, --filename=WAVE @@ -54,6 +56,9 @@ while getopts "f:hms:-:" optchar; do case "${optchar}" in -) case "${OPTARG}" in + custom-image=*) + docker_image=${OPTARG#*=} + ;; help) usage; exit 0 ;; diff --git a/python/tests/test_service_on_docker.sh b/python/tests/test_service_on_docker.sh index 4f06e89..68f5e79 100755 --- a/python/tests/test_service_on_docker.sh +++ b/python/tests/test_service_on_docker.sh @@ -7,6 +7,8 @@ IFS=$'\n\t' SCRIPT=$(realpath "$0") SCRIPTPATH=$(dirname "${SCRIPT}") +service_image="$1" + test_result="fail" test_service_address="demo.devtechmo.pl:51190" @@ -46,37 +48,37 @@ function check_output () { echo echo "Testing: basic recognition" -cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --service-address=${test_service_address} --filename=${test_wave}" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --custom-image=${service_image} --service-address=${test_service_address} --filename=${test_wave}" phrase="serwis testowy" check_output "${cmd}" "${phrase}" echo echo "Testing: --interim-results" -cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --service-address=${test_service_address} --filename=${test_wave} --interim-results" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --custom-image=${service_image} --service-address=${test_service_address} --filename=${test_wave} --interim-results" phrase="serwis" check_output "${cmd}" "${phrase}" echo echo "Testing: --grpc-timeout" -cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --service-address=${test_service_address} --filename=${test_wave} --grpc-timeout=50" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --custom-image=${service_image} --service-address=${test_service_address} --filename=${test_wave} --grpc-timeout=50" phrase="\"grpc_status\":4}" check_output "${cmd}" "${phrase}" echo echo "Testing: --time-offsets" -cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --service-address=${test_service_address} --filename=${test_wave} --time-offsets" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --custom-image=${service_image} --service-address=${test_service_address} --filename=${test_wave} --time-offsets" phrase="testowy \[0.51 - 1.20\]" check_output "${cmd}" "${phrase}" echo echo "Testing: --recognition-timeout" -cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --service-address=${test_service_address} --filename=${test_wave} --recognition-timeout=10" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --custom-image=${service_image} --service-address=${test_service_address} --filename=${test_wave} --recognition-timeout=10" phrase="serwis" check_output "${cmd}" "${phrase}" echo echo "Testing: --context-phrase" -cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --service-address=${test_service_address} --filename=${test_context_wave} --context-phrase=context" +cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --custom-image=${service_image} --service-address=${test_service_address} --filename=${test_context_wave} --context-phrase=context" phrase="przedsięwzięcie" check_output "${cmd}" "${phrase}" From d26e823b6f58b0ac03e631c81e212cec69e3e6e3 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Thu, 22 Jul 2021 07:27:53 +0200 Subject: [PATCH 38/65] Temporary changes for debugging --- python/tests/test_service_on_docker.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/python/tests/test_service_on_docker.sh b/python/tests/test_service_on_docker.sh index 68f5e79..6be71a4 100755 --- a/python/tests/test_service_on_docker.sh +++ b/python/tests/test_service_on_docker.sh @@ -1,7 +1,7 @@ #!/bin/bash # coding=utf-8 -set -euo pipefail +#set -euo pipefail IFS=$'\n\t' SCRIPT=$(realpath "$0") @@ -41,8 +41,9 @@ function check_output () { set +e output=$({ eval "$cmd" 1>&2; } 2>&1 ) # we want grep over output whether the command succeeds or not - set -e - echo "${output}" | grep "$phrase" > /dev/null 2>&1; # if this line returns non-0-code, 'set -e' will cause exit + echo "output: $output" + #set -e + echo "${output}" | grep "$phrase" #> /dev/null 2>&1; # if this line returns non-0-code, 'set -e' will cause exit echo "--> OK" } From fa69bd128bf1958368ba5b14c1bbe548168053fe Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Thu, 22 Jul 2021 07:34:34 +0200 Subject: [PATCH 39/65] Temporary chnges for debugging --- python/tests/test_service_on_docker.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/tests/test_service_on_docker.sh b/python/tests/test_service_on_docker.sh index 6be71a4..77663ea 100755 --- a/python/tests/test_service_on_docker.sh +++ b/python/tests/test_service_on_docker.sh @@ -1,7 +1,7 @@ #!/bin/bash # coding=utf-8 -#set -euo pipefail +set -euo pipefail IFS=$'\n\t' SCRIPT=$(realpath "$0") @@ -42,7 +42,7 @@ function check_output () { set +e output=$({ eval "$cmd" 1>&2; } 2>&1 ) # we want grep over output whether the command succeeds or not echo "output: $output" - #set -e + set -e echo "${output}" | grep "$phrase" #> /dev/null 2>&1; # if this line returns non-0-code, 'set -e' will cause exit echo "--> OK" } From 5931e4edb195ab9e322a1ea68ebe61faf3402303 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Thu, 22 Jul 2021 07:45:12 +0200 Subject: [PATCH 40/65] Temporary changes for debugging --- .github/workflows/ci.yml | 90 ++++++++++---------- python/docker/run_dictation_client_python.sh | 2 +- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5cb8fa3..68f9d00 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,28 +22,28 @@ jobs: docker tag dictation-client-python:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" docker push "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" - cpp-build: - name: C++ image build - runs-on: ubuntu-latest - - steps: - - name: checkout code - uses: actions/checkout@v2 - - - name: initialize submodules - run: git submodule update --init --recursive --progress --depth 1 - - - name: build docker image and push to repository - env: - REPOSITORY: jaredharet/private - DOCKER_LOGIN: ${{ secrets.DOCKER_USER }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASS }} - run: | - cd cpp - ./build_docker_image.sh "${GITHUB_REF##*/}" - docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io - docker tag dictation-client-cpp:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" - docker push "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" + # cpp-build: + # name: C++ image build + # runs-on: ubuntu-latest + + # steps: + # - name: checkout code + # uses: actions/checkout@v2 + + # - name: initialize submodules + # run: git submodule update --init --recursive --progress --depth 1 + + # - name: build docker image and push to repository + # env: + # REPOSITORY: jaredharet/private + # DOCKER_LOGIN: ${{ secrets.DOCKER_USER }} + # DOCKER_PASSWORD: ${{ secrets.DOCKER_PASS }} + # run: | + # cd cpp + # ./build_docker_image.sh "${GITHUB_REF##*/}" + # docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io + # docker tag dictation-client-cpp:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" + # docker push "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" test-python-service: @@ -70,26 +70,26 @@ jobs: docker run --rm "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" ./tests/test_service.sh ./python/tests/test_service_on_docker.sh "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" - test-cpp-service: - name: Test C++ service - needs: cpp-build - runs-on: ubuntu-latest - env: - REPOSITORY: jaredharet/private - DOCKER_USER: ${{ secrets.DOCKER_USER }} - DOCKER_PASS: ${{ secrets.DOCKER_PASS }} - - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Login to DockerHub - run: docker login -u $DOCKER_USER -p $DOCKER_PASS - - - name: Pull docker image - run: docker pull "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" - - - name: Run tests - run: | - docker run --rm "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" ./cpp/tests/test_service.sh - ./cpp/tests/test_service_on_docker.sh "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" \ No newline at end of file + # test-cpp-service: + # name: Test C++ service + # needs: cpp-build + # runs-on: ubuntu-latest + # env: + # REPOSITORY: jaredharet/private + # DOCKER_USER: ${{ secrets.DOCKER_USER }} + # DOCKER_PASS: ${{ secrets.DOCKER_PASS }} + + # steps: + # - name: Checkout code + # uses: actions/checkout@v2 + + # - name: Login to DockerHub + # run: docker login -u $DOCKER_USER -p $DOCKER_PASS + + # - name: Pull docker image + # run: docker pull "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" + + # - name: Run tests + # run: | + # docker run --rm "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" ./cpp/tests/test_service.sh + # ./cpp/tests/test_service_on_docker.sh "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" \ No newline at end of file diff --git a/python/docker/run_dictation_client_python.sh b/python/docker/run_dictation_client_python.sh index 80a0178..3eec847 100755 --- a/python/docker/run_dictation_client_python.sh +++ b/python/docker/run_dictation_client_python.sh @@ -141,4 +141,4 @@ docker run --rm -it \ --group-add audio \ --network host \ "${docker_image}" \ -/dictation_client_python/run.sh "${opts[@]}" 2>/dev/null +/dictation_client_python/run.sh "${opts[@]}" # 2>/dev/null From 62e5b619ad5bb53a0cd1d31c284b9d7a1391863d Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Thu, 22 Jul 2021 07:58:21 +0200 Subject: [PATCH 41/65] Removing incorrect flags from docker run --- python/docker/run_dictation_client_python.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/docker/run_dictation_client_python.sh b/python/docker/run_dictation_client_python.sh index 3eec847..46c14c9 100755 --- a/python/docker/run_dictation_client_python.sh +++ b/python/docker/run_dictation_client_python.sh @@ -129,7 +129,7 @@ while getopts "f:hms:-:" optchar; do esac done -docker run --rm -it \ +docker run --rm \ --env PULSE_SERVER=unix:/tmp/pulseaudio.socket \ --env PULSE_COOKIE=/tmp/pulseaudio.cookie \ -v "${SCRIPTPATH}:/volume" \ From c939de1681df374fc2665892c71fbcf162926d86 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Thu, 22 Jul 2021 08:04:46 +0200 Subject: [PATCH 42/65] Reverting temporary changes --- .github/workflows/ci.yml | 90 ++++++++++---------- python/docker/run_dictation_client_python.sh | 2 +- python/tests/test_service_on_docker.sh | 3 +- 3 files changed, 47 insertions(+), 48 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 68f9d00..5cb8fa3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,28 +22,28 @@ jobs: docker tag dictation-client-python:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" docker push "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" - # cpp-build: - # name: C++ image build - # runs-on: ubuntu-latest - - # steps: - # - name: checkout code - # uses: actions/checkout@v2 - - # - name: initialize submodules - # run: git submodule update --init --recursive --progress --depth 1 - - # - name: build docker image and push to repository - # env: - # REPOSITORY: jaredharet/private - # DOCKER_LOGIN: ${{ secrets.DOCKER_USER }} - # DOCKER_PASSWORD: ${{ secrets.DOCKER_PASS }} - # run: | - # cd cpp - # ./build_docker_image.sh "${GITHUB_REF##*/}" - # docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io - # docker tag dictation-client-cpp:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" - # docker push "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" + cpp-build: + name: C++ image build + runs-on: ubuntu-latest + + steps: + - name: checkout code + uses: actions/checkout@v2 + + - name: initialize submodules + run: git submodule update --init --recursive --progress --depth 1 + + - name: build docker image and push to repository + env: + REPOSITORY: jaredharet/private + DOCKER_LOGIN: ${{ secrets.DOCKER_USER }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASS }} + run: | + cd cpp + ./build_docker_image.sh "${GITHUB_REF##*/}" + docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io + docker tag dictation-client-cpp:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" + docker push "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" test-python-service: @@ -70,26 +70,26 @@ jobs: docker run --rm "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" ./tests/test_service.sh ./python/tests/test_service_on_docker.sh "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" - # test-cpp-service: - # name: Test C++ service - # needs: cpp-build - # runs-on: ubuntu-latest - # env: - # REPOSITORY: jaredharet/private - # DOCKER_USER: ${{ secrets.DOCKER_USER }} - # DOCKER_PASS: ${{ secrets.DOCKER_PASS }} - - # steps: - # - name: Checkout code - # uses: actions/checkout@v2 - - # - name: Login to DockerHub - # run: docker login -u $DOCKER_USER -p $DOCKER_PASS - - # - name: Pull docker image - # run: docker pull "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" - - # - name: Run tests - # run: | - # docker run --rm "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" ./cpp/tests/test_service.sh - # ./cpp/tests/test_service_on_docker.sh "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" \ No newline at end of file + test-cpp-service: + name: Test C++ service + needs: cpp-build + runs-on: ubuntu-latest + env: + REPOSITORY: jaredharet/private + DOCKER_USER: ${{ secrets.DOCKER_USER }} + DOCKER_PASS: ${{ secrets.DOCKER_PASS }} + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Login to DockerHub + run: docker login -u $DOCKER_USER -p $DOCKER_PASS + + - name: Pull docker image + run: docker pull "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" + + - name: Run tests + run: | + docker run --rm "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" ./cpp/tests/test_service.sh + ./cpp/tests/test_service_on_docker.sh "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" \ No newline at end of file diff --git a/python/docker/run_dictation_client_python.sh b/python/docker/run_dictation_client_python.sh index 46c14c9..3c32d3b 100755 --- a/python/docker/run_dictation_client_python.sh +++ b/python/docker/run_dictation_client_python.sh @@ -141,4 +141,4 @@ docker run --rm \ --group-add audio \ --network host \ "${docker_image}" \ -/dictation_client_python/run.sh "${opts[@]}" # 2>/dev/null +/dictation_client_python/run.sh "${opts[@]}" 2>/dev/null diff --git a/python/tests/test_service_on_docker.sh b/python/tests/test_service_on_docker.sh index 77663ea..68f5e79 100755 --- a/python/tests/test_service_on_docker.sh +++ b/python/tests/test_service_on_docker.sh @@ -41,9 +41,8 @@ function check_output () { set +e output=$({ eval "$cmd" 1>&2; } 2>&1 ) # we want grep over output whether the command succeeds or not - echo "output: $output" set -e - echo "${output}" | grep "$phrase" #> /dev/null 2>&1; # if this line returns non-0-code, 'set -e' will cause exit + echo "${output}" | grep "$phrase" > /dev/null 2>&1; # if this line returns non-0-code, 'set -e' will cause exit echo "--> OK" } From c702db6b69b29bc96402875c2d14f24190fc40d4 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Thu, 22 Jul 2021 08:05:39 +0200 Subject: [PATCH 43/65] Removing incorrect flags from docker run --- cpp/docker/run_dictation_client_cpp.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/docker/run_dictation_client_cpp.sh b/cpp/docker/run_dictation_client_cpp.sh index 89cebed..9ef3f9a 100755 --- a/cpp/docker/run_dictation_client_cpp.sh +++ b/cpp/docker/run_dictation_client_cpp.sh @@ -106,5 +106,5 @@ while getopts "f:hs:-:" optchar; do esac done -docker run --rm -it -v "${SCRIPTPATH}:/volume" --network host "${docker_image}" \ +docker run --rm -v "${SCRIPTPATH}:/volume" --network host "${docker_image}" \ ./cpp/build/dictation_client "${opts[@]}" From 5536edec2b12267e55eee7d213d6fdfadc9c0f60 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Thu, 22 Jul 2021 08:20:28 +0200 Subject: [PATCH 44/65] Enabling printing stderr for docker run --- python/docker/run_dictation_client_python.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/docker/run_dictation_client_python.sh b/python/docker/run_dictation_client_python.sh index 3c32d3b..0f439fb 100755 --- a/python/docker/run_dictation_client_python.sh +++ b/python/docker/run_dictation_client_python.sh @@ -141,4 +141,4 @@ docker run --rm \ --group-add audio \ --network host \ "${docker_image}" \ -/dictation_client_python/run.sh "${opts[@]}" 2>/dev/null +/dictation_client_python/run.sh "${opts[@]}" From 60b17d6e95bd6a735f6267a17082143eef3afa28 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Thu, 22 Jul 2021 09:46:10 +0200 Subject: [PATCH 45/65] modify test names and improve output --- ...st_service_with_script_for_docker_usage.sh} | 17 +++++++++++------ ...est_service_with_script_for_local_usage.sh} | 18 ++++++++++++------ ...st_service_with_script_for_docker_usage.sh} | 17 +++++++++++------ ...est_service_with_script_for_local_usage.sh} | 17 +++++++++++------ 4 files changed, 45 insertions(+), 24 deletions(-) rename cpp/tests/{test_service_on_docker.sh => test_service_with_script_for_docker_usage.sh} (79%) rename cpp/tests/{test_service.sh => test_service_with_script_for_local_usage.sh} (76%) rename python/tests/{test_service_on_docker.sh => test_service_with_script_for_docker_usage.sh} (81%) rename python/tests/{test_service.sh => test_service_with_script_for_local_usage.sh} (77%) diff --git a/cpp/tests/test_service_on_docker.sh b/cpp/tests/test_service_with_script_for_docker_usage.sh similarity index 79% rename from cpp/tests/test_service_on_docker.sh rename to cpp/tests/test_service_with_script_for_docker_usage.sh index 9e5e393..2a80b7f 100755 --- a/cpp/tests/test_service_on_docker.sh +++ b/cpp/tests/test_service_with_script_for_docker_usage.sh @@ -21,13 +21,13 @@ test_context_wave="ci_tmp_test_context.wav" function on_exit { if [[ $test_result == "fail" ]]; then - echo "---------------------" - echo " SERVICE TEST FAILED!" - echo "---------------------" + echo "--------------------------------------------------" + echo " SERVICE TEST WITH SCRIPT FOR DOCKER USAGE FAILED!" + echo "--------------------------------------------------" else - echo "-------------------------------------" - echo " SERVICE TEST COMPLETED SUCCESSFULLY!" - echo "-------------------------------------" + echo "------------------------------------------------------------------" + echo " SERVICE TEST WITH SCRIPT FOR DOCKER USAGE COMPLETED SUCCESSFULLY!" + echo "------------------------------------------------------------------" fi rm "${SCRIPTPATH}/../docker/wav/ci_tmp_test.wav" "${SCRIPTPATH}/../docker/wav/ci_tmp_test_context.wav" } @@ -46,6 +46,11 @@ function check_output () { echo "--> OK" } +echo +echo "------------------------------------------" +echo " SERVICE TEST WITH SCRIPT FOR DOCKER USAGE" +echo "------------------------------------------" + echo echo "Testing: basic recognition" cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --custom-image=${service_image} --service-address=${test_service_address} --filename=${test_wave}" diff --git a/cpp/tests/test_service.sh b/cpp/tests/test_service_with_script_for_local_usage.sh similarity index 76% rename from cpp/tests/test_service.sh rename to cpp/tests/test_service_with_script_for_local_usage.sh index 27f7d42..5a2703a 100755 --- a/cpp/tests/test_service.sh +++ b/cpp/tests/test_service_with_script_for_local_usage.sh @@ -15,13 +15,13 @@ test_context_wave="${SCRIPTPATH}/data/test_context.wav" function on_exit { if [[ $test_result == "fail" ]]; then - echo "---------------------" - echo " SERVICE TEST FAILED!" - echo "---------------------" + echo "-------------------------------------------------" + echo " SERVICE TEST WITH SCRIPT FOR LOCAL USAGE FAILED!" + echo "-------------------------------------------------" else - echo "-------------------------------------" - echo " SERVICE TEST COMPLETED SUCCESSFULLY!" - echo "-------------------------------------" + echo "-----------------------------------------------------------------" + echo " SERVICE TEST WITH SCRIPT FOR LOCAL USAGE COMPLETED SUCCESSFULLY!" + echo "-----------------------------------------------------------------" fi } trap on_exit EXIT @@ -39,6 +39,12 @@ function check_output () { echo "--> OK" } + +echo +echo "------------------------------------------" +echo " SERVICE TEST WITH SCRIPT FOR LOCAL USAGE" +echo "------------------------------------------" + echo echo "Testing: basic recognition" cmd="${SCRIPTPATH}/../build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave}" diff --git a/python/tests/test_service_on_docker.sh b/python/tests/test_service_with_script_for_docker_usage.sh similarity index 81% rename from python/tests/test_service_on_docker.sh rename to python/tests/test_service_with_script_for_docker_usage.sh index 68f5e79..fd0e895 100755 --- a/python/tests/test_service_on_docker.sh +++ b/python/tests/test_service_with_script_for_docker_usage.sh @@ -21,13 +21,13 @@ test_context_wave="ci_tmp_test_context.wav" function on_exit { if [[ $test_result == "fail" ]]; then - echo "---------------------" - echo " SERVICE TEST FAILED!" - echo "---------------------" + echo "--------------------------------------------------" + echo " SERVICE TEST WITH SCRIPT FOR DOCKER USAGE FAILED!" + echo "--------------------------------------------------" else - echo "-------------------------------------" - echo " SERVICE TEST COMPLETED SUCCESSFULLY!" - echo "-------------------------------------" + echo "------------------------------------------------------------------" + echo " SERVICE TEST WITH SCRIPT FOR DOCKER USAGE COMPLETED SUCCESSFULLY!" + echo "------------------------------------------------------------------" fi rm "${SCRIPTPATH}/../docker/wav/ci_tmp_test.wav" "${SCRIPTPATH}/../docker/wav/ci_tmp_test_context.wav" } @@ -46,6 +46,11 @@ function check_output () { echo "--> OK" } +echo +echo "------------------------------------------" +echo " SERVICE TEST WITH SCRIPT FOR DOCKER USAGE" +echo "------------------------------------------" + echo echo "Testing: basic recognition" cmd="${SCRIPTPATH}/../docker/run_dictation_client_python.sh --custom-image=${service_image} --service-address=${test_service_address} --filename=${test_wave}" diff --git a/python/tests/test_service.sh b/python/tests/test_service_with_script_for_local_usage.sh similarity index 77% rename from python/tests/test_service.sh rename to python/tests/test_service_with_script_for_local_usage.sh index 47fbd66..b87b532 100755 --- a/python/tests/test_service.sh +++ b/python/tests/test_service_with_script_for_local_usage.sh @@ -16,13 +16,13 @@ test_context_wave="${SCRIPTPATH}/data/test_context.wav" function on_exit { if [[ $test_result == "fail" ]]; then - echo "---------------------" - echo " SERVICE TEST FAILED!" - echo "---------------------" + echo "-------------------------------------------------" + echo " SERVICE TEST WITH SCRIPT FOR LOCAL USAGE FAILED!" + echo "-------------------------------------------------" else - echo "-------------------------------------" - echo " SERVICE TEST COMPLETED SUCCESSFULLY!" - echo "-------------------------------------" + echo "-----------------------------------------------------------------" + echo " SERVICE TEST WITH SCRIPT FOR LOCAL USAGE COMPLETED SUCCESSFULLY!" + echo "-----------------------------------------------------------------" fi } trap on_exit EXIT @@ -40,6 +40,11 @@ function check_output () { echo "--> OK" } +echo +echo "------------------------------------------" +echo " SERVICE TEST WITH SCRIPT FOR LOCAL USAGE" +echo "------------------------------------------" + echo echo "Testing: basic recognition" cmd="${SCRIPTPATH}/../run.sh --service-address ${test_service_address} --wave-path ${test_wave}" From 4f9f24e0abd00b053f5464e65892e62c10292870 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Thu, 22 Jul 2021 09:53:35 +0200 Subject: [PATCH 46/65] modify test names and improve output --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5cb8fa3..b71b849 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -67,8 +67,8 @@ jobs: - name: Run tests run: | - docker run --rm "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" ./tests/test_service.sh - ./python/tests/test_service_on_docker.sh "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" + docker run --rm "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" ./tests/test_service_with_script_for_local_usage.sh + ./python/tests/test_service_with_script_for_docker_usage.sh "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" test-cpp-service: name: Test C++ service @@ -91,5 +91,5 @@ jobs: - name: Run tests run: | - docker run --rm "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" ./cpp/tests/test_service.sh - ./cpp/tests/test_service_on_docker.sh "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" \ No newline at end of file + docker run --rm "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" ./cpp/tests/test_service_with_script_for_local_usage.sh + ./cpp/tests/test_service_with_script_for_docker_usage.sh "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" \ No newline at end of file From 4c460791c622fb25fae2ec2f0a6919ce7e8c3a5c Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Thu, 22 Jul 2021 10:45:56 +0200 Subject: [PATCH 47/65] add temporary changes for testing badges --- .github/workflows/ci.yml | 2 +- README.md | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b71b849..6ea9873 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: CI/CD +name: CI-CD on: [push, pull_request] jobs: diff --git a/README.md b/README.md index a35f099..949d02e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ # dictation-client + +![CI-CD Actions Status](https://github.com/jaredharet/dictation-client/actions/workflows/ci/badge.svg) + Dictation ASR gRPC client Contents: From d788188eafb7d30e87cf4a2d00ac94906a28dde0 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Thu, 22 Jul 2021 11:32:53 +0200 Subject: [PATCH 48/65] set ci status badge in readme --- .github/workflows/ci.yml | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6ea9873..be798f0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: CI-CD +name: ci on: [push, pull_request] jobs: diff --git a/README.md b/README.md index 949d02e..1aab4f8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # dictation-client -![CI-CD Actions Status](https://github.com/jaredharet/dictation-client/actions/workflows/ci/badge.svg) +![ci Actions Status](https://github.com/JaredHaret/dictation-client/workflows/ci/badge.svg) Dictation ASR gRPC client From e7bbd0fc8d56e4e5347a5732f3c86ef218453137 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Thu, 22 Jul 2021 12:05:31 +0200 Subject: [PATCH 49/65] revert changes and return to the point when ci was passing --- .github/workflows/ci.yml | 3 ++- README.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index be798f0..f9d60ee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,5 @@ -name: ci +#name: ci +name: CI/CD on: [push, pull_request] jobs: diff --git a/README.md b/README.md index 1aab4f8..2525abc 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # dictation-client -![ci Actions Status](https://github.com/JaredHaret/dictation-client/workflows/ci/badge.svg) + Dictation ASR gRPC client From ad09822f9c4ce9aabb4052de36039dbd242aa50f Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Fri, 23 Jul 2021 12:36:47 +0200 Subject: [PATCH 50/65] print debug info in github runner --- .github/workflows/ci.yml | 4 ++-- README.md | 2 +- cpp/tests/test_service_with_script_for_docker_usage.sh | 8 +++++--- cpp/tests/test_service_with_script_for_local_usage.sh | 8 +++++--- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f9d60ee..eaac77d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,5 +1,5 @@ -#name: ci -name: CI/CD +name: ci +#name: CI/CD on: [push, pull_request] jobs: diff --git a/README.md b/README.md index 2525abc..1aab4f8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # dictation-client - +![ci Actions Status](https://github.com/JaredHaret/dictation-client/workflows/ci/badge.svg) Dictation ASR gRPC client diff --git a/cpp/tests/test_service_with_script_for_docker_usage.sh b/cpp/tests/test_service_with_script_for_docker_usage.sh index 2a80b7f..0f4e329 100755 --- a/cpp/tests/test_service_with_script_for_docker_usage.sh +++ b/cpp/tests/test_service_with_script_for_docker_usage.sh @@ -1,7 +1,8 @@ #!/bin/bash # coding=utf-8 -set -euo pipefail +#set -euo pipefail +set -x IFS=$'\n\t' SCRIPT=$(realpath "$0") @@ -39,9 +40,10 @@ function check_output () { cmd="$1" phrase="$2" - set +e + #set +e output=$({ eval "$cmd" 1>&2; } 2>&1 ) # we want grep over output whether the command succeeds or not - set -e + echo "output=$output" + #set -e echo "${output}" | grep "$phrase" > /dev/null 2>&1; # if this line returns non-0-code, 'set -e' will cause exit echo "--> OK" } diff --git a/cpp/tests/test_service_with_script_for_local_usage.sh b/cpp/tests/test_service_with_script_for_local_usage.sh index 5a2703a..bde81e7 100755 --- a/cpp/tests/test_service_with_script_for_local_usage.sh +++ b/cpp/tests/test_service_with_script_for_local_usage.sh @@ -1,7 +1,8 @@ #!/bin/bash # coding=utf-8 -set -euo pipefail +#set -euo pipefail +set -x IFS=$'\n\t' SCRIPT=$(realpath "$0") @@ -32,9 +33,10 @@ function check_output () { cmd="$1" phrase="$2" - set +e + #set +e output=$({ eval "$cmd" 1>&2; } 2>&1 ) # we want grep over output whether the command succeeds or not - set -e + echo "output=$output" + #set -e echo "${output}" | grep "$phrase" > /dev/null 2>&1; # if this line returns non-0-code, 'set -e' will cause exit echo "--> OK" } From 63c05a29d6116c3caa2a88cd534a56e9ea376a34 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Fri, 23 Jul 2021 15:20:27 +0200 Subject: [PATCH 51/65] improve readability of output for debugging --- .../test_service_with_script_for_docker_usage.sh | 11 ++++++----- cpp/tests/test_service_with_script_for_local_usage.sh | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/cpp/tests/test_service_with_script_for_docker_usage.sh b/cpp/tests/test_service_with_script_for_docker_usage.sh index 0f4e329..d36ef43 100755 --- a/cpp/tests/test_service_with_script_for_docker_usage.sh +++ b/cpp/tests/test_service_with_script_for_docker_usage.sh @@ -1,8 +1,7 @@ #!/bin/bash # coding=utf-8 -#set -euo pipefail -set -x +set -euo pipefail IFS=$'\n\t' SCRIPT=$(realpath "$0") @@ -40,10 +39,10 @@ function check_output () { cmd="$1" phrase="$2" - #set +e + set +e output=$({ eval "$cmd" 1>&2; } 2>&1 ) # we want grep over output whether the command succeeds or not echo "output=$output" - #set -e + set -e echo "${output}" | grep "$phrase" > /dev/null 2>&1; # if this line returns non-0-code, 'set -e' will cause exit echo "--> OK" } @@ -52,7 +51,9 @@ echo echo "------------------------------------------" echo " SERVICE TEST WITH SCRIPT FOR DOCKER USAGE" echo "------------------------------------------" - +######### +set -x +######### echo echo "Testing: basic recognition" cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --custom-image=${service_image} --service-address=${test_service_address} --filename=${test_wave}" diff --git a/cpp/tests/test_service_with_script_for_local_usage.sh b/cpp/tests/test_service_with_script_for_local_usage.sh index bde81e7..421d998 100755 --- a/cpp/tests/test_service_with_script_for_local_usage.sh +++ b/cpp/tests/test_service_with_script_for_local_usage.sh @@ -1,8 +1,7 @@ #!/bin/bash # coding=utf-8 -#set -euo pipefail -set -x +set -euo pipefail IFS=$'\n\t' SCRIPT=$(realpath "$0") @@ -33,10 +32,10 @@ function check_output () { cmd="$1" phrase="$2" - #set +e + set +e output=$({ eval "$cmd" 1>&2; } 2>&1 ) # we want grep over output whether the command succeeds or not echo "output=$output" - #set -e + set -e echo "${output}" | grep "$phrase" > /dev/null 2>&1; # if this line returns non-0-code, 'set -e' will cause exit echo "--> OK" } @@ -46,7 +45,9 @@ echo echo "------------------------------------------" echo " SERVICE TEST WITH SCRIPT FOR LOCAL USAGE" echo "------------------------------------------" - +######### +set -x +######### echo echo "Testing: basic recognition" cmd="${SCRIPTPATH}/../build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave}" From 80a8a248986a3484b82a562e9ff710c7ee0147a6 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Fri, 23 Jul 2021 16:31:05 +0200 Subject: [PATCH 52/65] show some more info for debugging --- cpp/tests/test_service_with_script_for_local_usage.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cpp/tests/test_service_with_script_for_local_usage.sh b/cpp/tests/test_service_with_script_for_local_usage.sh index 421d998..916bade 100755 --- a/cpp/tests/test_service_with_script_for_local_usage.sh +++ b/cpp/tests/test_service_with_script_for_local_usage.sh @@ -34,7 +34,6 @@ function check_output () { set +e output=$({ eval "$cmd" 1>&2; } 2>&1 ) # we want grep over output whether the command succeeds or not - echo "output=$output" set -e echo "${output}" | grep "$phrase" > /dev/null 2>&1; # if this line returns non-0-code, 'set -e' will cause exit echo "--> OK" @@ -45,9 +44,6 @@ echo echo "------------------------------------------" echo " SERVICE TEST WITH SCRIPT FOR LOCAL USAGE" echo "------------------------------------------" -######### -set -x -######### echo echo "Testing: basic recognition" cmd="${SCRIPTPATH}/../build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave}" From 775a706435ca779eb4d51220db3b68ed0741b522 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Fri, 23 Jul 2021 17:03:04 +0200 Subject: [PATCH 53/65] Remove -x mode from test script --- cpp/tests/test_service_with_script_for_docker_usage.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/cpp/tests/test_service_with_script_for_docker_usage.sh b/cpp/tests/test_service_with_script_for_docker_usage.sh index d36ef43..2a80b7f 100755 --- a/cpp/tests/test_service_with_script_for_docker_usage.sh +++ b/cpp/tests/test_service_with_script_for_docker_usage.sh @@ -41,7 +41,6 @@ function check_output () { set +e output=$({ eval "$cmd" 1>&2; } 2>&1 ) # we want grep over output whether the command succeeds or not - echo "output=$output" set -e echo "${output}" | grep "$phrase" > /dev/null 2>&1; # if this line returns non-0-code, 'set -e' will cause exit echo "--> OK" @@ -51,9 +50,7 @@ echo echo "------------------------------------------" echo " SERVICE TEST WITH SCRIPT FOR DOCKER USAGE" echo "------------------------------------------" -######### -set -x -######### + echo echo "Testing: basic recognition" cmd="${SCRIPTPATH}/../docker/run_dictation_client_cpp.sh --custom-image=${service_image} --service-address=${test_service_address} --filename=${test_wave}" From 20376a59ee132aa174a0b5d97b01c8e9e141a1eb Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Fri, 23 Jul 2021 17:34:27 +0200 Subject: [PATCH 54/65] revert all changes since last ci fail --- .github/workflows/ci.yml | 1 - cpp/tests/test_service_with_script_for_local_usage.sh | 1 - 2 files changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eaac77d..be798f0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,5 +1,4 @@ name: ci -#name: CI/CD on: [push, pull_request] jobs: diff --git a/cpp/tests/test_service_with_script_for_local_usage.sh b/cpp/tests/test_service_with_script_for_local_usage.sh index 916bade..967b896 100755 --- a/cpp/tests/test_service_with_script_for_local_usage.sh +++ b/cpp/tests/test_service_with_script_for_local_usage.sh @@ -39,7 +39,6 @@ function check_output () { echo "--> OK" } - echo echo "------------------------------------------" echo " SERVICE TEST WITH SCRIPT FOR LOCAL USAGE" From 85a04349f04f2abe5c103f06953b7b322091cfc9 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Fri, 23 Jul 2021 17:40:59 +0200 Subject: [PATCH 55/65] revert all changes since last ci fail --- cpp/tests/test_service_with_script_for_local_usage.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cpp/tests/test_service_with_script_for_local_usage.sh b/cpp/tests/test_service_with_script_for_local_usage.sh index 967b896..5cac2cc 100755 --- a/cpp/tests/test_service_with_script_for_local_usage.sh +++ b/cpp/tests/test_service_with_script_for_local_usage.sh @@ -39,11 +39,13 @@ function check_output () { echo "--> OK" } + echo echo "------------------------------------------" echo " SERVICE TEST WITH SCRIPT FOR LOCAL USAGE" echo "------------------------------------------" echo + echo "Testing: basic recognition" cmd="${SCRIPTPATH}/../build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave}" phrase="serwis testowy" From fecd10d4e6f8bfccecaccbc81e8acadc8e5497ba Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Fri, 23 Jul 2021 18:22:18 +0200 Subject: [PATCH 56/65] revert all changes since last failed ci --- cpp/tests/test_service_with_script_for_local_usage.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/tests/test_service_with_script_for_local_usage.sh b/cpp/tests/test_service_with_script_for_local_usage.sh index 5cac2cc..5a2703a 100755 --- a/cpp/tests/test_service_with_script_for_local_usage.sh +++ b/cpp/tests/test_service_with_script_for_local_usage.sh @@ -44,8 +44,8 @@ echo echo "------------------------------------------" echo " SERVICE TEST WITH SCRIPT FOR LOCAL USAGE" echo "------------------------------------------" -echo +echo echo "Testing: basic recognition" cmd="${SCRIPTPATH}/../build/dictation_client --service-address ${test_service_address} --wav-path ${test_wave}" phrase="serwis testowy" From 0e1a059ea4843152dec3ac7739f56bc6708b0852 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Mon, 26 Jul 2021 13:35:06 +0200 Subject: [PATCH 57/65] correct accidentally omitted conflict in readme --- python/README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/python/README.md b/python/README.md index 85a55d9..a444df2 100755 --- a/python/README.md +++ b/python/README.md @@ -248,11 +248,7 @@ On the Linux operating systems using Advanced Linux Sound Architecture (ALSA) mi If you get the following output after runing request: ``` -<<<<<<< HEAD -Dictation ASR gRPC client 2.3.1 -======= Dictation ASR gRPC client 2.3.2 ->>>>>>> origin/master ALSA lib pcm_dsnoop.c:618:(snd_pcm_dsnoop_open) unable to open slave ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe From 439d63c01d887a4711865d7f4cddcebd3889bf31 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Tue, 3 Aug 2021 07:37:37 +0200 Subject: [PATCH 58/65] use test matrix, without publishing dev images --- .github/workflows/ci.yml | 108 +++++++++++++-------------------------- 1 file changed, 36 insertions(+), 72 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index be798f0..a99d34a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,94 +2,58 @@ name: ci on: [push, pull_request] jobs: - python-build: - name: Python image build - runs-on: ubuntu-latest - - steps: - - name: checkout code - uses: actions/checkout@v2 - - - name: build docker image and push to repository - env: - REPOSITORY: jaredharet/private - DOCKER_LOGIN: ${{ secrets.DOCKER_USER }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASS }} - run: | - cd python - ./build_docker_image.sh "${GITHUB_REF##*/}" - docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io - docker tag dictation-client-python:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" - docker push "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" - - cpp-build: - name: C++ image build - runs-on: ubuntu-latest + test-python-service: + name: Test Python service + strategy: + matrix: + os: [ubuntu-18.04, ubuntu-20.04] + python-version: [3.5, 3.6, 3.7, 3.8, 3.9] + runs-on: ${{ matrix.os }} steps: - - name: checkout code + - name: checkout code uses: actions/checkout@v2 + + - name: set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} - - name: initialize submodules + - name: initialize submodules run: git submodule update --init --recursive --progress --depth 1 - - name: build docker image and push to repository - env: - REPOSITORY: jaredharet/private - DOCKER_LOGIN: ${{ secrets.DOCKER_USER }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASS }} + - name: build docker image run: | - cd cpp + cd python ./build_docker_image.sh "${GITHUB_REF##*/}" - docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" docker.io - docker tag dictation-client-cpp:"${GITHUB_REF##*/}" "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" - docker push "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" - - test-python-service: - name: Test Python service - needs: python-build - runs-on: ubuntu-latest - env: - REPOSITORY: jaredharet/private - DOCKER_USER: ${{ secrets.DOCKER_USER }} - DOCKER_PASS: ${{ secrets.DOCKER_PASS }} - - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Login to DockerHub - run: docker login -u $DOCKER_USER -p $DOCKER_PASS - - - name: Pull docker image - run: docker pull "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" + - name: run tests + run: | + docker run --rm dictation-client-python:"${GITHUB_REF##*/}" ./tests/test_service_with_script_for_local_usage.sh + ./python/tests/test_service_with_script_for_docker_usage.sh dictation-client-python:"${GITHUB_REF##*/}" - - name: Run tests - run: | - docker run --rm "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" ./tests/test_service_with_script_for_local_usage.sh - ./python/tests/test_service_with_script_for_docker_usage.sh "${REPOSITORY}":dictation-client-python-dev-"${GITHUB_REF##*/}" test-cpp-service: name: Test C++ service - needs: cpp-build - runs-on: ubuntu-latest - env: - REPOSITORY: jaredharet/private - DOCKER_USER: ${{ secrets.DOCKER_USER }} - DOCKER_PASS: ${{ secrets.DOCKER_PASS }} + strategy: + matrix: + os: [ubuntu-18.04, ubuntu-20.04] + runs-on: ${{ matrix.os }} steps: - - name: Checkout code - uses: actions/checkout@v2 + - name: checkout code + uses: actions/checkout@v2 - - name: Login to DockerHub - run: docker login -u $DOCKER_USER -p $DOCKER_PASS + - name: initialize submodules + run: git submodule update --init --recursive --progress --depth 1 - - name: Pull docker image - run: docker pull "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" + - name: build docker image + run: | + cd cpp + ./build_docker_image.sh "${GITHUB_REF##*/}" - - name: Run tests + - name: run tests run: | - docker run --rm "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" ./cpp/tests/test_service_with_script_for_local_usage.sh - ./cpp/tests/test_service_with_script_for_docker_usage.sh "${REPOSITORY}":dictation-client-cpp-dev-"${GITHUB_REF##*/}" \ No newline at end of file + docker run --rm dictation-client-cpp:"${GITHUB_REF##*/}" ./cpp/tests/test_service_with_script_for_local_usage.sh + ./cpp/tests/test_service_with_script_for_docker_usage.sh dictation-client-cpp:"${GITHUB_REF##*/}" + \ No newline at end of file From 48cfc110ed3f2771c8a1857dd904ff675f9186ca Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Tue, 3 Aug 2021 07:43:39 +0200 Subject: [PATCH 59/65] correct indents --- .github/workflows/ci.yml | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a99d34a..98a5f30 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,25 +12,25 @@ jobs: steps: - name: checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v2 - name: set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} - name: initialize submodules - run: git submodule update --init --recursive --progress --depth 1 + run: git submodule update --init --recursive --progress --depth 1 - name: build docker image - run: | - cd python - ./build_docker_image.sh "${GITHUB_REF##*/}" + run: | + cd python + ./build_docker_image.sh "${GITHUB_REF##*/}" - name: run tests - run: | - docker run --rm dictation-client-python:"${GITHUB_REF##*/}" ./tests/test_service_with_script_for_local_usage.sh - ./python/tests/test_service_with_script_for_docker_usage.sh dictation-client-python:"${GITHUB_REF##*/}" + run: | + docker run --rm dictation-client-python:"${GITHUB_REF##*/}" ./tests/test_service_with_script_for_local_usage.sh + ./python/tests/test_service_with_script_for_docker_usage.sh dictation-client-python:"${GITHUB_REF##*/}" test-cpp-service: @@ -42,10 +42,10 @@ jobs: steps: - name: checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v2 - name: initialize submodules - run: git submodule update --init --recursive --progress --depth 1 + run: git submodule update --init --recursive --progress --depth 1 - name: build docker image run: | @@ -56,4 +56,3 @@ jobs: run: | docker run --rm dictation-client-cpp:"${GITHUB_REF##*/}" ./cpp/tests/test_service_with_script_for_local_usage.sh ./cpp/tests/test_service_with_script_for_docker_usage.sh dictation-client-cpp:"${GITHUB_REF##*/}" - \ No newline at end of file From d99c3f16552aa215db4348ec7db13c325531e68d Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Tue, 3 Aug 2021 09:21:34 +0200 Subject: [PATCH 60/65] set directly ubuntu-20.04 as base OS for published images --- .github/workflows/publish-images.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-images.yml b/.github/workflows/publish-images.yml index 4ae7ffe..b6953cc 100644 --- a/.github/workflows/publish-images.yml +++ b/.github/workflows/publish-images.yml @@ -7,7 +7,7 @@ jobs: python-build: name: Build and publish Python image - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - name: checkout code @@ -27,7 +27,7 @@ jobs: cpp-build: name: Build and publish C++ image - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - name: checkout code From a8fdc741b4d956b9fb622c9e419d5bba687ee6e8 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Wed, 4 Aug 2021 15:15:59 +0200 Subject: [PATCH 61/65] update httplib2 to 0.19.0 --- python/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/requirements.txt b/python/requirements.txt index eb60a3c..a60ca98 100755 --- a/python/requirements.txt +++ b/python/requirements.txt @@ -11,7 +11,7 @@ google-auth-httplib2==0.0.3 google-cloud-core==1.0.2 google-cloud-speech==1.0.0 googleapis-common-protos==1.6.0 -httplib2==0.14.0 +httplib2==0.19.0 oauth2client==2.0.0 pydub==0.23.1 pyaudio==0.2.11 From c97301131cb53fe37a6bc8f885774d3e02ba3c90 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Wed, 18 Aug 2021 03:46:25 +0200 Subject: [PATCH 62/65] add multi-stage build for cpp image --- cpp/Dockerfile | 20 +++++++++++++++++++- cpp/build_docker_image.sh | 2 ++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/cpp/Dockerfile b/cpp/Dockerfile index 9d921e9..64aec82 100644 --- a/cpp/Dockerfile +++ b/cpp/Dockerfile @@ -1,7 +1,9 @@ -FROM ubuntu:20.04 +FROM ubuntu:20.04 AS build-stage ARG DEBIAN_FRONTEND=noninteractive +LABEL dictation_client_cpp_build_stage_tmp=true + ADD ./cpp /dictation-client/cpp ADD ./proto /dictation-client/proto ADD ./tools /dictation-client/tools @@ -36,3 +38,19 @@ RUN ./tools/install_boost.sh 4 \ RUN ./tools/build_googleapis.sh && cd cpp && ./make_proto.sh RUN cd cpp && cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release && cmake --build build -- -j 4 + +RUN strip cpp/build/dictation_client + +# ----------------------------------------------------------------------------------------------------- # + +FROM ubuntu:20.04 + +ARG DEBIAN_FRONTEND=noninteractive + +LABEL maintainer="" + +COPY --from=build-stage /dictation-client/cpp/build/dictation_client /dictation-client/cpp/build/dictation_client +COPY --from=build-stage /dictation-client/submodules/ /dictation-client/submodules/ +COPY --from=build-stage /opt /opt + +WORKDIR /dictation-client diff --git a/cpp/build_docker_image.sh b/cpp/build_docker_image.sh index 6019a8a..57785b0 100755 --- a/cpp/build_docker_image.sh +++ b/cpp/build_docker_image.sh @@ -17,3 +17,5 @@ else fi docker build -f "${SCRIPTPATH}/Dockerfile" -t dictation-client-cpp:"${COMMIT_TAG}" "${SCRIPTPATH}/.." + +docker rmi "$(docker images --filter=label=dictation_client_cpp_build_stage_tmp=true -q)" From 582961907cad3a3c8a79fbfe9d35c0c0da9f4f0b Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Wed, 18 Aug 2021 03:48:34 +0200 Subject: [PATCH 63/65] remove pre-build proto sources --- cpp/docker/run_dictation_client_cpp.sh | 38 +- .../dictation_asr.grpc.pb.cc | 118 - .../dictation_asr.grpc.pb.h | 458 -- cpp/libdictation-client/dictation_asr.pb.cc | 5129 --------------- cpp/libdictation-client/dictation_asr.pb.h | 5811 ----------------- python/Dockerfile | 6 +- python/README.md | 24 +- python/docker/run_dictation_client_python.sh | 30 +- python/make_proto.sh | 9 +- python/service/dictation_asr_pb2.py | 1039 --- python/service/dictation_asr_pb2_grpc.py | 76 - python/setup.sh | 3 + 12 files changed, 59 insertions(+), 12682 deletions(-) delete mode 100644 cpp/libdictation-client/dictation_asr.grpc.pb.cc delete mode 100644 cpp/libdictation-client/dictation_asr.grpc.pb.h delete mode 100644 cpp/libdictation-client/dictation_asr.pb.cc delete mode 100644 cpp/libdictation-client/dictation_asr.pb.h delete mode 100644 python/service/dictation_asr_pb2.py delete mode 100644 python/service/dictation_asr_pb2_grpc.py diff --git a/cpp/docker/run_dictation_client_cpp.sh b/cpp/docker/run_dictation_client_cpp.sh index ff27893..0904062 100755 --- a/cpp/docker/run_dictation_client_cpp.sh +++ b/cpp/docker/run_dictation_client_cpp.sh @@ -7,7 +7,7 @@ set -euo pipefail IFS=$'\n\t' -IMAGE_VERSION=2.3.2 +IMAGE_VERSION=2.3.3 SCRIPT=$(realpath "$0") SCRIPTPATH=$(dirname "${SCRIPT}") @@ -22,12 +22,12 @@ Dictation ASR gRPC client options: -h, --help Print help message. --custom-image=IMAGE:TAG Uses a custom docker image instead of the default. - -s=ADDRESS, --service-address=ADDRESS + -s=ADDRESS, --service-address=ADDRESS IP address and port (address:port) of a service the client will connect to. --tls If set, uses tls authentication, otherwise use insecure channel (default). The tls credential files (client.crt, client.key, ca.crt) should be placed inside 'tls' directory. - -f=WAVE, --filename=WAVE + -f=WAVE, --filename=WAVE Path to wave file with audio content to be sent to service via RPC. - --session-id=SESSION_ID + --session-id=SESSION_ID Session ID to be passed to the service. If not specified, the service will generate a default session ID itself. --grpc-timeout=GRPC_TIMEOUT Timeout in milliseconds used to set gRPC deadline - how long the client is willing to wait for a reply from the server. If not specified, the service will set the deadline to a very large number. @@ -35,9 +35,9 @@ Dictation ASR gRPC client options: --time-offsets If true, returns also recognized word time offsets. --single-utterance If set - the recognizer will detect a single spoken utterance. --interim-results If set - messages with temporal results will be shown. - --service-settings=SETTINGS + --service-settings=SETTINGS Semicolon-separated list of key=value pairs defining settings to be sent to service via gRPC request. - --max-alternatives=MAX_ALTERNATIVES + --max-alternatives=MAX_ALTERNATIVES Maximum number of recognition hypotheses to be returned. --context-phrase=CONTEXT_PHRASE Specifies which context model to use. @@ -49,25 +49,25 @@ while getopts "f:hs:-:" optchar; do case "${optchar}" in -) case "${OPTARG}" in - custom-image=*) + custom-image=*) docker_image=${OPTARG#*=} ;; - help) - usage; exit 0 + help) + usage; exit 0 ;; - tls) + tls) opts+=( "--ssl-dir" "/volume/tls" ) ;; - time-offsets) + time-offsets) opts+=( "--time-offsets=true" ) ;; - single-utterance) + single-utterance) opts+=( "--single-utterance=true" ) ;; - interim-results) + interim-results) opts+=( "--interim-results=true" ) ;; - streaming) + streaming) opts+=( "--streaming" ) ;; filename=*) @@ -86,21 +86,21 @@ while getopts "f:hs:-:" optchar; do fi ;; esac;; - f) + f) val=${OPTARG#*=} opt=${OPTARG%=$val} opts+=( "--wav-path" "/volume/wav/${val##*/}" ) ;; - h) - usage; exit 0 + h) + usage; exit 0 ;; - s) + s) val=${OPTARG#*=} opt=${OPTARG%=$val} opts+=( "--service-address" "${val}" ) ;; *) - usage + usage exit 1 ;; esac diff --git a/cpp/libdictation-client/dictation_asr.grpc.pb.cc b/cpp/libdictation-client/dictation_asr.grpc.pb.cc deleted file mode 100644 index 7e55fa9..0000000 --- a/cpp/libdictation-client/dictation_asr.grpc.pb.cc +++ /dev/null @@ -1,118 +0,0 @@ -// Generated by the gRPC C++ plugin. -// If you make any local change, they will be lost. -// source: dictation_asr.proto - -#include "dictation_asr.pb.h" -#include "dictation_asr.grpc.pb.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -namespace google { -namespace cloud { -namespace speech { -namespace v1 { - -static const char* Speech_method_names[] = { - "/google.cloud.speech.v1.Speech/Recognize", - "/google.cloud.speech.v1.Speech/StreamingRecognize", -}; - -std::unique_ptr< Speech::Stub> Speech::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { - (void)options; - std::unique_ptr< Speech::Stub> stub(new Speech::Stub(channel)); - return stub; -} - -Speech::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel) - : channel_(channel), rpcmethod_Recognize_(Speech_method_names[0], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_StreamingRecognize_(Speech_method_names[1], ::grpc::internal::RpcMethod::BIDI_STREAMING, channel) - {} - -::grpc::Status Speech::Stub::Recognize(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest& request, ::google::cloud::speech::v1::RecognizeResponse* response) { - return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_Recognize_, context, request, response); -} - -void Speech::Stub::experimental_async::Recognize(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest* request, ::google::cloud::speech::v1::RecognizeResponse* response, std::function f) { - ::grpc_impl::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_Recognize_, context, request, response, std::move(f)); -} - -void Speech::Stub::experimental_async::Recognize(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::google::cloud::speech::v1::RecognizeResponse* response, std::function f) { - ::grpc_impl::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_Recognize_, context, request, response, std::move(f)); -} - -void Speech::Stub::experimental_async::Recognize(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest* request, ::google::cloud::speech::v1::RecognizeResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { - ::grpc_impl::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_Recognize_, context, request, response, reactor); -} - -void Speech::Stub::experimental_async::Recognize(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::google::cloud::speech::v1::RecognizeResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { - ::grpc_impl::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_Recognize_, context, request, response, reactor); -} - -::grpc::ClientAsyncResponseReader< ::google::cloud::speech::v1::RecognizeResponse>* Speech::Stub::AsyncRecognizeRaw(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest& request, ::grpc::CompletionQueue* cq) { - return ::grpc_impl::internal::ClientAsyncResponseReaderFactory< ::google::cloud::speech::v1::RecognizeResponse>::Create(channel_.get(), cq, rpcmethod_Recognize_, context, request, true); -} - -::grpc::ClientAsyncResponseReader< ::google::cloud::speech::v1::RecognizeResponse>* Speech::Stub::PrepareAsyncRecognizeRaw(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest& request, ::grpc::CompletionQueue* cq) { - return ::grpc_impl::internal::ClientAsyncResponseReaderFactory< ::google::cloud::speech::v1::RecognizeResponse>::Create(channel_.get(), cq, rpcmethod_Recognize_, context, request, false); -} - -::grpc::ClientReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>* Speech::Stub::StreamingRecognizeRaw(::grpc::ClientContext* context) { - return ::grpc_impl::internal::ClientReaderWriterFactory< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>::Create(channel_.get(), rpcmethod_StreamingRecognize_, context); -} - -void Speech::Stub::experimental_async::StreamingRecognize(::grpc::ClientContext* context, ::grpc::experimental::ClientBidiReactor< ::google::cloud::speech::v1::StreamingRecognizeRequest,::google::cloud::speech::v1::StreamingRecognizeResponse>* reactor) { - ::grpc_impl::internal::ClientCallbackReaderWriterFactory< ::google::cloud::speech::v1::StreamingRecognizeRequest,::google::cloud::speech::v1::StreamingRecognizeResponse>::Create(stub_->channel_.get(), stub_->rpcmethod_StreamingRecognize_, context, reactor); -} - -::grpc::ClientAsyncReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>* Speech::Stub::AsyncStreamingRecognizeRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) { - return ::grpc_impl::internal::ClientAsyncReaderWriterFactory< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>::Create(channel_.get(), cq, rpcmethod_StreamingRecognize_, context, true, tag); -} - -::grpc::ClientAsyncReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>* Speech::Stub::PrepareAsyncStreamingRecognizeRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) { - return ::grpc_impl::internal::ClientAsyncReaderWriterFactory< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>::Create(channel_.get(), cq, rpcmethod_StreamingRecognize_, context, false, nullptr); -} - -Speech::Service::Service() { - AddMethod(new ::grpc::internal::RpcServiceMethod( - Speech_method_names[0], - ::grpc::internal::RpcMethod::NORMAL_RPC, - new ::grpc::internal::RpcMethodHandler< Speech::Service, ::google::cloud::speech::v1::RecognizeRequest, ::google::cloud::speech::v1::RecognizeResponse>( - std::mem_fn(&Speech::Service::Recognize), this))); - AddMethod(new ::grpc::internal::RpcServiceMethod( - Speech_method_names[1], - ::grpc::internal::RpcMethod::BIDI_STREAMING, - new ::grpc::internal::BidiStreamingHandler< Speech::Service, ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>( - std::mem_fn(&Speech::Service::StreamingRecognize), this))); -} - -Speech::Service::~Service() { -} - -::grpc::Status Speech::Service::Recognize(::grpc::ServerContext* context, const ::google::cloud::speech::v1::RecognizeRequest* request, ::google::cloud::speech::v1::RecognizeResponse* response) { - (void) context; - (void) request; - (void) response; - return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); -} - -::grpc::Status Speech::Service::StreamingRecognize(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeResponse, ::google::cloud::speech::v1::StreamingRecognizeRequest>* stream) { - (void) context; - (void) stream; - return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); -} - - -} // namespace google -} // namespace cloud -} // namespace speech -} // namespace v1 - diff --git a/cpp/libdictation-client/dictation_asr.grpc.pb.h b/cpp/libdictation-client/dictation_asr.grpc.pb.h deleted file mode 100644 index 7e8b711..0000000 --- a/cpp/libdictation-client/dictation_asr.grpc.pb.h +++ /dev/null @@ -1,458 +0,0 @@ -// Generated by the gRPC C++ plugin. -// If you make any local change, they will be lost. -// source: dictation_asr.proto -// Original file comments: -// Copyright 2018 Google LLC. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// Modified by Techmo, copyright by Google. Changes include: -// 1. Additions that introduce new features to the original API. Extensions (parts that were added to the original document) by Techmo are marked with [**Extension by Techmo**] tag. -// - `MP3` audio encoding type. -// - `ConfigField` as means to provide additional configuration. -// - `ResultFinalizationCause` as means to indicate MRCPv2-related recognition result finalization cause. -// - `RecognitionLattice` and `LatticeEdge` as means to return detailed recognition results. -// 2. Modifications of comments, according to how recognition is performed by Techmo. -// - [*Unused*] tags for fields or values that are not used (ignored when provided in request, never returned in response). -// - [*Unsupported*] tags for fields or values that will result in an error when provided in request. -// 3. Removal of `LongRunningRecognize` support (commented out). -#ifndef GRPC_dictation_5fasr_2eproto__INCLUDED -#define GRPC_dictation_5fasr_2eproto__INCLUDED - -#include "dictation_asr.pb.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace grpc_impl { -class CompletionQueue; -class ServerCompletionQueue; -class ServerContext; -} // namespace grpc_impl - -namespace grpc { -namespace experimental { -template -class MessageAllocator; -} // namespace experimental -} // namespace grpc - -namespace google { -namespace cloud { -namespace speech { -namespace v1 { - -// Service that implements Google Cloud Speech API extended by Techmo. -class Speech final { - public: - static constexpr char const* service_full_name() { - return "google.cloud.speech.v1.Speech"; - } - class StubInterface { - public: - virtual ~StubInterface() {} - // Performs synchronous speech recognition: receive results after all audio - // has been sent and processed. - virtual ::grpc::Status Recognize(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest& request, ::google::cloud::speech::v1::RecognizeResponse* response) = 0; - std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::cloud::speech::v1::RecognizeResponse>> AsyncRecognize(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest& request, ::grpc::CompletionQueue* cq) { - return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::cloud::speech::v1::RecognizeResponse>>(AsyncRecognizeRaw(context, request, cq)); - } - std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::cloud::speech::v1::RecognizeResponse>> PrepareAsyncRecognize(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest& request, ::grpc::CompletionQueue* cq) { - return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::cloud::speech::v1::RecognizeResponse>>(PrepareAsyncRecognizeRaw(context, request, cq)); - } - // Performs asynchronous speech recognition: receive results via the - // google.longrunning.Operations interface. Returns either an - // `Operation.error` or an `Operation.response` which contains - // a `LongRunningRecognizeResponse` message. - // rpc LongRunningRecognize(LongRunningRecognizeRequest) returns (google.longrunning.Operation) { - // option (google.api.http) = { - // post: "/v1/speech:longrunningrecognize" - // body: "*" - // }; - // } - // - // Performs bidirectional streaming speech recognition: receive results while - // sending audio. This method is only available via the gRPC API (not REST). - std::unique_ptr< ::grpc::ClientReaderWriterInterface< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>> StreamingRecognize(::grpc::ClientContext* context) { - return std::unique_ptr< ::grpc::ClientReaderWriterInterface< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>>(StreamingRecognizeRaw(context)); - } - std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>> AsyncStreamingRecognize(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) { - return std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>>(AsyncStreamingRecognizeRaw(context, cq, tag)); - } - std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>> PrepareAsyncStreamingRecognize(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) { - return std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>>(PrepareAsyncStreamingRecognizeRaw(context, cq)); - } - class experimental_async_interface { - public: - virtual ~experimental_async_interface() {} - // Performs synchronous speech recognition: receive results after all audio - // has been sent and processed. - virtual void Recognize(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest* request, ::google::cloud::speech::v1::RecognizeResponse* response, std::function) = 0; - virtual void Recognize(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::google::cloud::speech::v1::RecognizeResponse* response, std::function) = 0; - virtual void Recognize(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest* request, ::google::cloud::speech::v1::RecognizeResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; - virtual void Recognize(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::google::cloud::speech::v1::RecognizeResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; - // Performs asynchronous speech recognition: receive results via the - // google.longrunning.Operations interface. Returns either an - // `Operation.error` or an `Operation.response` which contains - // a `LongRunningRecognizeResponse` message. - // rpc LongRunningRecognize(LongRunningRecognizeRequest) returns (google.longrunning.Operation) { - // option (google.api.http) = { - // post: "/v1/speech:longrunningrecognize" - // body: "*" - // }; - // } - // - // Performs bidirectional streaming speech recognition: receive results while - // sending audio. This method is only available via the gRPC API (not REST). - virtual void StreamingRecognize(::grpc::ClientContext* context, ::grpc::experimental::ClientBidiReactor< ::google::cloud::speech::v1::StreamingRecognizeRequest,::google::cloud::speech::v1::StreamingRecognizeResponse>* reactor) = 0; - }; - virtual class experimental_async_interface* experimental_async() { return nullptr; } - private: - virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::cloud::speech::v1::RecognizeResponse>* AsyncRecognizeRaw(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest& request, ::grpc::CompletionQueue* cq) = 0; - virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::cloud::speech::v1::RecognizeResponse>* PrepareAsyncRecognizeRaw(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest& request, ::grpc::CompletionQueue* cq) = 0; - virtual ::grpc::ClientReaderWriterInterface< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>* StreamingRecognizeRaw(::grpc::ClientContext* context) = 0; - virtual ::grpc::ClientAsyncReaderWriterInterface< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>* AsyncStreamingRecognizeRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) = 0; - virtual ::grpc::ClientAsyncReaderWriterInterface< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>* PrepareAsyncStreamingRecognizeRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) = 0; - }; - class Stub final : public StubInterface { - public: - Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel); - ::grpc::Status Recognize(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest& request, ::google::cloud::speech::v1::RecognizeResponse* response) override; - std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::cloud::speech::v1::RecognizeResponse>> AsyncRecognize(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest& request, ::grpc::CompletionQueue* cq) { - return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::cloud::speech::v1::RecognizeResponse>>(AsyncRecognizeRaw(context, request, cq)); - } - std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::cloud::speech::v1::RecognizeResponse>> PrepareAsyncRecognize(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest& request, ::grpc::CompletionQueue* cq) { - return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::cloud::speech::v1::RecognizeResponse>>(PrepareAsyncRecognizeRaw(context, request, cq)); - } - std::unique_ptr< ::grpc::ClientReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>> StreamingRecognize(::grpc::ClientContext* context) { - return std::unique_ptr< ::grpc::ClientReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>>(StreamingRecognizeRaw(context)); - } - std::unique_ptr< ::grpc::ClientAsyncReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>> AsyncStreamingRecognize(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) { - return std::unique_ptr< ::grpc::ClientAsyncReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>>(AsyncStreamingRecognizeRaw(context, cq, tag)); - } - std::unique_ptr< ::grpc::ClientAsyncReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>> PrepareAsyncStreamingRecognize(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) { - return std::unique_ptr< ::grpc::ClientAsyncReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>>(PrepareAsyncStreamingRecognizeRaw(context, cq)); - } - class experimental_async final : - public StubInterface::experimental_async_interface { - public: - void Recognize(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest* request, ::google::cloud::speech::v1::RecognizeResponse* response, std::function) override; - void Recognize(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::google::cloud::speech::v1::RecognizeResponse* response, std::function) override; - void Recognize(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest* request, ::google::cloud::speech::v1::RecognizeResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; - void Recognize(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::google::cloud::speech::v1::RecognizeResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; - void StreamingRecognize(::grpc::ClientContext* context, ::grpc::experimental::ClientBidiReactor< ::google::cloud::speech::v1::StreamingRecognizeRequest,::google::cloud::speech::v1::StreamingRecognizeResponse>* reactor) override; - private: - friend class Stub; - explicit experimental_async(Stub* stub): stub_(stub) { } - Stub* stub() { return stub_; } - Stub* stub_; - }; - class experimental_async_interface* experimental_async() override { return &async_stub_; } - - private: - std::shared_ptr< ::grpc::ChannelInterface> channel_; - class experimental_async async_stub_{this}; - ::grpc::ClientAsyncResponseReader< ::google::cloud::speech::v1::RecognizeResponse>* AsyncRecognizeRaw(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest& request, ::grpc::CompletionQueue* cq) override; - ::grpc::ClientAsyncResponseReader< ::google::cloud::speech::v1::RecognizeResponse>* PrepareAsyncRecognizeRaw(::grpc::ClientContext* context, const ::google::cloud::speech::v1::RecognizeRequest& request, ::grpc::CompletionQueue* cq) override; - ::grpc::ClientReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>* StreamingRecognizeRaw(::grpc::ClientContext* context) override; - ::grpc::ClientAsyncReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>* AsyncStreamingRecognizeRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) override; - ::grpc::ClientAsyncReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>* PrepareAsyncStreamingRecognizeRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) override; - const ::grpc::internal::RpcMethod rpcmethod_Recognize_; - const ::grpc::internal::RpcMethod rpcmethod_StreamingRecognize_; - }; - static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); - - class Service : public ::grpc::Service { - public: - Service(); - virtual ~Service(); - // Performs synchronous speech recognition: receive results after all audio - // has been sent and processed. - virtual ::grpc::Status Recognize(::grpc::ServerContext* context, const ::google::cloud::speech::v1::RecognizeRequest* request, ::google::cloud::speech::v1::RecognizeResponse* response); - // Performs asynchronous speech recognition: receive results via the - // google.longrunning.Operations interface. Returns either an - // `Operation.error` or an `Operation.response` which contains - // a `LongRunningRecognizeResponse` message. - // rpc LongRunningRecognize(LongRunningRecognizeRequest) returns (google.longrunning.Operation) { - // option (google.api.http) = { - // post: "/v1/speech:longrunningrecognize" - // body: "*" - // }; - // } - // - // Performs bidirectional streaming speech recognition: receive results while - // sending audio. This method is only available via the gRPC API (not REST). - virtual ::grpc::Status StreamingRecognize(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeResponse, ::google::cloud::speech::v1::StreamingRecognizeRequest>* stream); - }; - template - class WithAsyncMethod_Recognize : public BaseClass { - private: - void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} - public: - WithAsyncMethod_Recognize() { - ::grpc::Service::MarkMethodAsync(0); - } - ~WithAsyncMethod_Recognize() override { - BaseClassMustBeDerivedFromService(this); - } - // disable synchronous version of this method - ::grpc::Status Recognize(::grpc::ServerContext* /*context*/, const ::google::cloud::speech::v1::RecognizeRequest* /*request*/, ::google::cloud::speech::v1::RecognizeResponse* /*response*/) override { - abort(); - return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); - } - void RequestRecognize(::grpc::ServerContext* context, ::google::cloud::speech::v1::RecognizeRequest* request, ::grpc::ServerAsyncResponseWriter< ::google::cloud::speech::v1::RecognizeResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); - } - }; - template - class WithAsyncMethod_StreamingRecognize : public BaseClass { - private: - void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} - public: - WithAsyncMethod_StreamingRecognize() { - ::grpc::Service::MarkMethodAsync(1); - } - ~WithAsyncMethod_StreamingRecognize() override { - BaseClassMustBeDerivedFromService(this); - } - // disable synchronous version of this method - ::grpc::Status StreamingRecognize(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeResponse, ::google::cloud::speech::v1::StreamingRecognizeRequest>* /*stream*/) override { - abort(); - return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); - } - void RequestStreamingRecognize(::grpc::ServerContext* context, ::grpc::ServerAsyncReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeResponse, ::google::cloud::speech::v1::StreamingRecognizeRequest>* stream, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncBidiStreaming(1, context, stream, new_call_cq, notification_cq, tag); - } - }; - typedef WithAsyncMethod_Recognize > AsyncService; - template - class ExperimentalWithCallbackMethod_Recognize : public BaseClass { - private: - void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} - public: - ExperimentalWithCallbackMethod_Recognize() { - ::grpc::Service::experimental().MarkMethodCallback(0, - new ::grpc_impl::internal::CallbackUnaryHandler< ::google::cloud::speech::v1::RecognizeRequest, ::google::cloud::speech::v1::RecognizeResponse>( - [this](::grpc::ServerContext* context, - const ::google::cloud::speech::v1::RecognizeRequest* request, - ::google::cloud::speech::v1::RecognizeResponse* response, - ::grpc::experimental::ServerCallbackRpcController* controller) { - return this->Recognize(context, request, response, controller); - })); - } - void SetMessageAllocatorFor_Recognize( - ::grpc::experimental::MessageAllocator< ::google::cloud::speech::v1::RecognizeRequest, ::google::cloud::speech::v1::RecognizeResponse>* allocator) { - static_cast<::grpc_impl::internal::CallbackUnaryHandler< ::google::cloud::speech::v1::RecognizeRequest, ::google::cloud::speech::v1::RecognizeResponse>*>( - ::grpc::Service::experimental().GetHandler(0)) - ->SetMessageAllocator(allocator); - } - ~ExperimentalWithCallbackMethod_Recognize() override { - BaseClassMustBeDerivedFromService(this); - } - // disable synchronous version of this method - ::grpc::Status Recognize(::grpc::ServerContext* /*context*/, const ::google::cloud::speech::v1::RecognizeRequest* /*request*/, ::google::cloud::speech::v1::RecognizeResponse* /*response*/) override { - abort(); - return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); - } - virtual void Recognize(::grpc::ServerContext* /*context*/, const ::google::cloud::speech::v1::RecognizeRequest* /*request*/, ::google::cloud::speech::v1::RecognizeResponse* /*response*/, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } - }; - template - class ExperimentalWithCallbackMethod_StreamingRecognize : public BaseClass { - private: - void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} - public: - ExperimentalWithCallbackMethod_StreamingRecognize() { - ::grpc::Service::experimental().MarkMethodCallback(1, - new ::grpc_impl::internal::CallbackBidiHandler< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>( - [this] { return this->StreamingRecognize(); })); - } - ~ExperimentalWithCallbackMethod_StreamingRecognize() override { - BaseClassMustBeDerivedFromService(this); - } - // disable synchronous version of this method - ::grpc::Status StreamingRecognize(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeResponse, ::google::cloud::speech::v1::StreamingRecognizeRequest>* /*stream*/) override { - abort(); - return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); - } - virtual ::grpc::experimental::ServerBidiReactor< ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>* StreamingRecognize() { - return new ::grpc_impl::internal::UnimplementedBidiReactor< - ::google::cloud::speech::v1::StreamingRecognizeRequest, ::google::cloud::speech::v1::StreamingRecognizeResponse>;} - }; - typedef ExperimentalWithCallbackMethod_Recognize > ExperimentalCallbackService; - template - class WithGenericMethod_Recognize : public BaseClass { - private: - void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} - public: - WithGenericMethod_Recognize() { - ::grpc::Service::MarkMethodGeneric(0); - } - ~WithGenericMethod_Recognize() override { - BaseClassMustBeDerivedFromService(this); - } - // disable synchronous version of this method - ::grpc::Status Recognize(::grpc::ServerContext* /*context*/, const ::google::cloud::speech::v1::RecognizeRequest* /*request*/, ::google::cloud::speech::v1::RecognizeResponse* /*response*/) override { - abort(); - return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); - } - }; - template - class WithGenericMethod_StreamingRecognize : public BaseClass { - private: - void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} - public: - WithGenericMethod_StreamingRecognize() { - ::grpc::Service::MarkMethodGeneric(1); - } - ~WithGenericMethod_StreamingRecognize() override { - BaseClassMustBeDerivedFromService(this); - } - // disable synchronous version of this method - ::grpc::Status StreamingRecognize(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeResponse, ::google::cloud::speech::v1::StreamingRecognizeRequest>* /*stream*/) override { - abort(); - return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); - } - }; - template - class WithRawMethod_Recognize : public BaseClass { - private: - void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} - public: - WithRawMethod_Recognize() { - ::grpc::Service::MarkMethodRaw(0); - } - ~WithRawMethod_Recognize() override { - BaseClassMustBeDerivedFromService(this); - } - // disable synchronous version of this method - ::grpc::Status Recognize(::grpc::ServerContext* /*context*/, const ::google::cloud::speech::v1::RecognizeRequest* /*request*/, ::google::cloud::speech::v1::RecognizeResponse* /*response*/) override { - abort(); - return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); - } - void RequestRecognize(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); - } - }; - template - class WithRawMethod_StreamingRecognize : public BaseClass { - private: - void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} - public: - WithRawMethod_StreamingRecognize() { - ::grpc::Service::MarkMethodRaw(1); - } - ~WithRawMethod_StreamingRecognize() override { - BaseClassMustBeDerivedFromService(this); - } - // disable synchronous version of this method - ::grpc::Status StreamingRecognize(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeResponse, ::google::cloud::speech::v1::StreamingRecognizeRequest>* /*stream*/) override { - abort(); - return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); - } - void RequestStreamingRecognize(::grpc::ServerContext* context, ::grpc::ServerAsyncReaderWriter< ::grpc::ByteBuffer, ::grpc::ByteBuffer>* stream, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncBidiStreaming(1, context, stream, new_call_cq, notification_cq, tag); - } - }; - template - class ExperimentalWithRawCallbackMethod_Recognize : public BaseClass { - private: - void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} - public: - ExperimentalWithRawCallbackMethod_Recognize() { - ::grpc::Service::experimental().MarkMethodRawCallback(0, - new ::grpc_impl::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( - [this](::grpc::ServerContext* context, - const ::grpc::ByteBuffer* request, - ::grpc::ByteBuffer* response, - ::grpc::experimental::ServerCallbackRpcController* controller) { - this->Recognize(context, request, response, controller); - })); - } - ~ExperimentalWithRawCallbackMethod_Recognize() override { - BaseClassMustBeDerivedFromService(this); - } - // disable synchronous version of this method - ::grpc::Status Recognize(::grpc::ServerContext* /*context*/, const ::google::cloud::speech::v1::RecognizeRequest* /*request*/, ::google::cloud::speech::v1::RecognizeResponse* /*response*/) override { - abort(); - return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); - } - virtual void Recognize(::grpc::ServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } - }; - template - class ExperimentalWithRawCallbackMethod_StreamingRecognize : public BaseClass { - private: - void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} - public: - ExperimentalWithRawCallbackMethod_StreamingRecognize() { - ::grpc::Service::experimental().MarkMethodRawCallback(1, - new ::grpc_impl::internal::CallbackBidiHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( - [this] { return this->StreamingRecognize(); })); - } - ~ExperimentalWithRawCallbackMethod_StreamingRecognize() override { - BaseClassMustBeDerivedFromService(this); - } - // disable synchronous version of this method - ::grpc::Status StreamingRecognize(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::google::cloud::speech::v1::StreamingRecognizeResponse, ::google::cloud::speech::v1::StreamingRecognizeRequest>* /*stream*/) override { - abort(); - return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); - } - virtual ::grpc::experimental::ServerBidiReactor< ::grpc::ByteBuffer, ::grpc::ByteBuffer>* StreamingRecognize() { - return new ::grpc_impl::internal::UnimplementedBidiReactor< - ::grpc::ByteBuffer, ::grpc::ByteBuffer>;} - }; - template - class WithStreamedUnaryMethod_Recognize : public BaseClass { - private: - void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} - public: - WithStreamedUnaryMethod_Recognize() { - ::grpc::Service::MarkMethodStreamed(0, - new ::grpc::internal::StreamedUnaryHandler< ::google::cloud::speech::v1::RecognizeRequest, ::google::cloud::speech::v1::RecognizeResponse>(std::bind(&WithStreamedUnaryMethod_Recognize::StreamedRecognize, this, std::placeholders::_1, std::placeholders::_2))); - } - ~WithStreamedUnaryMethod_Recognize() override { - BaseClassMustBeDerivedFromService(this); - } - // disable regular version of this method - ::grpc::Status Recognize(::grpc::ServerContext* /*context*/, const ::google::cloud::speech::v1::RecognizeRequest* /*request*/, ::google::cloud::speech::v1::RecognizeResponse* /*response*/) override { - abort(); - return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); - } - // replace default version of method with streamed unary - virtual ::grpc::Status StreamedRecognize(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::google::cloud::speech::v1::RecognizeRequest,::google::cloud::speech::v1::RecognizeResponse>* server_unary_streamer) = 0; - }; - typedef WithStreamedUnaryMethod_Recognize StreamedUnaryService; - typedef Service SplitStreamedService; - typedef WithStreamedUnaryMethod_Recognize StreamedService; -}; - -} // namespace v1 -} // namespace speech -} // namespace cloud -} // namespace google - - -#endif // GRPC_dictation_5fasr_2eproto__INCLUDED diff --git a/cpp/libdictation-client/dictation_asr.pb.cc b/cpp/libdictation-client/dictation_asr.pb.cc deleted file mode 100644 index 3c36906..0000000 --- a/cpp/libdictation-client/dictation_asr.pb.cc +++ /dev/null @@ -1,5129 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: dictation_asr.proto - -#include "dictation_asr.pb.h" - -#include - -#include -#include -#include -#include -#include -#include -#include -// @@protoc_insertion_point(includes) -#include -extern PROTOBUF_INTERNAL_EXPORT_dictation_5fasr_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ConfigField_dictation_5fasr_2eproto; -extern PROTOBUF_INTERNAL_EXPORT_dictation_5fasr_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LatticeEdge_dictation_5fasr_2eproto; -extern PROTOBUF_INTERNAL_EXPORT_dictation_5fasr_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_RecognitionAudio_dictation_5fasr_2eproto; -extern PROTOBUF_INTERNAL_EXPORT_dictation_5fasr_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_RecognitionConfig_dictation_5fasr_2eproto; -extern PROTOBUF_INTERNAL_EXPORT_dictation_5fasr_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_RecognitionLattice_dictation_5fasr_2eproto; -extern PROTOBUF_INTERNAL_EXPORT_dictation_5fasr_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SpeechContext_dictation_5fasr_2eproto; -extern PROTOBUF_INTERNAL_EXPORT_dictation_5fasr_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SpeechRecognitionAlternative_dictation_5fasr_2eproto; -extern PROTOBUF_INTERNAL_EXPORT_dictation_5fasr_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_SpeechRecognitionResult_dictation_5fasr_2eproto; -extern PROTOBUF_INTERNAL_EXPORT_dictation_5fasr_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_StreamingRecognitionConfig_dictation_5fasr_2eproto; -extern PROTOBUF_INTERNAL_EXPORT_dictation_5fasr_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_StreamingRecognitionResult_dictation_5fasr_2eproto; -extern PROTOBUF_INTERNAL_EXPORT_dictation_5fasr_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_WordInfo_dictation_5fasr_2eproto; -extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2fduration_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Duration_google_2fprotobuf_2fduration_2eproto; -extern PROTOBUF_INTERNAL_EXPORT_google_2frpc_2fstatus_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Status_google_2frpc_2fstatus_2eproto; -namespace google { -namespace cloud { -namespace speech { -namespace v1 { -class RecognizeRequestDefaultTypeInternal { - public: - ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; -} _RecognizeRequest_default_instance_; -class StreamingRecognizeRequestDefaultTypeInternal { - public: - ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; - const ::google::cloud::speech::v1::StreamingRecognitionConfig* streaming_config_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr audio_content_; -} _StreamingRecognizeRequest_default_instance_; -class StreamingRecognitionConfigDefaultTypeInternal { - public: - ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; -} _StreamingRecognitionConfig_default_instance_; -class RecognitionConfigDefaultTypeInternal { - public: - ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; -} _RecognitionConfig_default_instance_; -class SpeechContextDefaultTypeInternal { - public: - ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; -} _SpeechContext_default_instance_; -class ConfigFieldDefaultTypeInternal { - public: - ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; -} _ConfigField_default_instance_; -class RecognitionAudioDefaultTypeInternal { - public: - ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr content_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr uri_; -} _RecognitionAudio_default_instance_; -class RecognizeResponseDefaultTypeInternal { - public: - ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; -} _RecognizeResponse_default_instance_; -class StreamingRecognizeResponseDefaultTypeInternal { - public: - ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; -} _StreamingRecognizeResponse_default_instance_; -class StreamingRecognitionResultDefaultTypeInternal { - public: - ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; -} _StreamingRecognitionResult_default_instance_; -class SpeechRecognitionResultDefaultTypeInternal { - public: - ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; -} _SpeechRecognitionResult_default_instance_; -class SpeechRecognitionAlternativeDefaultTypeInternal { - public: - ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; -} _SpeechRecognitionAlternative_default_instance_; -class WordInfoDefaultTypeInternal { - public: - ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; -} _WordInfo_default_instance_; -class RecognitionLatticeDefaultTypeInternal { - public: - ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; -} _RecognitionLattice_default_instance_; -class LatticeEdgeDefaultTypeInternal { - public: - ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed _instance; -} _LatticeEdge_default_instance_; -} // namespace v1 -} // namespace speech -} // namespace cloud -} // namespace google -static void InitDefaultsscc_info_ConfigField_dictation_5fasr_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - { - void* ptr = &::google::cloud::speech::v1::_ConfigField_default_instance_; - new (ptr) ::google::cloud::speech::v1::ConfigField(); - ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); - } - ::google::cloud::speech::v1::ConfigField::InitAsDefaultInstance(); -} - -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ConfigField_dictation_5fasr_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ConfigField_dictation_5fasr_2eproto}, {}}; - -static void InitDefaultsscc_info_LatticeEdge_dictation_5fasr_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - { - void* ptr = &::google::cloud::speech::v1::_LatticeEdge_default_instance_; - new (ptr) ::google::cloud::speech::v1::LatticeEdge(); - ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); - } - ::google::cloud::speech::v1::LatticeEdge::InitAsDefaultInstance(); -} - -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LatticeEdge_dictation_5fasr_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_LatticeEdge_dictation_5fasr_2eproto}, {}}; - -static void InitDefaultsscc_info_RecognitionAudio_dictation_5fasr_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - { - void* ptr = &::google::cloud::speech::v1::_RecognitionAudio_default_instance_; - new (ptr) ::google::cloud::speech::v1::RecognitionAudio(); - ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); - } - ::google::cloud::speech::v1::RecognitionAudio::InitAsDefaultInstance(); -} - -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_RecognitionAudio_dictation_5fasr_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_RecognitionAudio_dictation_5fasr_2eproto}, {}}; - -static void InitDefaultsscc_info_RecognitionConfig_dictation_5fasr_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - { - void* ptr = &::google::cloud::speech::v1::_RecognitionConfig_default_instance_; - new (ptr) ::google::cloud::speech::v1::RecognitionConfig(); - ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); - } - ::google::cloud::speech::v1::RecognitionConfig::InitAsDefaultInstance(); -} - -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_RecognitionConfig_dictation_5fasr_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_RecognitionConfig_dictation_5fasr_2eproto}, { - &scc_info_SpeechContext_dictation_5fasr_2eproto.base, - &scc_info_ConfigField_dictation_5fasr_2eproto.base,}}; - -static void InitDefaultsscc_info_RecognitionLattice_dictation_5fasr_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - { - void* ptr = &::google::cloud::speech::v1::_RecognitionLattice_default_instance_; - new (ptr) ::google::cloud::speech::v1::RecognitionLattice(); - ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); - } - ::google::cloud::speech::v1::RecognitionLattice::InitAsDefaultInstance(); -} - -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_RecognitionLattice_dictation_5fasr_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_RecognitionLattice_dictation_5fasr_2eproto}, { - &scc_info_LatticeEdge_dictation_5fasr_2eproto.base,}}; - -static void InitDefaultsscc_info_RecognizeRequest_dictation_5fasr_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - { - void* ptr = &::google::cloud::speech::v1::_RecognizeRequest_default_instance_; - new (ptr) ::google::cloud::speech::v1::RecognizeRequest(); - ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); - } - ::google::cloud::speech::v1::RecognizeRequest::InitAsDefaultInstance(); -} - -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_RecognizeRequest_dictation_5fasr_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_RecognizeRequest_dictation_5fasr_2eproto}, { - &scc_info_RecognitionConfig_dictation_5fasr_2eproto.base, - &scc_info_RecognitionAudio_dictation_5fasr_2eproto.base,}}; - -static void InitDefaultsscc_info_RecognizeResponse_dictation_5fasr_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - { - void* ptr = &::google::cloud::speech::v1::_RecognizeResponse_default_instance_; - new (ptr) ::google::cloud::speech::v1::RecognizeResponse(); - ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); - } - ::google::cloud::speech::v1::RecognizeResponse::InitAsDefaultInstance(); -} - -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_RecognizeResponse_dictation_5fasr_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_RecognizeResponse_dictation_5fasr_2eproto}, { - &scc_info_SpeechRecognitionResult_dictation_5fasr_2eproto.base,}}; - -static void InitDefaultsscc_info_SpeechContext_dictation_5fasr_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - { - void* ptr = &::google::cloud::speech::v1::_SpeechContext_default_instance_; - new (ptr) ::google::cloud::speech::v1::SpeechContext(); - ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); - } - ::google::cloud::speech::v1::SpeechContext::InitAsDefaultInstance(); -} - -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SpeechContext_dictation_5fasr_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_SpeechContext_dictation_5fasr_2eproto}, {}}; - -static void InitDefaultsscc_info_SpeechRecognitionAlternative_dictation_5fasr_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - { - void* ptr = &::google::cloud::speech::v1::_SpeechRecognitionAlternative_default_instance_; - new (ptr) ::google::cloud::speech::v1::SpeechRecognitionAlternative(); - ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); - } - ::google::cloud::speech::v1::SpeechRecognitionAlternative::InitAsDefaultInstance(); -} - -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SpeechRecognitionAlternative_dictation_5fasr_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_SpeechRecognitionAlternative_dictation_5fasr_2eproto}, { - &scc_info_WordInfo_dictation_5fasr_2eproto.base,}}; - -static void InitDefaultsscc_info_SpeechRecognitionResult_dictation_5fasr_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - { - void* ptr = &::google::cloud::speech::v1::_SpeechRecognitionResult_default_instance_; - new (ptr) ::google::cloud::speech::v1::SpeechRecognitionResult(); - ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); - } - ::google::cloud::speech::v1::SpeechRecognitionResult::InitAsDefaultInstance(); -} - -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_SpeechRecognitionResult_dictation_5fasr_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_SpeechRecognitionResult_dictation_5fasr_2eproto}, { - &scc_info_SpeechRecognitionAlternative_dictation_5fasr_2eproto.base, - &scc_info_RecognitionLattice_dictation_5fasr_2eproto.base,}}; - -static void InitDefaultsscc_info_StreamingRecognitionConfig_dictation_5fasr_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - { - void* ptr = &::google::cloud::speech::v1::_StreamingRecognitionConfig_default_instance_; - new (ptr) ::google::cloud::speech::v1::StreamingRecognitionConfig(); - ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); - } - ::google::cloud::speech::v1::StreamingRecognitionConfig::InitAsDefaultInstance(); -} - -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_StreamingRecognitionConfig_dictation_5fasr_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_StreamingRecognitionConfig_dictation_5fasr_2eproto}, { - &scc_info_RecognitionConfig_dictation_5fasr_2eproto.base,}}; - -static void InitDefaultsscc_info_StreamingRecognitionResult_dictation_5fasr_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - { - void* ptr = &::google::cloud::speech::v1::_StreamingRecognitionResult_default_instance_; - new (ptr) ::google::cloud::speech::v1::StreamingRecognitionResult(); - ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); - } - ::google::cloud::speech::v1::StreamingRecognitionResult::InitAsDefaultInstance(); -} - -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_StreamingRecognitionResult_dictation_5fasr_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_StreamingRecognitionResult_dictation_5fasr_2eproto}, { - &scc_info_SpeechRecognitionAlternative_dictation_5fasr_2eproto.base, - &scc_info_RecognitionLattice_dictation_5fasr_2eproto.base,}}; - -static void InitDefaultsscc_info_StreamingRecognizeRequest_dictation_5fasr_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - { - void* ptr = &::google::cloud::speech::v1::_StreamingRecognizeRequest_default_instance_; - new (ptr) ::google::cloud::speech::v1::StreamingRecognizeRequest(); - ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); - } - ::google::cloud::speech::v1::StreamingRecognizeRequest::InitAsDefaultInstance(); -} - -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_StreamingRecognizeRequest_dictation_5fasr_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_StreamingRecognizeRequest_dictation_5fasr_2eproto}, { - &scc_info_StreamingRecognitionConfig_dictation_5fasr_2eproto.base,}}; - -static void InitDefaultsscc_info_StreamingRecognizeResponse_dictation_5fasr_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - { - void* ptr = &::google::cloud::speech::v1::_StreamingRecognizeResponse_default_instance_; - new (ptr) ::google::cloud::speech::v1::StreamingRecognizeResponse(); - ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); - } - ::google::cloud::speech::v1::StreamingRecognizeResponse::InitAsDefaultInstance(); -} - -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_StreamingRecognizeResponse_dictation_5fasr_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_StreamingRecognizeResponse_dictation_5fasr_2eproto}, { - &scc_info_Status_google_2frpc_2fstatus_2eproto.base, - &scc_info_StreamingRecognitionResult_dictation_5fasr_2eproto.base,}}; - -static void InitDefaultsscc_info_WordInfo_dictation_5fasr_2eproto() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - { - void* ptr = &::google::cloud::speech::v1::_WordInfo_default_instance_; - new (ptr) ::google::cloud::speech::v1::WordInfo(); - ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr); - } - ::google::cloud::speech::v1::WordInfo::InitAsDefaultInstance(); -} - -::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_WordInfo_dictation_5fasr_2eproto = - {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_WordInfo_dictation_5fasr_2eproto}, { - &scc_info_Duration_google_2fprotobuf_2fduration_2eproto.base,}}; - -static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_dictation_5fasr_2eproto[15]; -static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_dictation_5fasr_2eproto[3]; -static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_dictation_5fasr_2eproto = nullptr; - -const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_dictation_5fasr_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognizeRequest, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognizeRequest, config_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognizeRequest, audio_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognizeRequest, _internal_metadata_), - ~0u, // no _extensions_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognizeRequest, _oneof_case_[0]), - ~0u, // no _weak_field_map_ - offsetof(::google::cloud::speech::v1::StreamingRecognizeRequestDefaultTypeInternal, streaming_config_), - offsetof(::google::cloud::speech::v1::StreamingRecognizeRequestDefaultTypeInternal, audio_content_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognizeRequest, streaming_request_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognitionConfig, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognitionConfig, config_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognitionConfig, single_utterance_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognitionConfig, interim_results_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionConfig, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionConfig, encoding_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionConfig, sample_rate_hertz_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionConfig, language_code_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionConfig, max_alternatives_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionConfig, profanity_filter_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionConfig, speech_contexts_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionConfig, enable_word_time_offsets_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionConfig, enable_automatic_punctuation_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionConfig, config_fields_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionConfig, model_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionConfig, use_enhanced_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::SpeechContext, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::SpeechContext, phrases_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::ConfigField, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::ConfigField, key_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::ConfigField, value_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionAudio, _internal_metadata_), - ~0u, // no _extensions_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionAudio, _oneof_case_[0]), - ~0u, // no _weak_field_map_ - offsetof(::google::cloud::speech::v1::RecognitionAudioDefaultTypeInternal, content_), - offsetof(::google::cloud::speech::v1::RecognitionAudioDefaultTypeInternal, uri_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionAudio, audio_source_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognizeResponse, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognizeResponse, results_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognizeResponse, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognizeResponse, error_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognizeResponse, results_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognizeResponse, speech_event_type_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognitionResult, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognitionResult, alternatives_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognitionResult, is_final_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognitionResult, stability_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognitionResult, result_finalization_cause_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::StreamingRecognitionResult, lattice_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::SpeechRecognitionResult, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::SpeechRecognitionResult, alternatives_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::SpeechRecognitionResult, lattice_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::SpeechRecognitionAlternative, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::SpeechRecognitionAlternative, transcript_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::SpeechRecognitionAlternative, confidence_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::SpeechRecognitionAlternative, words_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::WordInfo, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::WordInfo, start_time_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::WordInfo, end_time_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::WordInfo, word_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionLattice, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionLattice, final_nodes_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::RecognitionLattice, edges_), - ~0u, // no _has_bits_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::LatticeEdge, _internal_metadata_), - ~0u, // no _extensions_ - ~0u, // no _oneof_case_ - ~0u, // no _weak_field_map_ - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::LatticeEdge, start_node_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::LatticeEdge, end_node_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::LatticeEdge, symbol_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::LatticeEdge, language_cost_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::LatticeEdge, acoustic_cost_), - PROTOBUF_FIELD_OFFSET(::google::cloud::speech::v1::LatticeEdge, duration_), -}; -static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { - { 0, -1, sizeof(::google::cloud::speech::v1::RecognizeRequest)}, - { 7, -1, sizeof(::google::cloud::speech::v1::StreamingRecognizeRequest)}, - { 15, -1, sizeof(::google::cloud::speech::v1::StreamingRecognitionConfig)}, - { 23, -1, sizeof(::google::cloud::speech::v1::RecognitionConfig)}, - { 39, -1, sizeof(::google::cloud::speech::v1::SpeechContext)}, - { 45, -1, sizeof(::google::cloud::speech::v1::ConfigField)}, - { 52, -1, sizeof(::google::cloud::speech::v1::RecognitionAudio)}, - { 60, -1, sizeof(::google::cloud::speech::v1::RecognizeResponse)}, - { 66, -1, sizeof(::google::cloud::speech::v1::StreamingRecognizeResponse)}, - { 74, -1, sizeof(::google::cloud::speech::v1::StreamingRecognitionResult)}, - { 84, -1, sizeof(::google::cloud::speech::v1::SpeechRecognitionResult)}, - { 91, -1, sizeof(::google::cloud::speech::v1::SpeechRecognitionAlternative)}, - { 99, -1, sizeof(::google::cloud::speech::v1::WordInfo)}, - { 107, -1, sizeof(::google::cloud::speech::v1::RecognitionLattice)}, - { 114, -1, sizeof(::google::cloud::speech::v1::LatticeEdge)}, -}; - -static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { - reinterpret_cast(&::google::cloud::speech::v1::_RecognizeRequest_default_instance_), - reinterpret_cast(&::google::cloud::speech::v1::_StreamingRecognizeRequest_default_instance_), - reinterpret_cast(&::google::cloud::speech::v1::_StreamingRecognitionConfig_default_instance_), - reinterpret_cast(&::google::cloud::speech::v1::_RecognitionConfig_default_instance_), - reinterpret_cast(&::google::cloud::speech::v1::_SpeechContext_default_instance_), - reinterpret_cast(&::google::cloud::speech::v1::_ConfigField_default_instance_), - reinterpret_cast(&::google::cloud::speech::v1::_RecognitionAudio_default_instance_), - reinterpret_cast(&::google::cloud::speech::v1::_RecognizeResponse_default_instance_), - reinterpret_cast(&::google::cloud::speech::v1::_StreamingRecognizeResponse_default_instance_), - reinterpret_cast(&::google::cloud::speech::v1::_StreamingRecognitionResult_default_instance_), - reinterpret_cast(&::google::cloud::speech::v1::_SpeechRecognitionResult_default_instance_), - reinterpret_cast(&::google::cloud::speech::v1::_SpeechRecognitionAlternative_default_instance_), - reinterpret_cast(&::google::cloud::speech::v1::_WordInfo_default_instance_), - reinterpret_cast(&::google::cloud::speech::v1::_RecognitionLattice_default_instance_), - reinterpret_cast(&::google::cloud::speech::v1::_LatticeEdge_default_instance_), -}; - -const char descriptor_table_protodef_dictation_5fasr_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = - "\n\023dictation_asr.proto\022\026google.cloud.spee" - "ch.v1\032\034google/api/annotations.proto\032\036goo" - "gle/protobuf/duration.proto\032\027google/rpc/" - "status.proto\"\206\001\n\020RecognizeRequest\0229\n\006con" - "fig\030\001 \001(\0132).google.cloud.speech.v1.Recog" - "nitionConfig\0227\n\005audio\030\002 \001(\0132(.google.clo" - "ud.speech.v1.RecognitionAudio\"\231\001\n\031Stream" - "ingRecognizeRequest\022N\n\020streaming_config\030" - "\001 \001(\01322.google.cloud.speech.v1.Streaming" - "RecognitionConfigH\000\022\027\n\raudio_content\030\002 \001" - "(\014H\000B\023\n\021streaming_request\"\212\001\n\032StreamingR" - "ecognitionConfig\0229\n\006config\030\001 \001(\0132).googl" - "e.cloud.speech.v1.RecognitionConfig\022\030\n\020s" - "ingle_utterance\030\002 \001(\010\022\027\n\017interim_results" - "\030\003 \001(\010\"\304\004\n\021RecognitionConfig\022I\n\010encoding" - "\030\001 \001(\01627.google.cloud.speech.v1.Recognit" - "ionConfig.AudioEncoding\022\031\n\021sample_rate_h" - "ertz\030\002 \001(\005\022\025\n\rlanguage_code\030\003 \001(\t\022\030\n\020max" - "_alternatives\030\004 \001(\005\022\030\n\020profanity_filter\030" - "\005 \001(\010\022>\n\017speech_contexts\030\006 \003(\0132%.google." - "cloud.speech.v1.SpeechContext\022 \n\030enable_" - "word_time_offsets\030\010 \001(\010\022$\n\034enable_automa" - "tic_punctuation\030\013 \001(\010\022:\n\rconfig_fields\030\014" - " \003(\0132#.google.cloud.speech.v1.ConfigFiel" - "d\022\r\n\005model\030\r \001(\t\022\024\n\014use_enhanced\030\016 \001(\010\"\224" - "\001\n\rAudioEncoding\022\030\n\024ENCODING_UNSPECIFIED" - "\020\000\022\014\n\010LINEAR16\020\001\022\010\n\004FLAC\020\002\022\t\n\005MULAW\020\003\022\007\n" - "\003AMR\020\004\022\n\n\006AMR_WB\020\005\022\014\n\010OGG_OPUS\020\006\022\032\n\026SPEE" - "X_WITH_HEADER_BYTE\020\007\022\007\n\003MP3\020\010\" \n\rSpeechC" - "ontext\022\017\n\007phrases\030\001 \003(\t\")\n\013ConfigField\022\013" - "\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"D\n\020Recognitio" - "nAudio\022\021\n\007content\030\001 \001(\014H\000\022\r\n\003uri\030\002 \001(\tH\000" - "B\016\n\014audio_source\"U\n\021RecognizeResponse\022@\n" - "\007results\030\002 \003(\0132/.google.cloud.speech.v1." - "SpeechRecognitionResult\"\261\002\n\032StreamingRec" - "ognizeResponse\022!\n\005error\030\001 \001(\0132\022.google.r" - "pc.Status\022C\n\007results\030\002 \003(\01322.google.clou" - "d.speech.v1.StreamingRecognitionResult\022]" - "\n\021speech_event_type\030\004 \001(\0162B.google.cloud" - ".speech.v1.StreamingRecognizeResponse.Sp" - "eechEventType\"L\n\017SpeechEventType\022\034\n\030SPEE" - "CH_EVENT_UNSPECIFIED\020\000\022\033\n\027END_OF_SINGLE_" - "UTTERANCE\020\001\"\341\003\n\032StreamingRecognitionResu" - "lt\022J\n\014alternatives\030\001 \003(\01324.google.cloud." - "speech.v1.SpeechRecognitionAlternative\022\020" - "\n\010is_final\030\002 \001(\010\022\021\n\tstability\030\003 \001(\002\022m\n\031r" - "esult_finalization_cause\030\004 \001(\0162J.google." - "cloud.speech.v1.StreamingRecognitionResu" - "lt.ResultFinalizationCause\022;\n\007lattice\030\005 " - "\003(\0132*.google.cloud.speech.v1.Recognition" - "Lattice\"\245\001\n\027ResultFinalizationCause\022)\n%R" - "ESULT_FINALIZATION_CAUSE_UNSPECIFIED\020\000\022\013" - "\n\007SUCCESS\020\001\022\024\n\020NO_INPUT_TIMEOUT\020\002\022\023\n\017SUC" - "CESS_MAXTIME\020\003\022\021\n\rPARTIAL_MATCH\020\004\022\024\n\020NO_" - "MATCH_MAXTIME\020\005\"\242\001\n\027SpeechRecognitionRes" - "ult\022J\n\014alternatives\030\001 \003(\01324.google.cloud" - ".speech.v1.SpeechRecognitionAlternative\022" - ";\n\007lattice\030\005 \003(\0132*.google.cloud.speech.v" - "1.RecognitionLattice\"w\n\034SpeechRecognitio" - "nAlternative\022\022\n\ntranscript\030\001 \001(\t\022\022\n\nconf" - "idence\030\002 \001(\002\022/\n\005words\030\003 \003(\0132 .google.clo" - "ud.speech.v1.WordInfo\"t\n\010WordInfo\022-\n\nsta" - "rt_time\030\001 \001(\0132\031.google.protobuf.Duration" - "\022+\n\010end_time\030\002 \001(\0132\031.google.protobuf.Dur" - "ation\022\014\n\004word\030\003 \001(\t\"]\n\022RecognitionLattic" - "e\022\023\n\013final_nodes\030\001 \003(\005\0222\n\005edges\030\002 \003(\0132#." - "google.cloud.speech.v1.LatticeEdge\"\203\001\n\013L" - "atticeEdge\022\022\n\nstart_node\030\001 \001(\005\022\020\n\010end_no" - "de\030\002 \001(\005\022\016\n\006symbol\030\003 \001(\t\022\025\n\rlanguage_cos" - "t\030\004 \001(\002\022\025\n\racoustic_cost\030\005 \001(\002\022\020\n\010durati" - "on\030\006 \001(\0052\220\002\n\006Speech\022\201\001\n\tRecognize\022(.goog" - "le.cloud.speech.v1.RecognizeRequest\032).go" - "ogle.cloud.speech.v1.RecognizeResponse\"\037" - "\202\323\344\223\002\031\"\024/v1/speech:recognize:\001*\022\201\001\n\022Stre" - "amingRecognize\0221.google.cloud.speech.v1." - "StreamingRecognizeRequest\0322.google.cloud" - ".speech.v1.StreamingRecognizeResponse\"\000(" - "\0010\001Bl\n\032com.google.cloud.speech.v1B\013Speec" - "hProtoP\001Z= 1900) -constexpr RecognitionConfig_AudioEncoding RecognitionConfig::ENCODING_UNSPECIFIED; -constexpr RecognitionConfig_AudioEncoding RecognitionConfig::LINEAR16; -constexpr RecognitionConfig_AudioEncoding RecognitionConfig::FLAC; -constexpr RecognitionConfig_AudioEncoding RecognitionConfig::MULAW; -constexpr RecognitionConfig_AudioEncoding RecognitionConfig::AMR; -constexpr RecognitionConfig_AudioEncoding RecognitionConfig::AMR_WB; -constexpr RecognitionConfig_AudioEncoding RecognitionConfig::OGG_OPUS; -constexpr RecognitionConfig_AudioEncoding RecognitionConfig::SPEEX_WITH_HEADER_BYTE; -constexpr RecognitionConfig_AudioEncoding RecognitionConfig::MP3; -constexpr RecognitionConfig_AudioEncoding RecognitionConfig::AudioEncoding_MIN; -constexpr RecognitionConfig_AudioEncoding RecognitionConfig::AudioEncoding_MAX; -constexpr int RecognitionConfig::AudioEncoding_ARRAYSIZE; -#endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* StreamingRecognizeResponse_SpeechEventType_descriptor() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_dictation_5fasr_2eproto); - return file_level_enum_descriptors_dictation_5fasr_2eproto[1]; -} -bool StreamingRecognizeResponse_SpeechEventType_IsValid(int value) { - switch (value) { - case 0: - case 1: - return true; - default: - return false; - } -} - -#if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) -constexpr StreamingRecognizeResponse_SpeechEventType StreamingRecognizeResponse::SPEECH_EVENT_UNSPECIFIED; -constexpr StreamingRecognizeResponse_SpeechEventType StreamingRecognizeResponse::END_OF_SINGLE_UTTERANCE; -constexpr StreamingRecognizeResponse_SpeechEventType StreamingRecognizeResponse::SpeechEventType_MIN; -constexpr StreamingRecognizeResponse_SpeechEventType StreamingRecognizeResponse::SpeechEventType_MAX; -constexpr int StreamingRecognizeResponse::SpeechEventType_ARRAYSIZE; -#endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* StreamingRecognitionResult_ResultFinalizationCause_descriptor() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_dictation_5fasr_2eproto); - return file_level_enum_descriptors_dictation_5fasr_2eproto[2]; -} -bool StreamingRecognitionResult_ResultFinalizationCause_IsValid(int value) { - switch (value) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - return true; - default: - return false; - } -} - -#if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) -constexpr StreamingRecognitionResult_ResultFinalizationCause StreamingRecognitionResult::RESULT_FINALIZATION_CAUSE_UNSPECIFIED; -constexpr StreamingRecognitionResult_ResultFinalizationCause StreamingRecognitionResult::SUCCESS; -constexpr StreamingRecognitionResult_ResultFinalizationCause StreamingRecognitionResult::NO_INPUT_TIMEOUT; -constexpr StreamingRecognitionResult_ResultFinalizationCause StreamingRecognitionResult::SUCCESS_MAXTIME; -constexpr StreamingRecognitionResult_ResultFinalizationCause StreamingRecognitionResult::PARTIAL_MATCH; -constexpr StreamingRecognitionResult_ResultFinalizationCause StreamingRecognitionResult::NO_MATCH_MAXTIME; -constexpr StreamingRecognitionResult_ResultFinalizationCause StreamingRecognitionResult::ResultFinalizationCause_MIN; -constexpr StreamingRecognitionResult_ResultFinalizationCause StreamingRecognitionResult::ResultFinalizationCause_MAX; -constexpr int StreamingRecognitionResult::ResultFinalizationCause_ARRAYSIZE; -#endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900) - -// =================================================================== - -void RecognizeRequest::InitAsDefaultInstance() { - ::google::cloud::speech::v1::_RecognizeRequest_default_instance_._instance.get_mutable()->config_ = const_cast< ::google::cloud::speech::v1::RecognitionConfig*>( - ::google::cloud::speech::v1::RecognitionConfig::internal_default_instance()); - ::google::cloud::speech::v1::_RecognizeRequest_default_instance_._instance.get_mutable()->audio_ = const_cast< ::google::cloud::speech::v1::RecognitionAudio*>( - ::google::cloud::speech::v1::RecognitionAudio::internal_default_instance()); -} -class RecognizeRequest::_Internal { - public: - static const ::google::cloud::speech::v1::RecognitionConfig& config(const RecognizeRequest* msg); - static const ::google::cloud::speech::v1::RecognitionAudio& audio(const RecognizeRequest* msg); -}; - -const ::google::cloud::speech::v1::RecognitionConfig& -RecognizeRequest::_Internal::config(const RecognizeRequest* msg) { - return *msg->config_; -} -const ::google::cloud::speech::v1::RecognitionAudio& -RecognizeRequest::_Internal::audio(const RecognizeRequest* msg) { - return *msg->audio_; -} -void RecognizeRequest::unsafe_arena_set_allocated_config( - ::google::cloud::speech::v1::RecognitionConfig* config) { - if (GetArenaNoVirtual() == nullptr) { - delete config_; - } - config_ = config; - if (config) { - - } else { - - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.RecognizeRequest.config) -} -void RecognizeRequest::unsafe_arena_set_allocated_audio( - ::google::cloud::speech::v1::RecognitionAudio* audio) { - if (GetArenaNoVirtual() == nullptr) { - delete audio_; - } - audio_ = audio; - if (audio) { - - } else { - - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.RecognizeRequest.audio) -} -RecognizeRequest::RecognizeRequest() - : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { - SharedCtor(); - // @@protoc_insertion_point(constructor:google.cloud.speech.v1.RecognizeRequest) -} -RecognizeRequest::RecognizeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(arena) { - SharedCtor(); - RegisterArenaDtor(arena); - // @@protoc_insertion_point(arena_constructor:google.cloud.speech.v1.RecognizeRequest) -} -RecognizeRequest::RecognizeRequest(const RecognizeRequest& from) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr) { - _internal_metadata_.MergeFrom(from._internal_metadata_); - if (from._internal_has_config()) { - config_ = new ::google::cloud::speech::v1::RecognitionConfig(*from.config_); - } else { - config_ = nullptr; - } - if (from._internal_has_audio()) { - audio_ = new ::google::cloud::speech::v1::RecognitionAudio(*from.audio_); - } else { - audio_ = nullptr; - } - // @@protoc_insertion_point(copy_constructor:google.cloud.speech.v1.RecognizeRequest) -} - -void RecognizeRequest::SharedCtor() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RecognizeRequest_dictation_5fasr_2eproto.base); - ::memset(&config_, 0, static_cast( - reinterpret_cast(&audio_) - - reinterpret_cast(&config_)) + sizeof(audio_)); -} - -RecognizeRequest::~RecognizeRequest() { - // @@protoc_insertion_point(destructor:google.cloud.speech.v1.RecognizeRequest) - SharedDtor(); -} - -void RecognizeRequest::SharedDtor() { - GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); - if (this != internal_default_instance()) delete config_; - if (this != internal_default_instance()) delete audio_; -} - -void RecognizeRequest::ArenaDtor(void* object) { - RecognizeRequest* _this = reinterpret_cast< RecognizeRequest* >(object); - (void)_this; -} -void RecognizeRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void RecognizeRequest::SetCachedSize(int size) const { - _cached_size_.Set(size); -} -const RecognizeRequest& RecognizeRequest::default_instance() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RecognizeRequest_dictation_5fasr_2eproto.base); - return *internal_default_instance(); -} - - -void RecognizeRequest::Clear() { -// @@protoc_insertion_point(message_clear_start:google.cloud.speech.v1.RecognizeRequest) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - if (GetArenaNoVirtual() == nullptr && config_ != nullptr) { - delete config_; - } - config_ = nullptr; - if (GetArenaNoVirtual() == nullptr && audio_ != nullptr) { - delete audio_; - } - audio_ = nullptr; - _internal_metadata_.Clear(); -} - -const char* RecognizeRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; - while (!ctx->Done(&ptr)) { - ::PROTOBUF_NAMESPACE_ID::uint32 tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - CHK_(ptr); - switch (tag >> 3) { - // .google.cloud.speech.v1.RecognitionConfig config = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { - ptr = ctx->ParseMessage(_internal_mutable_config(), ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - // .google.cloud.speech.v1.RecognitionAudio audio = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { - ptr = ctx->ParseMessage(_internal_mutable_audio(), ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - default: { - handle_unusual: - if ((tag & 7) == 4 || tag == 0) { - ctx->SetLastTag(tag); - goto success; - } - ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); - CHK_(ptr != nullptr); - continue; - } - } // switch - } // while -success: - return ptr; -failure: - ptr = nullptr; - goto success; -#undef CHK_ -} - -::PROTOBUF_NAMESPACE_ID::uint8* RecognizeRequest::_InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:google.cloud.speech.v1.RecognizeRequest) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // .google.cloud.speech.v1.RecognitionConfig config = 1; - if (this->has_config()) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage( - 1, _Internal::config(this), target, stream); - } - - // .google.cloud.speech.v1.RecognitionAudio audio = 2; - if (this->has_audio()) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage( - 2, _Internal::audio(this), target, stream); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields(), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:google.cloud.speech.v1.RecognizeRequest) - return target; -} - -size_t RecognizeRequest::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:google.cloud.speech.v1.RecognizeRequest) - size_t total_size = 0; - - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // .google.cloud.speech.v1.RecognitionConfig config = 1; - if (this->has_config()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *config_); - } - - // .google.cloud.speech.v1.RecognitionAudio audio = 2; - if (this->has_audio()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *audio_); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( - _internal_metadata_, total_size, &_cached_size_); - } - int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); - SetCachedSize(cached_size); - return total_size; -} - -void RecognizeRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:google.cloud.speech.v1.RecognizeRequest) - GOOGLE_DCHECK_NE(&from, this); - const RecognizeRequest* source = - ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( - &from); - if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.cloud.speech.v1.RecognizeRequest) - ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:google.cloud.speech.v1.RecognizeRequest) - MergeFrom(*source); - } -} - -void RecognizeRequest::MergeFrom(const RecognizeRequest& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:google.cloud.speech.v1.RecognizeRequest) - GOOGLE_DCHECK_NE(&from, this); - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - if (from.has_config()) { - _internal_mutable_config()->::google::cloud::speech::v1::RecognitionConfig::MergeFrom(from._internal_config()); - } - if (from.has_audio()) { - _internal_mutable_audio()->::google::cloud::speech::v1::RecognitionAudio::MergeFrom(from._internal_audio()); - } -} - -void RecognizeRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:google.cloud.speech.v1.RecognizeRequest) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void RecognizeRequest::CopyFrom(const RecognizeRequest& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:google.cloud.speech.v1.RecognizeRequest) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool RecognizeRequest::IsInitialized() const { - return true; -} - -void RecognizeRequest::InternalSwap(RecognizeRequest* other) { - using std::swap; - _internal_metadata_.Swap(&other->_internal_metadata_); - swap(config_, other->config_); - swap(audio_, other->audio_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata RecognizeRequest::GetMetadata() const { - return GetMetadataStatic(); -} - - -// =================================================================== - -void StreamingRecognizeRequest::InitAsDefaultInstance() { - ::google::cloud::speech::v1::_StreamingRecognizeRequest_default_instance_.streaming_config_ = const_cast< ::google::cloud::speech::v1::StreamingRecognitionConfig*>( - ::google::cloud::speech::v1::StreamingRecognitionConfig::internal_default_instance()); - ::google::cloud::speech::v1::_StreamingRecognizeRequest_default_instance_.audio_content_.UnsafeSetDefault( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); -} -class StreamingRecognizeRequest::_Internal { - public: - static const ::google::cloud::speech::v1::StreamingRecognitionConfig& streaming_config(const StreamingRecognizeRequest* msg); -}; - -const ::google::cloud::speech::v1::StreamingRecognitionConfig& -StreamingRecognizeRequest::_Internal::streaming_config(const StreamingRecognizeRequest* msg) { - return *msg->streaming_request_.streaming_config_; -} -void StreamingRecognizeRequest::set_allocated_streaming_config(::google::cloud::speech::v1::StreamingRecognitionConfig* streaming_config) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); - clear_streaming_request(); - if (streaming_config) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(streaming_config); - if (message_arena != submessage_arena) { - streaming_config = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, streaming_config, submessage_arena); - } - set_has_streaming_config(); - streaming_request_.streaming_config_ = streaming_config; - } - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.StreamingRecognizeRequest.streaming_config) -} -StreamingRecognizeRequest::StreamingRecognizeRequest() - : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { - SharedCtor(); - // @@protoc_insertion_point(constructor:google.cloud.speech.v1.StreamingRecognizeRequest) -} -StreamingRecognizeRequest::StreamingRecognizeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(arena) { - SharedCtor(); - RegisterArenaDtor(arena); - // @@protoc_insertion_point(arena_constructor:google.cloud.speech.v1.StreamingRecognizeRequest) -} -StreamingRecognizeRequest::StreamingRecognizeRequest(const StreamingRecognizeRequest& from) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr) { - _internal_metadata_.MergeFrom(from._internal_metadata_); - clear_has_streaming_request(); - switch (from.streaming_request_case()) { - case kStreamingConfig: { - _internal_mutable_streaming_config()->::google::cloud::speech::v1::StreamingRecognitionConfig::MergeFrom(from._internal_streaming_config()); - break; - } - case kAudioContent: { - _internal_set_audio_content(from._internal_audio_content()); - break; - } - case STREAMING_REQUEST_NOT_SET: { - break; - } - } - // @@protoc_insertion_point(copy_constructor:google.cloud.speech.v1.StreamingRecognizeRequest) -} - -void StreamingRecognizeRequest::SharedCtor() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_StreamingRecognizeRequest_dictation_5fasr_2eproto.base); - clear_has_streaming_request(); -} - -StreamingRecognizeRequest::~StreamingRecognizeRequest() { - // @@protoc_insertion_point(destructor:google.cloud.speech.v1.StreamingRecognizeRequest) - SharedDtor(); -} - -void StreamingRecognizeRequest::SharedDtor() { - GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); - if (has_streaming_request()) { - clear_streaming_request(); - } -} - -void StreamingRecognizeRequest::ArenaDtor(void* object) { - StreamingRecognizeRequest* _this = reinterpret_cast< StreamingRecognizeRequest* >(object); - (void)_this; -} -void StreamingRecognizeRequest::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void StreamingRecognizeRequest::SetCachedSize(int size) const { - _cached_size_.Set(size); -} -const StreamingRecognizeRequest& StreamingRecognizeRequest::default_instance() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_StreamingRecognizeRequest_dictation_5fasr_2eproto.base); - return *internal_default_instance(); -} - - -void StreamingRecognizeRequest::clear_streaming_request() { -// @@protoc_insertion_point(one_of_clear_start:google.cloud.speech.v1.StreamingRecognizeRequest) - switch (streaming_request_case()) { - case kStreamingConfig: { - if (GetArenaNoVirtual() == nullptr) { - delete streaming_request_.streaming_config_; - } - break; - } - case kAudioContent: { - streaming_request_.audio_content_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); - break; - } - case STREAMING_REQUEST_NOT_SET: { - break; - } - } - _oneof_case_[0] = STREAMING_REQUEST_NOT_SET; -} - - -void StreamingRecognizeRequest::Clear() { -// @@protoc_insertion_point(message_clear_start:google.cloud.speech.v1.StreamingRecognizeRequest) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - clear_streaming_request(); - _internal_metadata_.Clear(); -} - -const char* StreamingRecognizeRequest::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; - while (!ctx->Done(&ptr)) { - ::PROTOBUF_NAMESPACE_ID::uint32 tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - CHK_(ptr); - switch (tag >> 3) { - // .google.cloud.speech.v1.StreamingRecognitionConfig streaming_config = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { - ptr = ctx->ParseMessage(_internal_mutable_streaming_config(), ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - // bytes audio_content = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { - auto str = _internal_mutable_audio_content(); - ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); - CHK_(ptr); - } else goto handle_unusual; - continue; - default: { - handle_unusual: - if ((tag & 7) == 4 || tag == 0) { - ctx->SetLastTag(tag); - goto success; - } - ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); - CHK_(ptr != nullptr); - continue; - } - } // switch - } // while -success: - return ptr; -failure: - ptr = nullptr; - goto success; -#undef CHK_ -} - -::PROTOBUF_NAMESPACE_ID::uint8* StreamingRecognizeRequest::_InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:google.cloud.speech.v1.StreamingRecognizeRequest) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // .google.cloud.speech.v1.StreamingRecognitionConfig streaming_config = 1; - if (_internal_has_streaming_config()) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage( - 1, _Internal::streaming_config(this), target, stream); - } - - // bytes audio_content = 2; - if (_internal_has_audio_content()) { - target = stream->WriteBytesMaybeAliased( - 2, this->_internal_audio_content(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields(), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:google.cloud.speech.v1.StreamingRecognizeRequest) - return target; -} - -size_t StreamingRecognizeRequest::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:google.cloud.speech.v1.StreamingRecognizeRequest) - size_t total_size = 0; - - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - switch (streaming_request_case()) { - // .google.cloud.speech.v1.StreamingRecognitionConfig streaming_config = 1; - case kStreamingConfig: { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *streaming_request_.streaming_config_); - break; - } - // bytes audio_content = 2; - case kAudioContent: { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize( - this->_internal_audio_content()); - break; - } - case STREAMING_REQUEST_NOT_SET: { - break; - } - } - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( - _internal_metadata_, total_size, &_cached_size_); - } - int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); - SetCachedSize(cached_size); - return total_size; -} - -void StreamingRecognizeRequest::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:google.cloud.speech.v1.StreamingRecognizeRequest) - GOOGLE_DCHECK_NE(&from, this); - const StreamingRecognizeRequest* source = - ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( - &from); - if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.cloud.speech.v1.StreamingRecognizeRequest) - ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:google.cloud.speech.v1.StreamingRecognizeRequest) - MergeFrom(*source); - } -} - -void StreamingRecognizeRequest::MergeFrom(const StreamingRecognizeRequest& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:google.cloud.speech.v1.StreamingRecognizeRequest) - GOOGLE_DCHECK_NE(&from, this); - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - switch (from.streaming_request_case()) { - case kStreamingConfig: { - _internal_mutable_streaming_config()->::google::cloud::speech::v1::StreamingRecognitionConfig::MergeFrom(from._internal_streaming_config()); - break; - } - case kAudioContent: { - _internal_set_audio_content(from._internal_audio_content()); - break; - } - case STREAMING_REQUEST_NOT_SET: { - break; - } - } -} - -void StreamingRecognizeRequest::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:google.cloud.speech.v1.StreamingRecognizeRequest) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void StreamingRecognizeRequest::CopyFrom(const StreamingRecognizeRequest& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:google.cloud.speech.v1.StreamingRecognizeRequest) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool StreamingRecognizeRequest::IsInitialized() const { - return true; -} - -void StreamingRecognizeRequest::InternalSwap(StreamingRecognizeRequest* other) { - using std::swap; - _internal_metadata_.Swap(&other->_internal_metadata_); - swap(streaming_request_, other->streaming_request_); - swap(_oneof_case_[0], other->_oneof_case_[0]); -} - -::PROTOBUF_NAMESPACE_ID::Metadata StreamingRecognizeRequest::GetMetadata() const { - return GetMetadataStatic(); -} - - -// =================================================================== - -void StreamingRecognitionConfig::InitAsDefaultInstance() { - ::google::cloud::speech::v1::_StreamingRecognitionConfig_default_instance_._instance.get_mutable()->config_ = const_cast< ::google::cloud::speech::v1::RecognitionConfig*>( - ::google::cloud::speech::v1::RecognitionConfig::internal_default_instance()); -} -class StreamingRecognitionConfig::_Internal { - public: - static const ::google::cloud::speech::v1::RecognitionConfig& config(const StreamingRecognitionConfig* msg); -}; - -const ::google::cloud::speech::v1::RecognitionConfig& -StreamingRecognitionConfig::_Internal::config(const StreamingRecognitionConfig* msg) { - return *msg->config_; -} -void StreamingRecognitionConfig::unsafe_arena_set_allocated_config( - ::google::cloud::speech::v1::RecognitionConfig* config) { - if (GetArenaNoVirtual() == nullptr) { - delete config_; - } - config_ = config; - if (config) { - - } else { - - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.StreamingRecognitionConfig.config) -} -StreamingRecognitionConfig::StreamingRecognitionConfig() - : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { - SharedCtor(); - // @@protoc_insertion_point(constructor:google.cloud.speech.v1.StreamingRecognitionConfig) -} -StreamingRecognitionConfig::StreamingRecognitionConfig(::PROTOBUF_NAMESPACE_ID::Arena* arena) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(arena) { - SharedCtor(); - RegisterArenaDtor(arena); - // @@protoc_insertion_point(arena_constructor:google.cloud.speech.v1.StreamingRecognitionConfig) -} -StreamingRecognitionConfig::StreamingRecognitionConfig(const StreamingRecognitionConfig& from) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr) { - _internal_metadata_.MergeFrom(from._internal_metadata_); - if (from._internal_has_config()) { - config_ = new ::google::cloud::speech::v1::RecognitionConfig(*from.config_); - } else { - config_ = nullptr; - } - ::memcpy(&single_utterance_, &from.single_utterance_, - static_cast(reinterpret_cast(&interim_results_) - - reinterpret_cast(&single_utterance_)) + sizeof(interim_results_)); - // @@protoc_insertion_point(copy_constructor:google.cloud.speech.v1.StreamingRecognitionConfig) -} - -void StreamingRecognitionConfig::SharedCtor() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_StreamingRecognitionConfig_dictation_5fasr_2eproto.base); - ::memset(&config_, 0, static_cast( - reinterpret_cast(&interim_results_) - - reinterpret_cast(&config_)) + sizeof(interim_results_)); -} - -StreamingRecognitionConfig::~StreamingRecognitionConfig() { - // @@protoc_insertion_point(destructor:google.cloud.speech.v1.StreamingRecognitionConfig) - SharedDtor(); -} - -void StreamingRecognitionConfig::SharedDtor() { - GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); - if (this != internal_default_instance()) delete config_; -} - -void StreamingRecognitionConfig::ArenaDtor(void* object) { - StreamingRecognitionConfig* _this = reinterpret_cast< StreamingRecognitionConfig* >(object); - (void)_this; -} -void StreamingRecognitionConfig::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void StreamingRecognitionConfig::SetCachedSize(int size) const { - _cached_size_.Set(size); -} -const StreamingRecognitionConfig& StreamingRecognitionConfig::default_instance() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_StreamingRecognitionConfig_dictation_5fasr_2eproto.base); - return *internal_default_instance(); -} - - -void StreamingRecognitionConfig::Clear() { -// @@protoc_insertion_point(message_clear_start:google.cloud.speech.v1.StreamingRecognitionConfig) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - if (GetArenaNoVirtual() == nullptr && config_ != nullptr) { - delete config_; - } - config_ = nullptr; - ::memset(&single_utterance_, 0, static_cast( - reinterpret_cast(&interim_results_) - - reinterpret_cast(&single_utterance_)) + sizeof(interim_results_)); - _internal_metadata_.Clear(); -} - -const char* StreamingRecognitionConfig::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; - while (!ctx->Done(&ptr)) { - ::PROTOBUF_NAMESPACE_ID::uint32 tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - CHK_(ptr); - switch (tag >> 3) { - // .google.cloud.speech.v1.RecognitionConfig config = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { - ptr = ctx->ParseMessage(_internal_mutable_config(), ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - // bool single_utterance = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) { - single_utterance_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - // bool interim_results = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) { - interim_results_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - default: { - handle_unusual: - if ((tag & 7) == 4 || tag == 0) { - ctx->SetLastTag(tag); - goto success; - } - ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); - CHK_(ptr != nullptr); - continue; - } - } // switch - } // while -success: - return ptr; -failure: - ptr = nullptr; - goto success; -#undef CHK_ -} - -::PROTOBUF_NAMESPACE_ID::uint8* StreamingRecognitionConfig::_InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:google.cloud.speech.v1.StreamingRecognitionConfig) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // .google.cloud.speech.v1.RecognitionConfig config = 1; - if (this->has_config()) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage( - 1, _Internal::config(this), target, stream); - } - - // bool single_utterance = 2; - if (this->single_utterance() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_single_utterance(), target); - } - - // bool interim_results = 3; - if (this->interim_results() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_interim_results(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields(), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:google.cloud.speech.v1.StreamingRecognitionConfig) - return target; -} - -size_t StreamingRecognitionConfig::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:google.cloud.speech.v1.StreamingRecognitionConfig) - size_t total_size = 0; - - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // .google.cloud.speech.v1.RecognitionConfig config = 1; - if (this->has_config()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *config_); - } - - // bool single_utterance = 2; - if (this->single_utterance() != 0) { - total_size += 1 + 1; - } - - // bool interim_results = 3; - if (this->interim_results() != 0) { - total_size += 1 + 1; - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( - _internal_metadata_, total_size, &_cached_size_); - } - int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); - SetCachedSize(cached_size); - return total_size; -} - -void StreamingRecognitionConfig::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:google.cloud.speech.v1.StreamingRecognitionConfig) - GOOGLE_DCHECK_NE(&from, this); - const StreamingRecognitionConfig* source = - ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( - &from); - if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.cloud.speech.v1.StreamingRecognitionConfig) - ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:google.cloud.speech.v1.StreamingRecognitionConfig) - MergeFrom(*source); - } -} - -void StreamingRecognitionConfig::MergeFrom(const StreamingRecognitionConfig& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:google.cloud.speech.v1.StreamingRecognitionConfig) - GOOGLE_DCHECK_NE(&from, this); - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - if (from.has_config()) { - _internal_mutable_config()->::google::cloud::speech::v1::RecognitionConfig::MergeFrom(from._internal_config()); - } - if (from.single_utterance() != 0) { - _internal_set_single_utterance(from._internal_single_utterance()); - } - if (from.interim_results() != 0) { - _internal_set_interim_results(from._internal_interim_results()); - } -} - -void StreamingRecognitionConfig::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:google.cloud.speech.v1.StreamingRecognitionConfig) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void StreamingRecognitionConfig::CopyFrom(const StreamingRecognitionConfig& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:google.cloud.speech.v1.StreamingRecognitionConfig) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool StreamingRecognitionConfig::IsInitialized() const { - return true; -} - -void StreamingRecognitionConfig::InternalSwap(StreamingRecognitionConfig* other) { - using std::swap; - _internal_metadata_.Swap(&other->_internal_metadata_); - swap(config_, other->config_); - swap(single_utterance_, other->single_utterance_); - swap(interim_results_, other->interim_results_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata StreamingRecognitionConfig::GetMetadata() const { - return GetMetadataStatic(); -} - - -// =================================================================== - -void RecognitionConfig::InitAsDefaultInstance() { -} -class RecognitionConfig::_Internal { - public: -}; - -RecognitionConfig::RecognitionConfig() - : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { - SharedCtor(); - // @@protoc_insertion_point(constructor:google.cloud.speech.v1.RecognitionConfig) -} -RecognitionConfig::RecognitionConfig(::PROTOBUF_NAMESPACE_ID::Arena* arena) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(arena), - speech_contexts_(arena), - config_fields_(arena) { - SharedCtor(); - RegisterArenaDtor(arena); - // @@protoc_insertion_point(arena_constructor:google.cloud.speech.v1.RecognitionConfig) -} -RecognitionConfig::RecognitionConfig(const RecognitionConfig& from) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr), - speech_contexts_(from.speech_contexts_), - config_fields_(from.config_fields_) { - _internal_metadata_.MergeFrom(from._internal_metadata_); - language_code_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - if (!from._internal_language_code().empty()) { - language_code_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_language_code(), - GetArenaNoVirtual()); - } - model_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - if (!from._internal_model().empty()) { - model_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_model(), - GetArenaNoVirtual()); - } - ::memcpy(&encoding_, &from.encoding_, - static_cast(reinterpret_cast(&use_enhanced_) - - reinterpret_cast(&encoding_)) + sizeof(use_enhanced_)); - // @@protoc_insertion_point(copy_constructor:google.cloud.speech.v1.RecognitionConfig) -} - -void RecognitionConfig::SharedCtor() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RecognitionConfig_dictation_5fasr_2eproto.base); - language_code_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - model_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - ::memset(&encoding_, 0, static_cast( - reinterpret_cast(&use_enhanced_) - - reinterpret_cast(&encoding_)) + sizeof(use_enhanced_)); -} - -RecognitionConfig::~RecognitionConfig() { - // @@protoc_insertion_point(destructor:google.cloud.speech.v1.RecognitionConfig) - SharedDtor(); -} - -void RecognitionConfig::SharedDtor() { - GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); - language_code_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - model_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); -} - -void RecognitionConfig::ArenaDtor(void* object) { - RecognitionConfig* _this = reinterpret_cast< RecognitionConfig* >(object); - (void)_this; -} -void RecognitionConfig::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void RecognitionConfig::SetCachedSize(int size) const { - _cached_size_.Set(size); -} -const RecognitionConfig& RecognitionConfig::default_instance() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RecognitionConfig_dictation_5fasr_2eproto.base); - return *internal_default_instance(); -} - - -void RecognitionConfig::Clear() { -// @@protoc_insertion_point(message_clear_start:google.cloud.speech.v1.RecognitionConfig) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - speech_contexts_.Clear(); - config_fields_.Clear(); - language_code_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); - model_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); - ::memset(&encoding_, 0, static_cast( - reinterpret_cast(&use_enhanced_) - - reinterpret_cast(&encoding_)) + sizeof(use_enhanced_)); - _internal_metadata_.Clear(); -} - -const char* RecognitionConfig::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; - while (!ctx->Done(&ptr)) { - ::PROTOBUF_NAMESPACE_ID::uint32 tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - CHK_(ptr); - switch (tag >> 3) { - // .google.cloud.speech.v1.RecognitionConfig.AudioEncoding encoding = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) { - ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); - CHK_(ptr); - _internal_set_encoding(static_cast<::google::cloud::speech::v1::RecognitionConfig_AudioEncoding>(val)); - } else goto handle_unusual; - continue; - // int32 sample_rate_hertz = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) { - sample_rate_hertz_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - // string language_code = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { - auto str = _internal_mutable_language_code(); - ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); - CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.cloud.speech.v1.RecognitionConfig.language_code")); - CHK_(ptr); - } else goto handle_unusual; - continue; - // int32 max_alternatives = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) { - max_alternatives_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - // bool profanity_filter = 5; - case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) { - profanity_filter_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - // repeated .google.cloud.speech.v1.SpeechContext speech_contexts = 6; - case 6: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_speech_contexts(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<50>(ptr)); - } else goto handle_unusual; - continue; - // bool enable_word_time_offsets = 8; - case 8: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 64)) { - enable_word_time_offsets_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - // bool enable_automatic_punctuation = 11; - case 11: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) { - enable_automatic_punctuation_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - // repeated .google.cloud.speech.v1.ConfigField config_fields = 12; - case 12: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_config_fields(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<98>(ptr)); - } else goto handle_unusual; - continue; - // string model = 13; - case 13: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) { - auto str = _internal_mutable_model(); - ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); - CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.cloud.speech.v1.RecognitionConfig.model")); - CHK_(ptr); - } else goto handle_unusual; - continue; - // bool use_enhanced = 14; - case 14: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) { - use_enhanced_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - default: { - handle_unusual: - if ((tag & 7) == 4 || tag == 0) { - ctx->SetLastTag(tag); - goto success; - } - ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); - CHK_(ptr != nullptr); - continue; - } - } // switch - } // while -success: - return ptr; -failure: - ptr = nullptr; - goto success; -#undef CHK_ -} - -::PROTOBUF_NAMESPACE_ID::uint8* RecognitionConfig::_InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:google.cloud.speech.v1.RecognitionConfig) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // .google.cloud.speech.v1.RecognitionConfig.AudioEncoding encoding = 1; - if (this->encoding() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( - 1, this->_internal_encoding(), target); - } - - // int32 sample_rate_hertz = 2; - if (this->sample_rate_hertz() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_sample_rate_hertz(), target); - } - - // string language_code = 3; - if (this->language_code().size() > 0) { - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( - this->_internal_language_code().data(), static_cast(this->_internal_language_code().length()), - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "google.cloud.speech.v1.RecognitionConfig.language_code"); - target = stream->WriteStringMaybeAliased( - 3, this->_internal_language_code(), target); - } - - // int32 max_alternatives = 4; - if (this->max_alternatives() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_max_alternatives(), target); - } - - // bool profanity_filter = 5; - if (this->profanity_filter() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_profanity_filter(), target); - } - - // repeated .google.cloud.speech.v1.SpeechContext speech_contexts = 6; - for (unsigned int i = 0, - n = static_cast(this->_internal_speech_contexts_size()); i < n; i++) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(6, this->_internal_speech_contexts(i), target, stream); - } - - // bool enable_word_time_offsets = 8; - if (this->enable_word_time_offsets() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(8, this->_internal_enable_word_time_offsets(), target); - } - - // bool enable_automatic_punctuation = 11; - if (this->enable_automatic_punctuation() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(11, this->_internal_enable_automatic_punctuation(), target); - } - - // repeated .google.cloud.speech.v1.ConfigField config_fields = 12; - for (unsigned int i = 0, - n = static_cast(this->_internal_config_fields_size()); i < n; i++) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(12, this->_internal_config_fields(i), target, stream); - } - - // string model = 13; - if (this->model().size() > 0) { - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( - this->_internal_model().data(), static_cast(this->_internal_model().length()), - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "google.cloud.speech.v1.RecognitionConfig.model"); - target = stream->WriteStringMaybeAliased( - 13, this->_internal_model(), target); - } - - // bool use_enhanced = 14; - if (this->use_enhanced() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(14, this->_internal_use_enhanced(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields(), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:google.cloud.speech.v1.RecognitionConfig) - return target; -} - -size_t RecognitionConfig::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:google.cloud.speech.v1.RecognitionConfig) - size_t total_size = 0; - - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // repeated .google.cloud.speech.v1.SpeechContext speech_contexts = 6; - total_size += 1UL * this->_internal_speech_contexts_size(); - for (const auto& msg : this->speech_contexts_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - // repeated .google.cloud.speech.v1.ConfigField config_fields = 12; - total_size += 1UL * this->_internal_config_fields_size(); - for (const auto& msg : this->config_fields_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - // string language_code = 3; - if (this->language_code().size() > 0) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( - this->_internal_language_code()); - } - - // string model = 13; - if (this->model().size() > 0) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( - this->_internal_model()); - } - - // .google.cloud.speech.v1.RecognitionConfig.AudioEncoding encoding = 1; - if (this->encoding() != 0) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_encoding()); - } - - // int32 sample_rate_hertz = 2; - if (this->sample_rate_hertz() != 0) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size( - this->_internal_sample_rate_hertz()); - } - - // int32 max_alternatives = 4; - if (this->max_alternatives() != 0) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size( - this->_internal_max_alternatives()); - } - - // bool profanity_filter = 5; - if (this->profanity_filter() != 0) { - total_size += 1 + 1; - } - - // bool enable_word_time_offsets = 8; - if (this->enable_word_time_offsets() != 0) { - total_size += 1 + 1; - } - - // bool enable_automatic_punctuation = 11; - if (this->enable_automatic_punctuation() != 0) { - total_size += 1 + 1; - } - - // bool use_enhanced = 14; - if (this->use_enhanced() != 0) { - total_size += 1 + 1; - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( - _internal_metadata_, total_size, &_cached_size_); - } - int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); - SetCachedSize(cached_size); - return total_size; -} - -void RecognitionConfig::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:google.cloud.speech.v1.RecognitionConfig) - GOOGLE_DCHECK_NE(&from, this); - const RecognitionConfig* source = - ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( - &from); - if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.cloud.speech.v1.RecognitionConfig) - ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:google.cloud.speech.v1.RecognitionConfig) - MergeFrom(*source); - } -} - -void RecognitionConfig::MergeFrom(const RecognitionConfig& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:google.cloud.speech.v1.RecognitionConfig) - GOOGLE_DCHECK_NE(&from, this); - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - speech_contexts_.MergeFrom(from.speech_contexts_); - config_fields_.MergeFrom(from.config_fields_); - if (from.language_code().size() > 0) { - _internal_set_language_code(from._internal_language_code()); - } - if (from.model().size() > 0) { - _internal_set_model(from._internal_model()); - } - if (from.encoding() != 0) { - _internal_set_encoding(from._internal_encoding()); - } - if (from.sample_rate_hertz() != 0) { - _internal_set_sample_rate_hertz(from._internal_sample_rate_hertz()); - } - if (from.max_alternatives() != 0) { - _internal_set_max_alternatives(from._internal_max_alternatives()); - } - if (from.profanity_filter() != 0) { - _internal_set_profanity_filter(from._internal_profanity_filter()); - } - if (from.enable_word_time_offsets() != 0) { - _internal_set_enable_word_time_offsets(from._internal_enable_word_time_offsets()); - } - if (from.enable_automatic_punctuation() != 0) { - _internal_set_enable_automatic_punctuation(from._internal_enable_automatic_punctuation()); - } - if (from.use_enhanced() != 0) { - _internal_set_use_enhanced(from._internal_use_enhanced()); - } -} - -void RecognitionConfig::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:google.cloud.speech.v1.RecognitionConfig) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void RecognitionConfig::CopyFrom(const RecognitionConfig& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:google.cloud.speech.v1.RecognitionConfig) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool RecognitionConfig::IsInitialized() const { - return true; -} - -void RecognitionConfig::InternalSwap(RecognitionConfig* other) { - using std::swap; - _internal_metadata_.Swap(&other->_internal_metadata_); - speech_contexts_.InternalSwap(&other->speech_contexts_); - config_fields_.InternalSwap(&other->config_fields_); - language_code_.Swap(&other->language_code_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); - model_.Swap(&other->model_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); - swap(encoding_, other->encoding_); - swap(sample_rate_hertz_, other->sample_rate_hertz_); - swap(max_alternatives_, other->max_alternatives_); - swap(profanity_filter_, other->profanity_filter_); - swap(enable_word_time_offsets_, other->enable_word_time_offsets_); - swap(enable_automatic_punctuation_, other->enable_automatic_punctuation_); - swap(use_enhanced_, other->use_enhanced_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata RecognitionConfig::GetMetadata() const { - return GetMetadataStatic(); -} - - -// =================================================================== - -void SpeechContext::InitAsDefaultInstance() { -} -class SpeechContext::_Internal { - public: -}; - -SpeechContext::SpeechContext() - : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { - SharedCtor(); - // @@protoc_insertion_point(constructor:google.cloud.speech.v1.SpeechContext) -} -SpeechContext::SpeechContext(::PROTOBUF_NAMESPACE_ID::Arena* arena) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(arena), - phrases_(arena) { - SharedCtor(); - RegisterArenaDtor(arena); - // @@protoc_insertion_point(arena_constructor:google.cloud.speech.v1.SpeechContext) -} -SpeechContext::SpeechContext(const SpeechContext& from) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr), - phrases_(from.phrases_) { - _internal_metadata_.MergeFrom(from._internal_metadata_); - // @@protoc_insertion_point(copy_constructor:google.cloud.speech.v1.SpeechContext) -} - -void SpeechContext::SharedCtor() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SpeechContext_dictation_5fasr_2eproto.base); -} - -SpeechContext::~SpeechContext() { - // @@protoc_insertion_point(destructor:google.cloud.speech.v1.SpeechContext) - SharedDtor(); -} - -void SpeechContext::SharedDtor() { - GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); -} - -void SpeechContext::ArenaDtor(void* object) { - SpeechContext* _this = reinterpret_cast< SpeechContext* >(object); - (void)_this; -} -void SpeechContext::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void SpeechContext::SetCachedSize(int size) const { - _cached_size_.Set(size); -} -const SpeechContext& SpeechContext::default_instance() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SpeechContext_dictation_5fasr_2eproto.base); - return *internal_default_instance(); -} - - -void SpeechContext::Clear() { -// @@protoc_insertion_point(message_clear_start:google.cloud.speech.v1.SpeechContext) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - phrases_.Clear(); - _internal_metadata_.Clear(); -} - -const char* SpeechContext::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; - while (!ctx->Done(&ptr)) { - ::PROTOBUF_NAMESPACE_ID::uint32 tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - CHK_(ptr); - switch (tag >> 3) { - // repeated string phrases = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { - ptr -= 1; - do { - ptr += 1; - auto str = _internal_add_phrases(); - ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); - CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.cloud.speech.v1.SpeechContext.phrases")); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); - } else goto handle_unusual; - continue; - default: { - handle_unusual: - if ((tag & 7) == 4 || tag == 0) { - ctx->SetLastTag(tag); - goto success; - } - ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); - CHK_(ptr != nullptr); - continue; - } - } // switch - } // while -success: - return ptr; -failure: - ptr = nullptr; - goto success; -#undef CHK_ -} - -::PROTOBUF_NAMESPACE_ID::uint8* SpeechContext::_InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:google.cloud.speech.v1.SpeechContext) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // repeated string phrases = 1; - for (int i = 0, n = this->_internal_phrases_size(); i < n; i++) { - const auto& s = this->_internal_phrases(i); - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( - s.data(), static_cast(s.length()), - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "google.cloud.speech.v1.SpeechContext.phrases"); - target = stream->WriteString(1, s, target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields(), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:google.cloud.speech.v1.SpeechContext) - return target; -} - -size_t SpeechContext::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:google.cloud.speech.v1.SpeechContext) - size_t total_size = 0; - - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // repeated string phrases = 1; - total_size += 1 * - ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(phrases_.size()); - for (int i = 0, n = phrases_.size(); i < n; i++) { - total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( - phrases_.Get(i)); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( - _internal_metadata_, total_size, &_cached_size_); - } - int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); - SetCachedSize(cached_size); - return total_size; -} - -void SpeechContext::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:google.cloud.speech.v1.SpeechContext) - GOOGLE_DCHECK_NE(&from, this); - const SpeechContext* source = - ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( - &from); - if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.cloud.speech.v1.SpeechContext) - ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:google.cloud.speech.v1.SpeechContext) - MergeFrom(*source); - } -} - -void SpeechContext::MergeFrom(const SpeechContext& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:google.cloud.speech.v1.SpeechContext) - GOOGLE_DCHECK_NE(&from, this); - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - phrases_.MergeFrom(from.phrases_); -} - -void SpeechContext::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:google.cloud.speech.v1.SpeechContext) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void SpeechContext::CopyFrom(const SpeechContext& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:google.cloud.speech.v1.SpeechContext) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool SpeechContext::IsInitialized() const { - return true; -} - -void SpeechContext::InternalSwap(SpeechContext* other) { - using std::swap; - _internal_metadata_.Swap(&other->_internal_metadata_); - phrases_.InternalSwap(&other->phrases_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata SpeechContext::GetMetadata() const { - return GetMetadataStatic(); -} - - -// =================================================================== - -void ConfigField::InitAsDefaultInstance() { -} -class ConfigField::_Internal { - public: -}; - -ConfigField::ConfigField() - : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { - SharedCtor(); - // @@protoc_insertion_point(constructor:google.cloud.speech.v1.ConfigField) -} -ConfigField::ConfigField(::PROTOBUF_NAMESPACE_ID::Arena* arena) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(arena) { - SharedCtor(); - RegisterArenaDtor(arena); - // @@protoc_insertion_point(arena_constructor:google.cloud.speech.v1.ConfigField) -} -ConfigField::ConfigField(const ConfigField& from) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr) { - _internal_metadata_.MergeFrom(from._internal_metadata_); - key_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - if (!from._internal_key().empty()) { - key_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_key(), - GetArenaNoVirtual()); - } - value_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - if (!from._internal_value().empty()) { - value_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_value(), - GetArenaNoVirtual()); - } - // @@protoc_insertion_point(copy_constructor:google.cloud.speech.v1.ConfigField) -} - -void ConfigField::SharedCtor() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ConfigField_dictation_5fasr_2eproto.base); - key_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - value_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); -} - -ConfigField::~ConfigField() { - // @@protoc_insertion_point(destructor:google.cloud.speech.v1.ConfigField) - SharedDtor(); -} - -void ConfigField::SharedDtor() { - GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); - key_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - value_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); -} - -void ConfigField::ArenaDtor(void* object) { - ConfigField* _this = reinterpret_cast< ConfigField* >(object); - (void)_this; -} -void ConfigField::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void ConfigField::SetCachedSize(int size) const { - _cached_size_.Set(size); -} -const ConfigField& ConfigField::default_instance() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ConfigField_dictation_5fasr_2eproto.base); - return *internal_default_instance(); -} - - -void ConfigField::Clear() { -// @@protoc_insertion_point(message_clear_start:google.cloud.speech.v1.ConfigField) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - key_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); - value_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); - _internal_metadata_.Clear(); -} - -const char* ConfigField::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; - while (!ctx->Done(&ptr)) { - ::PROTOBUF_NAMESPACE_ID::uint32 tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - CHK_(ptr); - switch (tag >> 3) { - // string key = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { - auto str = _internal_mutable_key(); - ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); - CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.cloud.speech.v1.ConfigField.key")); - CHK_(ptr); - } else goto handle_unusual; - continue; - // string value = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { - auto str = _internal_mutable_value(); - ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); - CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.cloud.speech.v1.ConfigField.value")); - CHK_(ptr); - } else goto handle_unusual; - continue; - default: { - handle_unusual: - if ((tag & 7) == 4 || tag == 0) { - ctx->SetLastTag(tag); - goto success; - } - ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); - CHK_(ptr != nullptr); - continue; - } - } // switch - } // while -success: - return ptr; -failure: - ptr = nullptr; - goto success; -#undef CHK_ -} - -::PROTOBUF_NAMESPACE_ID::uint8* ConfigField::_InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:google.cloud.speech.v1.ConfigField) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // string key = 1; - if (this->key().size() > 0) { - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( - this->_internal_key().data(), static_cast(this->_internal_key().length()), - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "google.cloud.speech.v1.ConfigField.key"); - target = stream->WriteStringMaybeAliased( - 1, this->_internal_key(), target); - } - - // string value = 2; - if (this->value().size() > 0) { - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( - this->_internal_value().data(), static_cast(this->_internal_value().length()), - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "google.cloud.speech.v1.ConfigField.value"); - target = stream->WriteStringMaybeAliased( - 2, this->_internal_value(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields(), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:google.cloud.speech.v1.ConfigField) - return target; -} - -size_t ConfigField::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:google.cloud.speech.v1.ConfigField) - size_t total_size = 0; - - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // string key = 1; - if (this->key().size() > 0) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( - this->_internal_key()); - } - - // string value = 2; - if (this->value().size() > 0) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( - this->_internal_value()); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( - _internal_metadata_, total_size, &_cached_size_); - } - int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); - SetCachedSize(cached_size); - return total_size; -} - -void ConfigField::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:google.cloud.speech.v1.ConfigField) - GOOGLE_DCHECK_NE(&from, this); - const ConfigField* source = - ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( - &from); - if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.cloud.speech.v1.ConfigField) - ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:google.cloud.speech.v1.ConfigField) - MergeFrom(*source); - } -} - -void ConfigField::MergeFrom(const ConfigField& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:google.cloud.speech.v1.ConfigField) - GOOGLE_DCHECK_NE(&from, this); - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - if (from.key().size() > 0) { - _internal_set_key(from._internal_key()); - } - if (from.value().size() > 0) { - _internal_set_value(from._internal_value()); - } -} - -void ConfigField::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:google.cloud.speech.v1.ConfigField) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void ConfigField::CopyFrom(const ConfigField& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:google.cloud.speech.v1.ConfigField) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool ConfigField::IsInitialized() const { - return true; -} - -void ConfigField::InternalSwap(ConfigField* other) { - using std::swap; - _internal_metadata_.Swap(&other->_internal_metadata_); - key_.Swap(&other->key_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); - value_.Swap(&other->value_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); -} - -::PROTOBUF_NAMESPACE_ID::Metadata ConfigField::GetMetadata() const { - return GetMetadataStatic(); -} - - -// =================================================================== - -void RecognitionAudio::InitAsDefaultInstance() { - ::google::cloud::speech::v1::_RecognitionAudio_default_instance_.content_.UnsafeSetDefault( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - ::google::cloud::speech::v1::_RecognitionAudio_default_instance_.uri_.UnsafeSetDefault( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); -} -class RecognitionAudio::_Internal { - public: -}; - -RecognitionAudio::RecognitionAudio() - : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { - SharedCtor(); - // @@protoc_insertion_point(constructor:google.cloud.speech.v1.RecognitionAudio) -} -RecognitionAudio::RecognitionAudio(::PROTOBUF_NAMESPACE_ID::Arena* arena) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(arena) { - SharedCtor(); - RegisterArenaDtor(arena); - // @@protoc_insertion_point(arena_constructor:google.cloud.speech.v1.RecognitionAudio) -} -RecognitionAudio::RecognitionAudio(const RecognitionAudio& from) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr) { - _internal_metadata_.MergeFrom(from._internal_metadata_); - clear_has_audio_source(); - switch (from.audio_source_case()) { - case kContent: { - _internal_set_content(from._internal_content()); - break; - } - case kUri: { - _internal_set_uri(from._internal_uri()); - break; - } - case AUDIO_SOURCE_NOT_SET: { - break; - } - } - // @@protoc_insertion_point(copy_constructor:google.cloud.speech.v1.RecognitionAudio) -} - -void RecognitionAudio::SharedCtor() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RecognitionAudio_dictation_5fasr_2eproto.base); - clear_has_audio_source(); -} - -RecognitionAudio::~RecognitionAudio() { - // @@protoc_insertion_point(destructor:google.cloud.speech.v1.RecognitionAudio) - SharedDtor(); -} - -void RecognitionAudio::SharedDtor() { - GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); - if (has_audio_source()) { - clear_audio_source(); - } -} - -void RecognitionAudio::ArenaDtor(void* object) { - RecognitionAudio* _this = reinterpret_cast< RecognitionAudio* >(object); - (void)_this; -} -void RecognitionAudio::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void RecognitionAudio::SetCachedSize(int size) const { - _cached_size_.Set(size); -} -const RecognitionAudio& RecognitionAudio::default_instance() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RecognitionAudio_dictation_5fasr_2eproto.base); - return *internal_default_instance(); -} - - -void RecognitionAudio::clear_audio_source() { -// @@protoc_insertion_point(one_of_clear_start:google.cloud.speech.v1.RecognitionAudio) - switch (audio_source_case()) { - case kContent: { - audio_source_.content_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); - break; - } - case kUri: { - audio_source_.uri_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); - break; - } - case AUDIO_SOURCE_NOT_SET: { - break; - } - } - _oneof_case_[0] = AUDIO_SOURCE_NOT_SET; -} - - -void RecognitionAudio::Clear() { -// @@protoc_insertion_point(message_clear_start:google.cloud.speech.v1.RecognitionAudio) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - clear_audio_source(); - _internal_metadata_.Clear(); -} - -const char* RecognitionAudio::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; - while (!ctx->Done(&ptr)) { - ::PROTOBUF_NAMESPACE_ID::uint32 tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - CHK_(ptr); - switch (tag >> 3) { - // bytes content = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { - auto str = _internal_mutable_content(); - ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); - CHK_(ptr); - } else goto handle_unusual; - continue; - // string uri = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { - auto str = _internal_mutable_uri(); - ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); - CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.cloud.speech.v1.RecognitionAudio.uri")); - CHK_(ptr); - } else goto handle_unusual; - continue; - default: { - handle_unusual: - if ((tag & 7) == 4 || tag == 0) { - ctx->SetLastTag(tag); - goto success; - } - ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); - CHK_(ptr != nullptr); - continue; - } - } // switch - } // while -success: - return ptr; -failure: - ptr = nullptr; - goto success; -#undef CHK_ -} - -::PROTOBUF_NAMESPACE_ID::uint8* RecognitionAudio::_InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:google.cloud.speech.v1.RecognitionAudio) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // bytes content = 1; - if (_internal_has_content()) { - target = stream->WriteBytesMaybeAliased( - 1, this->_internal_content(), target); - } - - // string uri = 2; - if (_internal_has_uri()) { - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( - this->_internal_uri().data(), static_cast(this->_internal_uri().length()), - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "google.cloud.speech.v1.RecognitionAudio.uri"); - target = stream->WriteStringMaybeAliased( - 2, this->_internal_uri(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields(), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:google.cloud.speech.v1.RecognitionAudio) - return target; -} - -size_t RecognitionAudio::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:google.cloud.speech.v1.RecognitionAudio) - size_t total_size = 0; - - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - switch (audio_source_case()) { - // bytes content = 1; - case kContent: { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize( - this->_internal_content()); - break; - } - // string uri = 2; - case kUri: { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( - this->_internal_uri()); - break; - } - case AUDIO_SOURCE_NOT_SET: { - break; - } - } - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( - _internal_metadata_, total_size, &_cached_size_); - } - int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); - SetCachedSize(cached_size); - return total_size; -} - -void RecognitionAudio::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:google.cloud.speech.v1.RecognitionAudio) - GOOGLE_DCHECK_NE(&from, this); - const RecognitionAudio* source = - ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( - &from); - if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.cloud.speech.v1.RecognitionAudio) - ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:google.cloud.speech.v1.RecognitionAudio) - MergeFrom(*source); - } -} - -void RecognitionAudio::MergeFrom(const RecognitionAudio& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:google.cloud.speech.v1.RecognitionAudio) - GOOGLE_DCHECK_NE(&from, this); - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - switch (from.audio_source_case()) { - case kContent: { - _internal_set_content(from._internal_content()); - break; - } - case kUri: { - _internal_set_uri(from._internal_uri()); - break; - } - case AUDIO_SOURCE_NOT_SET: { - break; - } - } -} - -void RecognitionAudio::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:google.cloud.speech.v1.RecognitionAudio) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void RecognitionAudio::CopyFrom(const RecognitionAudio& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:google.cloud.speech.v1.RecognitionAudio) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool RecognitionAudio::IsInitialized() const { - return true; -} - -void RecognitionAudio::InternalSwap(RecognitionAudio* other) { - using std::swap; - _internal_metadata_.Swap(&other->_internal_metadata_); - swap(audio_source_, other->audio_source_); - swap(_oneof_case_[0], other->_oneof_case_[0]); -} - -::PROTOBUF_NAMESPACE_ID::Metadata RecognitionAudio::GetMetadata() const { - return GetMetadataStatic(); -} - - -// =================================================================== - -void RecognizeResponse::InitAsDefaultInstance() { -} -class RecognizeResponse::_Internal { - public: -}; - -RecognizeResponse::RecognizeResponse() - : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { - SharedCtor(); - // @@protoc_insertion_point(constructor:google.cloud.speech.v1.RecognizeResponse) -} -RecognizeResponse::RecognizeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(arena), - results_(arena) { - SharedCtor(); - RegisterArenaDtor(arena); - // @@protoc_insertion_point(arena_constructor:google.cloud.speech.v1.RecognizeResponse) -} -RecognizeResponse::RecognizeResponse(const RecognizeResponse& from) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr), - results_(from.results_) { - _internal_metadata_.MergeFrom(from._internal_metadata_); - // @@protoc_insertion_point(copy_constructor:google.cloud.speech.v1.RecognizeResponse) -} - -void RecognizeResponse::SharedCtor() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RecognizeResponse_dictation_5fasr_2eproto.base); -} - -RecognizeResponse::~RecognizeResponse() { - // @@protoc_insertion_point(destructor:google.cloud.speech.v1.RecognizeResponse) - SharedDtor(); -} - -void RecognizeResponse::SharedDtor() { - GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); -} - -void RecognizeResponse::ArenaDtor(void* object) { - RecognizeResponse* _this = reinterpret_cast< RecognizeResponse* >(object); - (void)_this; -} -void RecognizeResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void RecognizeResponse::SetCachedSize(int size) const { - _cached_size_.Set(size); -} -const RecognizeResponse& RecognizeResponse::default_instance() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RecognizeResponse_dictation_5fasr_2eproto.base); - return *internal_default_instance(); -} - - -void RecognizeResponse::Clear() { -// @@protoc_insertion_point(message_clear_start:google.cloud.speech.v1.RecognizeResponse) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - results_.Clear(); - _internal_metadata_.Clear(); -} - -const char* RecognizeResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; - while (!ctx->Done(&ptr)) { - ::PROTOBUF_NAMESPACE_ID::uint32 tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - CHK_(ptr); - switch (tag >> 3) { - // repeated .google.cloud.speech.v1.SpeechRecognitionResult results = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_results(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr)); - } else goto handle_unusual; - continue; - default: { - handle_unusual: - if ((tag & 7) == 4 || tag == 0) { - ctx->SetLastTag(tag); - goto success; - } - ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); - CHK_(ptr != nullptr); - continue; - } - } // switch - } // while -success: - return ptr; -failure: - ptr = nullptr; - goto success; -#undef CHK_ -} - -::PROTOBUF_NAMESPACE_ID::uint8* RecognizeResponse::_InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:google.cloud.speech.v1.RecognizeResponse) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // repeated .google.cloud.speech.v1.SpeechRecognitionResult results = 2; - for (unsigned int i = 0, - n = static_cast(this->_internal_results_size()); i < n; i++) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(2, this->_internal_results(i), target, stream); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields(), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:google.cloud.speech.v1.RecognizeResponse) - return target; -} - -size_t RecognizeResponse::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:google.cloud.speech.v1.RecognizeResponse) - size_t total_size = 0; - - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // repeated .google.cloud.speech.v1.SpeechRecognitionResult results = 2; - total_size += 1UL * this->_internal_results_size(); - for (const auto& msg : this->results_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( - _internal_metadata_, total_size, &_cached_size_); - } - int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); - SetCachedSize(cached_size); - return total_size; -} - -void RecognizeResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:google.cloud.speech.v1.RecognizeResponse) - GOOGLE_DCHECK_NE(&from, this); - const RecognizeResponse* source = - ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( - &from); - if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.cloud.speech.v1.RecognizeResponse) - ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:google.cloud.speech.v1.RecognizeResponse) - MergeFrom(*source); - } -} - -void RecognizeResponse::MergeFrom(const RecognizeResponse& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:google.cloud.speech.v1.RecognizeResponse) - GOOGLE_DCHECK_NE(&from, this); - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - results_.MergeFrom(from.results_); -} - -void RecognizeResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:google.cloud.speech.v1.RecognizeResponse) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void RecognizeResponse::CopyFrom(const RecognizeResponse& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:google.cloud.speech.v1.RecognizeResponse) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool RecognizeResponse::IsInitialized() const { - return true; -} - -void RecognizeResponse::InternalSwap(RecognizeResponse* other) { - using std::swap; - _internal_metadata_.Swap(&other->_internal_metadata_); - results_.InternalSwap(&other->results_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata RecognizeResponse::GetMetadata() const { - return GetMetadataStatic(); -} - - -// =================================================================== - -void StreamingRecognizeResponse::InitAsDefaultInstance() { - ::google::cloud::speech::v1::_StreamingRecognizeResponse_default_instance_._instance.get_mutable()->error_ = const_cast< ::google::rpc::Status*>( - ::google::rpc::Status::internal_default_instance()); -} -class StreamingRecognizeResponse::_Internal { - public: - static const ::google::rpc::Status& error(const StreamingRecognizeResponse* msg); -}; - -const ::google::rpc::Status& -StreamingRecognizeResponse::_Internal::error(const StreamingRecognizeResponse* msg) { - return *msg->error_; -} -void StreamingRecognizeResponse::unsafe_arena_set_allocated_error( - ::google::rpc::Status* error) { - if (GetArenaNoVirtual() == nullptr) { - delete error_; - } - error_ = error; - if (error) { - - } else { - - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.StreamingRecognizeResponse.error) -} -void StreamingRecognizeResponse::clear_error() { - if (GetArenaNoVirtual() == nullptr && error_ != nullptr) { - delete error_; - } - error_ = nullptr; -} -StreamingRecognizeResponse::StreamingRecognizeResponse() - : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { - SharedCtor(); - // @@protoc_insertion_point(constructor:google.cloud.speech.v1.StreamingRecognizeResponse) -} -StreamingRecognizeResponse::StreamingRecognizeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(arena), - results_(arena) { - SharedCtor(); - RegisterArenaDtor(arena); - // @@protoc_insertion_point(arena_constructor:google.cloud.speech.v1.StreamingRecognizeResponse) -} -StreamingRecognizeResponse::StreamingRecognizeResponse(const StreamingRecognizeResponse& from) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr), - results_(from.results_) { - _internal_metadata_.MergeFrom(from._internal_metadata_); - if (from._internal_has_error()) { - error_ = new ::google::rpc::Status(*from.error_); - } else { - error_ = nullptr; - } - speech_event_type_ = from.speech_event_type_; - // @@protoc_insertion_point(copy_constructor:google.cloud.speech.v1.StreamingRecognizeResponse) -} - -void StreamingRecognizeResponse::SharedCtor() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_StreamingRecognizeResponse_dictation_5fasr_2eproto.base); - ::memset(&error_, 0, static_cast( - reinterpret_cast(&speech_event_type_) - - reinterpret_cast(&error_)) + sizeof(speech_event_type_)); -} - -StreamingRecognizeResponse::~StreamingRecognizeResponse() { - // @@protoc_insertion_point(destructor:google.cloud.speech.v1.StreamingRecognizeResponse) - SharedDtor(); -} - -void StreamingRecognizeResponse::SharedDtor() { - GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); - if (this != internal_default_instance()) delete error_; -} - -void StreamingRecognizeResponse::ArenaDtor(void* object) { - StreamingRecognizeResponse* _this = reinterpret_cast< StreamingRecognizeResponse* >(object); - (void)_this; -} -void StreamingRecognizeResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void StreamingRecognizeResponse::SetCachedSize(int size) const { - _cached_size_.Set(size); -} -const StreamingRecognizeResponse& StreamingRecognizeResponse::default_instance() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_StreamingRecognizeResponse_dictation_5fasr_2eproto.base); - return *internal_default_instance(); -} - - -void StreamingRecognizeResponse::Clear() { -// @@protoc_insertion_point(message_clear_start:google.cloud.speech.v1.StreamingRecognizeResponse) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - results_.Clear(); - if (GetArenaNoVirtual() == nullptr && error_ != nullptr) { - delete error_; - } - error_ = nullptr; - speech_event_type_ = 0; - _internal_metadata_.Clear(); -} - -const char* StreamingRecognizeResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; - while (!ctx->Done(&ptr)) { - ::PROTOBUF_NAMESPACE_ID::uint32 tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - CHK_(ptr); - switch (tag >> 3) { - // .google.rpc.Status error = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { - ptr = ctx->ParseMessage(_internal_mutable_error(), ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - // repeated .google.cloud.speech.v1.StreamingRecognitionResult results = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_results(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr)); - } else goto handle_unusual; - continue; - // .google.cloud.speech.v1.StreamingRecognizeResponse.SpeechEventType speech_event_type = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) { - ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); - CHK_(ptr); - _internal_set_speech_event_type(static_cast<::google::cloud::speech::v1::StreamingRecognizeResponse_SpeechEventType>(val)); - } else goto handle_unusual; - continue; - default: { - handle_unusual: - if ((tag & 7) == 4 || tag == 0) { - ctx->SetLastTag(tag); - goto success; - } - ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); - CHK_(ptr != nullptr); - continue; - } - } // switch - } // while -success: - return ptr; -failure: - ptr = nullptr; - goto success; -#undef CHK_ -} - -::PROTOBUF_NAMESPACE_ID::uint8* StreamingRecognizeResponse::_InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:google.cloud.speech.v1.StreamingRecognizeResponse) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // .google.rpc.Status error = 1; - if (this->has_error()) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage( - 1, _Internal::error(this), target, stream); - } - - // repeated .google.cloud.speech.v1.StreamingRecognitionResult results = 2; - for (unsigned int i = 0, - n = static_cast(this->_internal_results_size()); i < n; i++) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(2, this->_internal_results(i), target, stream); - } - - // .google.cloud.speech.v1.StreamingRecognizeResponse.SpeechEventType speech_event_type = 4; - if (this->speech_event_type() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( - 4, this->_internal_speech_event_type(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields(), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:google.cloud.speech.v1.StreamingRecognizeResponse) - return target; -} - -size_t StreamingRecognizeResponse::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:google.cloud.speech.v1.StreamingRecognizeResponse) - size_t total_size = 0; - - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // repeated .google.cloud.speech.v1.StreamingRecognitionResult results = 2; - total_size += 1UL * this->_internal_results_size(); - for (const auto& msg : this->results_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - // .google.rpc.Status error = 1; - if (this->has_error()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *error_); - } - - // .google.cloud.speech.v1.StreamingRecognizeResponse.SpeechEventType speech_event_type = 4; - if (this->speech_event_type() != 0) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_speech_event_type()); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( - _internal_metadata_, total_size, &_cached_size_); - } - int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); - SetCachedSize(cached_size); - return total_size; -} - -void StreamingRecognizeResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:google.cloud.speech.v1.StreamingRecognizeResponse) - GOOGLE_DCHECK_NE(&from, this); - const StreamingRecognizeResponse* source = - ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( - &from); - if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.cloud.speech.v1.StreamingRecognizeResponse) - ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:google.cloud.speech.v1.StreamingRecognizeResponse) - MergeFrom(*source); - } -} - -void StreamingRecognizeResponse::MergeFrom(const StreamingRecognizeResponse& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:google.cloud.speech.v1.StreamingRecognizeResponse) - GOOGLE_DCHECK_NE(&from, this); - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - results_.MergeFrom(from.results_); - if (from.has_error()) { - _internal_mutable_error()->::google::rpc::Status::MergeFrom(from._internal_error()); - } - if (from.speech_event_type() != 0) { - _internal_set_speech_event_type(from._internal_speech_event_type()); - } -} - -void StreamingRecognizeResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:google.cloud.speech.v1.StreamingRecognizeResponse) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void StreamingRecognizeResponse::CopyFrom(const StreamingRecognizeResponse& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:google.cloud.speech.v1.StreamingRecognizeResponse) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool StreamingRecognizeResponse::IsInitialized() const { - return true; -} - -void StreamingRecognizeResponse::InternalSwap(StreamingRecognizeResponse* other) { - using std::swap; - _internal_metadata_.Swap(&other->_internal_metadata_); - results_.InternalSwap(&other->results_); - swap(error_, other->error_); - swap(speech_event_type_, other->speech_event_type_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata StreamingRecognizeResponse::GetMetadata() const { - return GetMetadataStatic(); -} - - -// =================================================================== - -void StreamingRecognitionResult::InitAsDefaultInstance() { -} -class StreamingRecognitionResult::_Internal { - public: -}; - -StreamingRecognitionResult::StreamingRecognitionResult() - : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { - SharedCtor(); - // @@protoc_insertion_point(constructor:google.cloud.speech.v1.StreamingRecognitionResult) -} -StreamingRecognitionResult::StreamingRecognitionResult(::PROTOBUF_NAMESPACE_ID::Arena* arena) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(arena), - alternatives_(arena), - lattice_(arena) { - SharedCtor(); - RegisterArenaDtor(arena); - // @@protoc_insertion_point(arena_constructor:google.cloud.speech.v1.StreamingRecognitionResult) -} -StreamingRecognitionResult::StreamingRecognitionResult(const StreamingRecognitionResult& from) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr), - alternatives_(from.alternatives_), - lattice_(from.lattice_) { - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::memcpy(&is_final_, &from.is_final_, - static_cast(reinterpret_cast(&result_finalization_cause_) - - reinterpret_cast(&is_final_)) + sizeof(result_finalization_cause_)); - // @@protoc_insertion_point(copy_constructor:google.cloud.speech.v1.StreamingRecognitionResult) -} - -void StreamingRecognitionResult::SharedCtor() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_StreamingRecognitionResult_dictation_5fasr_2eproto.base); - ::memset(&is_final_, 0, static_cast( - reinterpret_cast(&result_finalization_cause_) - - reinterpret_cast(&is_final_)) + sizeof(result_finalization_cause_)); -} - -StreamingRecognitionResult::~StreamingRecognitionResult() { - // @@protoc_insertion_point(destructor:google.cloud.speech.v1.StreamingRecognitionResult) - SharedDtor(); -} - -void StreamingRecognitionResult::SharedDtor() { - GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); -} - -void StreamingRecognitionResult::ArenaDtor(void* object) { - StreamingRecognitionResult* _this = reinterpret_cast< StreamingRecognitionResult* >(object); - (void)_this; -} -void StreamingRecognitionResult::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void StreamingRecognitionResult::SetCachedSize(int size) const { - _cached_size_.Set(size); -} -const StreamingRecognitionResult& StreamingRecognitionResult::default_instance() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_StreamingRecognitionResult_dictation_5fasr_2eproto.base); - return *internal_default_instance(); -} - - -void StreamingRecognitionResult::Clear() { -// @@protoc_insertion_point(message_clear_start:google.cloud.speech.v1.StreamingRecognitionResult) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - alternatives_.Clear(); - lattice_.Clear(); - ::memset(&is_final_, 0, static_cast( - reinterpret_cast(&result_finalization_cause_) - - reinterpret_cast(&is_final_)) + sizeof(result_finalization_cause_)); - _internal_metadata_.Clear(); -} - -const char* StreamingRecognitionResult::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; - while (!ctx->Done(&ptr)) { - ::PROTOBUF_NAMESPACE_ID::uint32 tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - CHK_(ptr); - switch (tag >> 3) { - // repeated .google.cloud.speech.v1.SpeechRecognitionAlternative alternatives = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_alternatives(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); - } else goto handle_unusual; - continue; - // bool is_final = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) { - is_final_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - // float stability = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 29)) { - stability_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); - ptr += sizeof(float); - } else goto handle_unusual; - continue; - // .google.cloud.speech.v1.StreamingRecognitionResult.ResultFinalizationCause result_finalization_cause = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) { - ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); - CHK_(ptr); - _internal_set_result_finalization_cause(static_cast<::google::cloud::speech::v1::StreamingRecognitionResult_ResultFinalizationCause>(val)); - } else goto handle_unusual; - continue; - // repeated .google.cloud.speech.v1.RecognitionLattice lattice = 5; - case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_lattice(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr)); - } else goto handle_unusual; - continue; - default: { - handle_unusual: - if ((tag & 7) == 4 || tag == 0) { - ctx->SetLastTag(tag); - goto success; - } - ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); - CHK_(ptr != nullptr); - continue; - } - } // switch - } // while -success: - return ptr; -failure: - ptr = nullptr; - goto success; -#undef CHK_ -} - -::PROTOBUF_NAMESPACE_ID::uint8* StreamingRecognitionResult::_InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:google.cloud.speech.v1.StreamingRecognitionResult) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // repeated .google.cloud.speech.v1.SpeechRecognitionAlternative alternatives = 1; - for (unsigned int i = 0, - n = static_cast(this->_internal_alternatives_size()); i < n; i++) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(1, this->_internal_alternatives(i), target, stream); - } - - // bool is_final = 2; - if (this->is_final() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(2, this->_internal_is_final(), target); - } - - // float stability = 3; - if (!(this->stability() <= 0 && this->stability() >= 0)) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_stability(), target); - } - - // .google.cloud.speech.v1.StreamingRecognitionResult.ResultFinalizationCause result_finalization_cause = 4; - if (this->result_finalization_cause() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( - 4, this->_internal_result_finalization_cause(), target); - } - - // repeated .google.cloud.speech.v1.RecognitionLattice lattice = 5; - for (unsigned int i = 0, - n = static_cast(this->_internal_lattice_size()); i < n; i++) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(5, this->_internal_lattice(i), target, stream); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields(), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:google.cloud.speech.v1.StreamingRecognitionResult) - return target; -} - -size_t StreamingRecognitionResult::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:google.cloud.speech.v1.StreamingRecognitionResult) - size_t total_size = 0; - - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // repeated .google.cloud.speech.v1.SpeechRecognitionAlternative alternatives = 1; - total_size += 1UL * this->_internal_alternatives_size(); - for (const auto& msg : this->alternatives_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - // repeated .google.cloud.speech.v1.RecognitionLattice lattice = 5; - total_size += 1UL * this->_internal_lattice_size(); - for (const auto& msg : this->lattice_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - // bool is_final = 2; - if (this->is_final() != 0) { - total_size += 1 + 1; - } - - // float stability = 3; - if (!(this->stability() <= 0 && this->stability() >= 0)) { - total_size += 1 + 4; - } - - // .google.cloud.speech.v1.StreamingRecognitionResult.ResultFinalizationCause result_finalization_cause = 4; - if (this->result_finalization_cause() != 0) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_result_finalization_cause()); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( - _internal_metadata_, total_size, &_cached_size_); - } - int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); - SetCachedSize(cached_size); - return total_size; -} - -void StreamingRecognitionResult::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:google.cloud.speech.v1.StreamingRecognitionResult) - GOOGLE_DCHECK_NE(&from, this); - const StreamingRecognitionResult* source = - ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( - &from); - if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.cloud.speech.v1.StreamingRecognitionResult) - ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:google.cloud.speech.v1.StreamingRecognitionResult) - MergeFrom(*source); - } -} - -void StreamingRecognitionResult::MergeFrom(const StreamingRecognitionResult& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:google.cloud.speech.v1.StreamingRecognitionResult) - GOOGLE_DCHECK_NE(&from, this); - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - alternatives_.MergeFrom(from.alternatives_); - lattice_.MergeFrom(from.lattice_); - if (from.is_final() != 0) { - _internal_set_is_final(from._internal_is_final()); - } - if (!(from.stability() <= 0 && from.stability() >= 0)) { - _internal_set_stability(from._internal_stability()); - } - if (from.result_finalization_cause() != 0) { - _internal_set_result_finalization_cause(from._internal_result_finalization_cause()); - } -} - -void StreamingRecognitionResult::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:google.cloud.speech.v1.StreamingRecognitionResult) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void StreamingRecognitionResult::CopyFrom(const StreamingRecognitionResult& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:google.cloud.speech.v1.StreamingRecognitionResult) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool StreamingRecognitionResult::IsInitialized() const { - return true; -} - -void StreamingRecognitionResult::InternalSwap(StreamingRecognitionResult* other) { - using std::swap; - _internal_metadata_.Swap(&other->_internal_metadata_); - alternatives_.InternalSwap(&other->alternatives_); - lattice_.InternalSwap(&other->lattice_); - swap(is_final_, other->is_final_); - swap(stability_, other->stability_); - swap(result_finalization_cause_, other->result_finalization_cause_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata StreamingRecognitionResult::GetMetadata() const { - return GetMetadataStatic(); -} - - -// =================================================================== - -void SpeechRecognitionResult::InitAsDefaultInstance() { -} -class SpeechRecognitionResult::_Internal { - public: -}; - -SpeechRecognitionResult::SpeechRecognitionResult() - : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { - SharedCtor(); - // @@protoc_insertion_point(constructor:google.cloud.speech.v1.SpeechRecognitionResult) -} -SpeechRecognitionResult::SpeechRecognitionResult(::PROTOBUF_NAMESPACE_ID::Arena* arena) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(arena), - alternatives_(arena), - lattice_(arena) { - SharedCtor(); - RegisterArenaDtor(arena); - // @@protoc_insertion_point(arena_constructor:google.cloud.speech.v1.SpeechRecognitionResult) -} -SpeechRecognitionResult::SpeechRecognitionResult(const SpeechRecognitionResult& from) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr), - alternatives_(from.alternatives_), - lattice_(from.lattice_) { - _internal_metadata_.MergeFrom(from._internal_metadata_); - // @@protoc_insertion_point(copy_constructor:google.cloud.speech.v1.SpeechRecognitionResult) -} - -void SpeechRecognitionResult::SharedCtor() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SpeechRecognitionResult_dictation_5fasr_2eproto.base); -} - -SpeechRecognitionResult::~SpeechRecognitionResult() { - // @@protoc_insertion_point(destructor:google.cloud.speech.v1.SpeechRecognitionResult) - SharedDtor(); -} - -void SpeechRecognitionResult::SharedDtor() { - GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); -} - -void SpeechRecognitionResult::ArenaDtor(void* object) { - SpeechRecognitionResult* _this = reinterpret_cast< SpeechRecognitionResult* >(object); - (void)_this; -} -void SpeechRecognitionResult::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void SpeechRecognitionResult::SetCachedSize(int size) const { - _cached_size_.Set(size); -} -const SpeechRecognitionResult& SpeechRecognitionResult::default_instance() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SpeechRecognitionResult_dictation_5fasr_2eproto.base); - return *internal_default_instance(); -} - - -void SpeechRecognitionResult::Clear() { -// @@protoc_insertion_point(message_clear_start:google.cloud.speech.v1.SpeechRecognitionResult) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - alternatives_.Clear(); - lattice_.Clear(); - _internal_metadata_.Clear(); -} - -const char* SpeechRecognitionResult::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; - while (!ctx->Done(&ptr)) { - ::PROTOBUF_NAMESPACE_ID::uint32 tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - CHK_(ptr); - switch (tag >> 3) { - // repeated .google.cloud.speech.v1.SpeechRecognitionAlternative alternatives = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_alternatives(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr)); - } else goto handle_unusual; - continue; - // repeated .google.cloud.speech.v1.RecognitionLattice lattice = 5; - case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_lattice(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr)); - } else goto handle_unusual; - continue; - default: { - handle_unusual: - if ((tag & 7) == 4 || tag == 0) { - ctx->SetLastTag(tag); - goto success; - } - ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); - CHK_(ptr != nullptr); - continue; - } - } // switch - } // while -success: - return ptr; -failure: - ptr = nullptr; - goto success; -#undef CHK_ -} - -::PROTOBUF_NAMESPACE_ID::uint8* SpeechRecognitionResult::_InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:google.cloud.speech.v1.SpeechRecognitionResult) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // repeated .google.cloud.speech.v1.SpeechRecognitionAlternative alternatives = 1; - for (unsigned int i = 0, - n = static_cast(this->_internal_alternatives_size()); i < n; i++) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(1, this->_internal_alternatives(i), target, stream); - } - - // repeated .google.cloud.speech.v1.RecognitionLattice lattice = 5; - for (unsigned int i = 0, - n = static_cast(this->_internal_lattice_size()); i < n; i++) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(5, this->_internal_lattice(i), target, stream); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields(), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:google.cloud.speech.v1.SpeechRecognitionResult) - return target; -} - -size_t SpeechRecognitionResult::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:google.cloud.speech.v1.SpeechRecognitionResult) - size_t total_size = 0; - - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // repeated .google.cloud.speech.v1.SpeechRecognitionAlternative alternatives = 1; - total_size += 1UL * this->_internal_alternatives_size(); - for (const auto& msg : this->alternatives_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - // repeated .google.cloud.speech.v1.RecognitionLattice lattice = 5; - total_size += 1UL * this->_internal_lattice_size(); - for (const auto& msg : this->lattice_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( - _internal_metadata_, total_size, &_cached_size_); - } - int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); - SetCachedSize(cached_size); - return total_size; -} - -void SpeechRecognitionResult::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:google.cloud.speech.v1.SpeechRecognitionResult) - GOOGLE_DCHECK_NE(&from, this); - const SpeechRecognitionResult* source = - ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( - &from); - if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.cloud.speech.v1.SpeechRecognitionResult) - ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:google.cloud.speech.v1.SpeechRecognitionResult) - MergeFrom(*source); - } -} - -void SpeechRecognitionResult::MergeFrom(const SpeechRecognitionResult& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:google.cloud.speech.v1.SpeechRecognitionResult) - GOOGLE_DCHECK_NE(&from, this); - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - alternatives_.MergeFrom(from.alternatives_); - lattice_.MergeFrom(from.lattice_); -} - -void SpeechRecognitionResult::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:google.cloud.speech.v1.SpeechRecognitionResult) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void SpeechRecognitionResult::CopyFrom(const SpeechRecognitionResult& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:google.cloud.speech.v1.SpeechRecognitionResult) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool SpeechRecognitionResult::IsInitialized() const { - return true; -} - -void SpeechRecognitionResult::InternalSwap(SpeechRecognitionResult* other) { - using std::swap; - _internal_metadata_.Swap(&other->_internal_metadata_); - alternatives_.InternalSwap(&other->alternatives_); - lattice_.InternalSwap(&other->lattice_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata SpeechRecognitionResult::GetMetadata() const { - return GetMetadataStatic(); -} - - -// =================================================================== - -void SpeechRecognitionAlternative::InitAsDefaultInstance() { -} -class SpeechRecognitionAlternative::_Internal { - public: -}; - -SpeechRecognitionAlternative::SpeechRecognitionAlternative() - : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { - SharedCtor(); - // @@protoc_insertion_point(constructor:google.cloud.speech.v1.SpeechRecognitionAlternative) -} -SpeechRecognitionAlternative::SpeechRecognitionAlternative(::PROTOBUF_NAMESPACE_ID::Arena* arena) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(arena), - words_(arena) { - SharedCtor(); - RegisterArenaDtor(arena); - // @@protoc_insertion_point(arena_constructor:google.cloud.speech.v1.SpeechRecognitionAlternative) -} -SpeechRecognitionAlternative::SpeechRecognitionAlternative(const SpeechRecognitionAlternative& from) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr), - words_(from.words_) { - _internal_metadata_.MergeFrom(from._internal_metadata_); - transcript_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - if (!from._internal_transcript().empty()) { - transcript_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_transcript(), - GetArenaNoVirtual()); - } - confidence_ = from.confidence_; - // @@protoc_insertion_point(copy_constructor:google.cloud.speech.v1.SpeechRecognitionAlternative) -} - -void SpeechRecognitionAlternative::SharedCtor() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SpeechRecognitionAlternative_dictation_5fasr_2eproto.base); - transcript_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - confidence_ = 0; -} - -SpeechRecognitionAlternative::~SpeechRecognitionAlternative() { - // @@protoc_insertion_point(destructor:google.cloud.speech.v1.SpeechRecognitionAlternative) - SharedDtor(); -} - -void SpeechRecognitionAlternative::SharedDtor() { - GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); - transcript_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); -} - -void SpeechRecognitionAlternative::ArenaDtor(void* object) { - SpeechRecognitionAlternative* _this = reinterpret_cast< SpeechRecognitionAlternative* >(object); - (void)_this; -} -void SpeechRecognitionAlternative::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void SpeechRecognitionAlternative::SetCachedSize(int size) const { - _cached_size_.Set(size); -} -const SpeechRecognitionAlternative& SpeechRecognitionAlternative::default_instance() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SpeechRecognitionAlternative_dictation_5fasr_2eproto.base); - return *internal_default_instance(); -} - - -void SpeechRecognitionAlternative::Clear() { -// @@protoc_insertion_point(message_clear_start:google.cloud.speech.v1.SpeechRecognitionAlternative) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - words_.Clear(); - transcript_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); - confidence_ = 0; - _internal_metadata_.Clear(); -} - -const char* SpeechRecognitionAlternative::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; - while (!ctx->Done(&ptr)) { - ::PROTOBUF_NAMESPACE_ID::uint32 tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - CHK_(ptr); - switch (tag >> 3) { - // string transcript = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { - auto str = _internal_mutable_transcript(); - ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); - CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.cloud.speech.v1.SpeechRecognitionAlternative.transcript")); - CHK_(ptr); - } else goto handle_unusual; - continue; - // float confidence = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 21)) { - confidence_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); - ptr += sizeof(float); - } else goto handle_unusual; - continue; - // repeated .google.cloud.speech.v1.WordInfo words = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_words(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr)); - } else goto handle_unusual; - continue; - default: { - handle_unusual: - if ((tag & 7) == 4 || tag == 0) { - ctx->SetLastTag(tag); - goto success; - } - ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); - CHK_(ptr != nullptr); - continue; - } - } // switch - } // while -success: - return ptr; -failure: - ptr = nullptr; - goto success; -#undef CHK_ -} - -::PROTOBUF_NAMESPACE_ID::uint8* SpeechRecognitionAlternative::_InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:google.cloud.speech.v1.SpeechRecognitionAlternative) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // string transcript = 1; - if (this->transcript().size() > 0) { - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( - this->_internal_transcript().data(), static_cast(this->_internal_transcript().length()), - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "google.cloud.speech.v1.SpeechRecognitionAlternative.transcript"); - target = stream->WriteStringMaybeAliased( - 1, this->_internal_transcript(), target); - } - - // float confidence = 2; - if (!(this->confidence() <= 0 && this->confidence() >= 0)) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_confidence(), target); - } - - // repeated .google.cloud.speech.v1.WordInfo words = 3; - for (unsigned int i = 0, - n = static_cast(this->_internal_words_size()); i < n; i++) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(3, this->_internal_words(i), target, stream); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields(), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:google.cloud.speech.v1.SpeechRecognitionAlternative) - return target; -} - -size_t SpeechRecognitionAlternative::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:google.cloud.speech.v1.SpeechRecognitionAlternative) - size_t total_size = 0; - - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // repeated .google.cloud.speech.v1.WordInfo words = 3; - total_size += 1UL * this->_internal_words_size(); - for (const auto& msg : this->words_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - // string transcript = 1; - if (this->transcript().size() > 0) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( - this->_internal_transcript()); - } - - // float confidence = 2; - if (!(this->confidence() <= 0 && this->confidence() >= 0)) { - total_size += 1 + 4; - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( - _internal_metadata_, total_size, &_cached_size_); - } - int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); - SetCachedSize(cached_size); - return total_size; -} - -void SpeechRecognitionAlternative::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:google.cloud.speech.v1.SpeechRecognitionAlternative) - GOOGLE_DCHECK_NE(&from, this); - const SpeechRecognitionAlternative* source = - ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( - &from); - if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.cloud.speech.v1.SpeechRecognitionAlternative) - ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:google.cloud.speech.v1.SpeechRecognitionAlternative) - MergeFrom(*source); - } -} - -void SpeechRecognitionAlternative::MergeFrom(const SpeechRecognitionAlternative& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:google.cloud.speech.v1.SpeechRecognitionAlternative) - GOOGLE_DCHECK_NE(&from, this); - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - words_.MergeFrom(from.words_); - if (from.transcript().size() > 0) { - _internal_set_transcript(from._internal_transcript()); - } - if (!(from.confidence() <= 0 && from.confidence() >= 0)) { - _internal_set_confidence(from._internal_confidence()); - } -} - -void SpeechRecognitionAlternative::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:google.cloud.speech.v1.SpeechRecognitionAlternative) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void SpeechRecognitionAlternative::CopyFrom(const SpeechRecognitionAlternative& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:google.cloud.speech.v1.SpeechRecognitionAlternative) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool SpeechRecognitionAlternative::IsInitialized() const { - return true; -} - -void SpeechRecognitionAlternative::InternalSwap(SpeechRecognitionAlternative* other) { - using std::swap; - _internal_metadata_.Swap(&other->_internal_metadata_); - words_.InternalSwap(&other->words_); - transcript_.Swap(&other->transcript_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); - swap(confidence_, other->confidence_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata SpeechRecognitionAlternative::GetMetadata() const { - return GetMetadataStatic(); -} - - -// =================================================================== - -void WordInfo::InitAsDefaultInstance() { - ::google::cloud::speech::v1::_WordInfo_default_instance_._instance.get_mutable()->start_time_ = const_cast< PROTOBUF_NAMESPACE_ID::Duration*>( - PROTOBUF_NAMESPACE_ID::Duration::internal_default_instance()); - ::google::cloud::speech::v1::_WordInfo_default_instance_._instance.get_mutable()->end_time_ = const_cast< PROTOBUF_NAMESPACE_ID::Duration*>( - PROTOBUF_NAMESPACE_ID::Duration::internal_default_instance()); -} -class WordInfo::_Internal { - public: - static const PROTOBUF_NAMESPACE_ID::Duration& start_time(const WordInfo* msg); - static const PROTOBUF_NAMESPACE_ID::Duration& end_time(const WordInfo* msg); -}; - -const PROTOBUF_NAMESPACE_ID::Duration& -WordInfo::_Internal::start_time(const WordInfo* msg) { - return *msg->start_time_; -} -const PROTOBUF_NAMESPACE_ID::Duration& -WordInfo::_Internal::end_time(const WordInfo* msg) { - return *msg->end_time_; -} -void WordInfo::unsafe_arena_set_allocated_start_time( - PROTOBUF_NAMESPACE_ID::Duration* start_time) { - if (GetArenaNoVirtual() == nullptr) { - delete start_time_; - } - start_time_ = start_time; - if (start_time) { - - } else { - - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.WordInfo.start_time) -} -void WordInfo::clear_start_time() { - if (GetArenaNoVirtual() == nullptr && start_time_ != nullptr) { - delete start_time_; - } - start_time_ = nullptr; -} -void WordInfo::unsafe_arena_set_allocated_end_time( - PROTOBUF_NAMESPACE_ID::Duration* end_time) { - if (GetArenaNoVirtual() == nullptr) { - delete end_time_; - } - end_time_ = end_time; - if (end_time) { - - } else { - - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.WordInfo.end_time) -} -void WordInfo::clear_end_time() { - if (GetArenaNoVirtual() == nullptr && end_time_ != nullptr) { - delete end_time_; - } - end_time_ = nullptr; -} -WordInfo::WordInfo() - : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { - SharedCtor(); - // @@protoc_insertion_point(constructor:google.cloud.speech.v1.WordInfo) -} -WordInfo::WordInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(arena) { - SharedCtor(); - RegisterArenaDtor(arena); - // @@protoc_insertion_point(arena_constructor:google.cloud.speech.v1.WordInfo) -} -WordInfo::WordInfo(const WordInfo& from) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr) { - _internal_metadata_.MergeFrom(from._internal_metadata_); - word_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - if (!from._internal_word().empty()) { - word_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_word(), - GetArenaNoVirtual()); - } - if (from._internal_has_start_time()) { - start_time_ = new PROTOBUF_NAMESPACE_ID::Duration(*from.start_time_); - } else { - start_time_ = nullptr; - } - if (from._internal_has_end_time()) { - end_time_ = new PROTOBUF_NAMESPACE_ID::Duration(*from.end_time_); - } else { - end_time_ = nullptr; - } - // @@protoc_insertion_point(copy_constructor:google.cloud.speech.v1.WordInfo) -} - -void WordInfo::SharedCtor() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_WordInfo_dictation_5fasr_2eproto.base); - word_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - ::memset(&start_time_, 0, static_cast( - reinterpret_cast(&end_time_) - - reinterpret_cast(&start_time_)) + sizeof(end_time_)); -} - -WordInfo::~WordInfo() { - // @@protoc_insertion_point(destructor:google.cloud.speech.v1.WordInfo) - SharedDtor(); -} - -void WordInfo::SharedDtor() { - GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); - word_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - if (this != internal_default_instance()) delete start_time_; - if (this != internal_default_instance()) delete end_time_; -} - -void WordInfo::ArenaDtor(void* object) { - WordInfo* _this = reinterpret_cast< WordInfo* >(object); - (void)_this; -} -void WordInfo::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void WordInfo::SetCachedSize(int size) const { - _cached_size_.Set(size); -} -const WordInfo& WordInfo::default_instance() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_WordInfo_dictation_5fasr_2eproto.base); - return *internal_default_instance(); -} - - -void WordInfo::Clear() { -// @@protoc_insertion_point(message_clear_start:google.cloud.speech.v1.WordInfo) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - word_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); - if (GetArenaNoVirtual() == nullptr && start_time_ != nullptr) { - delete start_time_; - } - start_time_ = nullptr; - if (GetArenaNoVirtual() == nullptr && end_time_ != nullptr) { - delete end_time_; - } - end_time_ = nullptr; - _internal_metadata_.Clear(); -} - -const char* WordInfo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; - while (!ctx->Done(&ptr)) { - ::PROTOBUF_NAMESPACE_ID::uint32 tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - CHK_(ptr); - switch (tag >> 3) { - // .google.protobuf.Duration start_time = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { - ptr = ctx->ParseMessage(_internal_mutable_start_time(), ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - // .google.protobuf.Duration end_time = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { - ptr = ctx->ParseMessage(_internal_mutable_end_time(), ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - // string word = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { - auto str = _internal_mutable_word(); - ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); - CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.cloud.speech.v1.WordInfo.word")); - CHK_(ptr); - } else goto handle_unusual; - continue; - default: { - handle_unusual: - if ((tag & 7) == 4 || tag == 0) { - ctx->SetLastTag(tag); - goto success; - } - ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); - CHK_(ptr != nullptr); - continue; - } - } // switch - } // while -success: - return ptr; -failure: - ptr = nullptr; - goto success; -#undef CHK_ -} - -::PROTOBUF_NAMESPACE_ID::uint8* WordInfo::_InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:google.cloud.speech.v1.WordInfo) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // .google.protobuf.Duration start_time = 1; - if (this->has_start_time()) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage( - 1, _Internal::start_time(this), target, stream); - } - - // .google.protobuf.Duration end_time = 2; - if (this->has_end_time()) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage( - 2, _Internal::end_time(this), target, stream); - } - - // string word = 3; - if (this->word().size() > 0) { - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( - this->_internal_word().data(), static_cast(this->_internal_word().length()), - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "google.cloud.speech.v1.WordInfo.word"); - target = stream->WriteStringMaybeAliased( - 3, this->_internal_word(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields(), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:google.cloud.speech.v1.WordInfo) - return target; -} - -size_t WordInfo::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:google.cloud.speech.v1.WordInfo) - size_t total_size = 0; - - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // string word = 3; - if (this->word().size() > 0) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( - this->_internal_word()); - } - - // .google.protobuf.Duration start_time = 1; - if (this->has_start_time()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *start_time_); - } - - // .google.protobuf.Duration end_time = 2; - if (this->has_end_time()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *end_time_); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( - _internal_metadata_, total_size, &_cached_size_); - } - int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); - SetCachedSize(cached_size); - return total_size; -} - -void WordInfo::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:google.cloud.speech.v1.WordInfo) - GOOGLE_DCHECK_NE(&from, this); - const WordInfo* source = - ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( - &from); - if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.cloud.speech.v1.WordInfo) - ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:google.cloud.speech.v1.WordInfo) - MergeFrom(*source); - } -} - -void WordInfo::MergeFrom(const WordInfo& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:google.cloud.speech.v1.WordInfo) - GOOGLE_DCHECK_NE(&from, this); - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - if (from.word().size() > 0) { - _internal_set_word(from._internal_word()); - } - if (from.has_start_time()) { - _internal_mutable_start_time()->PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_start_time()); - } - if (from.has_end_time()) { - _internal_mutable_end_time()->PROTOBUF_NAMESPACE_ID::Duration::MergeFrom(from._internal_end_time()); - } -} - -void WordInfo::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:google.cloud.speech.v1.WordInfo) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void WordInfo::CopyFrom(const WordInfo& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:google.cloud.speech.v1.WordInfo) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool WordInfo::IsInitialized() const { - return true; -} - -void WordInfo::InternalSwap(WordInfo* other) { - using std::swap; - _internal_metadata_.Swap(&other->_internal_metadata_); - word_.Swap(&other->word_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); - swap(start_time_, other->start_time_); - swap(end_time_, other->end_time_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata WordInfo::GetMetadata() const { - return GetMetadataStatic(); -} - - -// =================================================================== - -void RecognitionLattice::InitAsDefaultInstance() { -} -class RecognitionLattice::_Internal { - public: -}; - -RecognitionLattice::RecognitionLattice() - : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { - SharedCtor(); - // @@protoc_insertion_point(constructor:google.cloud.speech.v1.RecognitionLattice) -} -RecognitionLattice::RecognitionLattice(::PROTOBUF_NAMESPACE_ID::Arena* arena) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(arena), - final_nodes_(arena), - edges_(arena) { - SharedCtor(); - RegisterArenaDtor(arena); - // @@protoc_insertion_point(arena_constructor:google.cloud.speech.v1.RecognitionLattice) -} -RecognitionLattice::RecognitionLattice(const RecognitionLattice& from) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr), - final_nodes_(from.final_nodes_), - edges_(from.edges_) { - _internal_metadata_.MergeFrom(from._internal_metadata_); - // @@protoc_insertion_point(copy_constructor:google.cloud.speech.v1.RecognitionLattice) -} - -void RecognitionLattice::SharedCtor() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RecognitionLattice_dictation_5fasr_2eproto.base); -} - -RecognitionLattice::~RecognitionLattice() { - // @@protoc_insertion_point(destructor:google.cloud.speech.v1.RecognitionLattice) - SharedDtor(); -} - -void RecognitionLattice::SharedDtor() { - GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); -} - -void RecognitionLattice::ArenaDtor(void* object) { - RecognitionLattice* _this = reinterpret_cast< RecognitionLattice* >(object); - (void)_this; -} -void RecognitionLattice::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void RecognitionLattice::SetCachedSize(int size) const { - _cached_size_.Set(size); -} -const RecognitionLattice& RecognitionLattice::default_instance() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RecognitionLattice_dictation_5fasr_2eproto.base); - return *internal_default_instance(); -} - - -void RecognitionLattice::Clear() { -// @@protoc_insertion_point(message_clear_start:google.cloud.speech.v1.RecognitionLattice) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - final_nodes_.Clear(); - edges_.Clear(); - _internal_metadata_.Clear(); -} - -const char* RecognitionLattice::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; - while (!ctx->Done(&ptr)) { - ::PROTOBUF_NAMESPACE_ID::uint32 tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - CHK_(ptr); - switch (tag >> 3) { - // repeated int32 final_nodes = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) { - ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_final_nodes(), ptr, ctx); - CHK_(ptr); - } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) { - _internal_add_final_nodes(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr)); - CHK_(ptr); - } else goto handle_unusual; - continue; - // repeated .google.cloud.speech.v1.LatticeEdge edges = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) { - ptr -= 1; - do { - ptr += 1; - ptr = ctx->ParseMessage(_internal_add_edges(), ptr); - CHK_(ptr); - if (!ctx->DataAvailable(ptr)) break; - } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr)); - } else goto handle_unusual; - continue; - default: { - handle_unusual: - if ((tag & 7) == 4 || tag == 0) { - ctx->SetLastTag(tag); - goto success; - } - ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); - CHK_(ptr != nullptr); - continue; - } - } // switch - } // while -success: - return ptr; -failure: - ptr = nullptr; - goto success; -#undef CHK_ -} - -::PROTOBUF_NAMESPACE_ID::uint8* RecognitionLattice::_InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:google.cloud.speech.v1.RecognitionLattice) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // repeated int32 final_nodes = 1; - { - int byte_size = _final_nodes_cached_byte_size_.load(std::memory_order_relaxed); - if (byte_size > 0) { - target = stream->WriteInt32Packed( - 1, _internal_final_nodes(), byte_size, target); - } - } - - // repeated .google.cloud.speech.v1.LatticeEdge edges = 2; - for (unsigned int i = 0, - n = static_cast(this->_internal_edges_size()); i < n; i++) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(2, this->_internal_edges(i), target, stream); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields(), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:google.cloud.speech.v1.RecognitionLattice) - return target; -} - -size_t RecognitionLattice::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:google.cloud.speech.v1.RecognitionLattice) - size_t total_size = 0; - - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // repeated int32 final_nodes = 1; - { - size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - Int32Size(this->final_nodes_); - if (data_size > 0) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size( - static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size)); - } - int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size); - _final_nodes_cached_byte_size_.store(cached_size, - std::memory_order_relaxed); - total_size += data_size; - } - - // repeated .google.cloud.speech.v1.LatticeEdge edges = 2; - total_size += 1UL * this->_internal_edges_size(); - for (const auto& msg : this->edges_) { - total_size += - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( - _internal_metadata_, total_size, &_cached_size_); - } - int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); - SetCachedSize(cached_size); - return total_size; -} - -void RecognitionLattice::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:google.cloud.speech.v1.RecognitionLattice) - GOOGLE_DCHECK_NE(&from, this); - const RecognitionLattice* source = - ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( - &from); - if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.cloud.speech.v1.RecognitionLattice) - ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:google.cloud.speech.v1.RecognitionLattice) - MergeFrom(*source); - } -} - -void RecognitionLattice::MergeFrom(const RecognitionLattice& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:google.cloud.speech.v1.RecognitionLattice) - GOOGLE_DCHECK_NE(&from, this); - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - final_nodes_.MergeFrom(from.final_nodes_); - edges_.MergeFrom(from.edges_); -} - -void RecognitionLattice::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:google.cloud.speech.v1.RecognitionLattice) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void RecognitionLattice::CopyFrom(const RecognitionLattice& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:google.cloud.speech.v1.RecognitionLattice) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool RecognitionLattice::IsInitialized() const { - return true; -} - -void RecognitionLattice::InternalSwap(RecognitionLattice* other) { - using std::swap; - _internal_metadata_.Swap(&other->_internal_metadata_); - final_nodes_.InternalSwap(&other->final_nodes_); - edges_.InternalSwap(&other->edges_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata RecognitionLattice::GetMetadata() const { - return GetMetadataStatic(); -} - - -// =================================================================== - -void LatticeEdge::InitAsDefaultInstance() { -} -class LatticeEdge::_Internal { - public: -}; - -LatticeEdge::LatticeEdge() - : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) { - SharedCtor(); - // @@protoc_insertion_point(constructor:google.cloud.speech.v1.LatticeEdge) -} -LatticeEdge::LatticeEdge(::PROTOBUF_NAMESPACE_ID::Arena* arena) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(arena) { - SharedCtor(); - RegisterArenaDtor(arena); - // @@protoc_insertion_point(arena_constructor:google.cloud.speech.v1.LatticeEdge) -} -LatticeEdge::LatticeEdge(const LatticeEdge& from) - : ::PROTOBUF_NAMESPACE_ID::Message(), - _internal_metadata_(nullptr) { - _internal_metadata_.MergeFrom(from._internal_metadata_); - symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - if (!from._internal_symbol().empty()) { - symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from._internal_symbol(), - GetArenaNoVirtual()); - } - ::memcpy(&start_node_, &from.start_node_, - static_cast(reinterpret_cast(&duration_) - - reinterpret_cast(&start_node_)) + sizeof(duration_)); - // @@protoc_insertion_point(copy_constructor:google.cloud.speech.v1.LatticeEdge) -} - -void LatticeEdge::SharedCtor() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_LatticeEdge_dictation_5fasr_2eproto.base); - symbol_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - ::memset(&start_node_, 0, static_cast( - reinterpret_cast(&duration_) - - reinterpret_cast(&start_node_)) + sizeof(duration_)); -} - -LatticeEdge::~LatticeEdge() { - // @@protoc_insertion_point(destructor:google.cloud.speech.v1.LatticeEdge) - SharedDtor(); -} - -void LatticeEdge::SharedDtor() { - GOOGLE_DCHECK(GetArenaNoVirtual() == nullptr); - symbol_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); -} - -void LatticeEdge::ArenaDtor(void* object) { - LatticeEdge* _this = reinterpret_cast< LatticeEdge* >(object); - (void)_this; -} -void LatticeEdge::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { -} -void LatticeEdge::SetCachedSize(int size) const { - _cached_size_.Set(size); -} -const LatticeEdge& LatticeEdge::default_instance() { - ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LatticeEdge_dictation_5fasr_2eproto.base); - return *internal_default_instance(); -} - - -void LatticeEdge::Clear() { -// @@protoc_insertion_point(message_clear_start:google.cloud.speech.v1.LatticeEdge) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - symbol_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); - ::memset(&start_node_, 0, static_cast( - reinterpret_cast(&duration_) - - reinterpret_cast(&start_node_)) + sizeof(duration_)); - _internal_metadata_.Clear(); -} - -const char* LatticeEdge::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { -#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure - ::PROTOBUF_NAMESPACE_ID::Arena* arena = GetArenaNoVirtual(); (void)arena; - while (!ctx->Done(&ptr)) { - ::PROTOBUF_NAMESPACE_ID::uint32 tag; - ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); - CHK_(ptr); - switch (tag >> 3) { - // int32 start_node = 1; - case 1: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) { - start_node_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - // int32 end_node = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) { - end_node_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - // string symbol = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) { - auto str = _internal_mutable_symbol(); - ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); - CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.cloud.speech.v1.LatticeEdge.symbol")); - CHK_(ptr); - } else goto handle_unusual; - continue; - // float language_cost = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 37)) { - language_cost_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); - ptr += sizeof(float); - } else goto handle_unusual; - continue; - // float acoustic_cost = 5; - case 5: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 45)) { - acoustic_cost_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); - ptr += sizeof(float); - } else goto handle_unusual; - continue; - // int32 duration = 6; - case 6: - if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) { - duration_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr); - CHK_(ptr); - } else goto handle_unusual; - continue; - default: { - handle_unusual: - if ((tag & 7) == 4 || tag == 0) { - ctx->SetLastTag(tag); - goto success; - } - ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx); - CHK_(ptr != nullptr); - continue; - } - } // switch - } // while -success: - return ptr; -failure: - ptr = nullptr; - goto success; -#undef CHK_ -} - -::PROTOBUF_NAMESPACE_ID::uint8* LatticeEdge::_InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { - // @@protoc_insertion_point(serialize_to_array_start:google.cloud.speech.v1.LatticeEdge) - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - // int32 start_node = 1; - if (this->start_node() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_start_node(), target); - } - - // int32 end_node = 2; - if (this->end_node() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_end_node(), target); - } - - // string symbol = 3; - if (this->symbol().size() > 0) { - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( - this->_internal_symbol().data(), static_cast(this->_internal_symbol().length()), - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "google.cloud.speech.v1.LatticeEdge.symbol"); - target = stream->WriteStringMaybeAliased( - 3, this->_internal_symbol(), target); - } - - // float language_cost = 4; - if (!(this->language_cost() <= 0 && this->language_cost() >= 0)) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_language_cost(), target); - } - - // float acoustic_cost = 5; - if (!(this->acoustic_cost() <= 0 && this->acoustic_cost() >= 0)) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(5, this->_internal_acoustic_cost(), target); - } - - // int32 duration = 6; - if (this->duration() != 0) { - target = stream->EnsureSpace(target); - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(6, this->_internal_duration(), target); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( - _internal_metadata_.unknown_fields(), target, stream); - } - // @@protoc_insertion_point(serialize_to_array_end:google.cloud.speech.v1.LatticeEdge) - return target; -} - -size_t LatticeEdge::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:google.cloud.speech.v1.LatticeEdge) - size_t total_size = 0; - - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - // Prevent compiler warnings about cached_has_bits being unused - (void) cached_has_bits; - - // string symbol = 3; - if (this->symbol().size() > 0) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( - this->_internal_symbol()); - } - - // int32 start_node = 1; - if (this->start_node() != 0) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size( - this->_internal_start_node()); - } - - // int32 end_node = 2; - if (this->end_node() != 0) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size( - this->_internal_end_node()); - } - - // float language_cost = 4; - if (!(this->language_cost() <= 0 && this->language_cost() >= 0)) { - total_size += 1 + 4; - } - - // float acoustic_cost = 5; - if (!(this->acoustic_cost() <= 0 && this->acoustic_cost() >= 0)) { - total_size += 1 + 4; - } - - // int32 duration = 6; - if (this->duration() != 0) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size( - this->_internal_duration()); - } - - if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { - return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize( - _internal_metadata_, total_size, &_cached_size_); - } - int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size); - SetCachedSize(cached_size); - return total_size; -} - -void LatticeEdge::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:google.cloud.speech.v1.LatticeEdge) - GOOGLE_DCHECK_NE(&from, this); - const LatticeEdge* source = - ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated( - &from); - if (source == nullptr) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.cloud.speech.v1.LatticeEdge) - ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:google.cloud.speech.v1.LatticeEdge) - MergeFrom(*source); - } -} - -void LatticeEdge::MergeFrom(const LatticeEdge& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:google.cloud.speech.v1.LatticeEdge) - GOOGLE_DCHECK_NE(&from, this); - _internal_metadata_.MergeFrom(from._internal_metadata_); - ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0; - (void) cached_has_bits; - - if (from.symbol().size() > 0) { - _internal_set_symbol(from._internal_symbol()); - } - if (from.start_node() != 0) { - _internal_set_start_node(from._internal_start_node()); - } - if (from.end_node() != 0) { - _internal_set_end_node(from._internal_end_node()); - } - if (!(from.language_cost() <= 0 && from.language_cost() >= 0)) { - _internal_set_language_cost(from._internal_language_cost()); - } - if (!(from.acoustic_cost() <= 0 && from.acoustic_cost() >= 0)) { - _internal_set_acoustic_cost(from._internal_acoustic_cost()); - } - if (from.duration() != 0) { - _internal_set_duration(from._internal_duration()); - } -} - -void LatticeEdge::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:google.cloud.speech.v1.LatticeEdge) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void LatticeEdge::CopyFrom(const LatticeEdge& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:google.cloud.speech.v1.LatticeEdge) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -bool LatticeEdge::IsInitialized() const { - return true; -} - -void LatticeEdge::InternalSwap(LatticeEdge* other) { - using std::swap; - _internal_metadata_.Swap(&other->_internal_metadata_); - symbol_.Swap(&other->symbol_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); - swap(start_node_, other->start_node_); - swap(end_node_, other->end_node_); - swap(language_cost_, other->language_cost_); - swap(acoustic_cost_, other->acoustic_cost_); - swap(duration_, other->duration_); -} - -::PROTOBUF_NAMESPACE_ID::Metadata LatticeEdge::GetMetadata() const { - return GetMetadataStatic(); -} - - -// @@protoc_insertion_point(namespace_scope) -} // namespace v1 -} // namespace speech -} // namespace cloud -} // namespace google -PROTOBUF_NAMESPACE_OPEN -template<> PROTOBUF_NOINLINE ::google::cloud::speech::v1::RecognizeRequest* Arena::CreateMaybeMessage< ::google::cloud::speech::v1::RecognizeRequest >(Arena* arena) { - return Arena::CreateMessageInternal< ::google::cloud::speech::v1::RecognizeRequest >(arena); -} -template<> PROTOBUF_NOINLINE ::google::cloud::speech::v1::StreamingRecognizeRequest* Arena::CreateMaybeMessage< ::google::cloud::speech::v1::StreamingRecognizeRequest >(Arena* arena) { - return Arena::CreateMessageInternal< ::google::cloud::speech::v1::StreamingRecognizeRequest >(arena); -} -template<> PROTOBUF_NOINLINE ::google::cloud::speech::v1::StreamingRecognitionConfig* Arena::CreateMaybeMessage< ::google::cloud::speech::v1::StreamingRecognitionConfig >(Arena* arena) { - return Arena::CreateMessageInternal< ::google::cloud::speech::v1::StreamingRecognitionConfig >(arena); -} -template<> PROTOBUF_NOINLINE ::google::cloud::speech::v1::RecognitionConfig* Arena::CreateMaybeMessage< ::google::cloud::speech::v1::RecognitionConfig >(Arena* arena) { - return Arena::CreateMessageInternal< ::google::cloud::speech::v1::RecognitionConfig >(arena); -} -template<> PROTOBUF_NOINLINE ::google::cloud::speech::v1::SpeechContext* Arena::CreateMaybeMessage< ::google::cloud::speech::v1::SpeechContext >(Arena* arena) { - return Arena::CreateMessageInternal< ::google::cloud::speech::v1::SpeechContext >(arena); -} -template<> PROTOBUF_NOINLINE ::google::cloud::speech::v1::ConfigField* Arena::CreateMaybeMessage< ::google::cloud::speech::v1::ConfigField >(Arena* arena) { - return Arena::CreateMessageInternal< ::google::cloud::speech::v1::ConfigField >(arena); -} -template<> PROTOBUF_NOINLINE ::google::cloud::speech::v1::RecognitionAudio* Arena::CreateMaybeMessage< ::google::cloud::speech::v1::RecognitionAudio >(Arena* arena) { - return Arena::CreateMessageInternal< ::google::cloud::speech::v1::RecognitionAudio >(arena); -} -template<> PROTOBUF_NOINLINE ::google::cloud::speech::v1::RecognizeResponse* Arena::CreateMaybeMessage< ::google::cloud::speech::v1::RecognizeResponse >(Arena* arena) { - return Arena::CreateMessageInternal< ::google::cloud::speech::v1::RecognizeResponse >(arena); -} -template<> PROTOBUF_NOINLINE ::google::cloud::speech::v1::StreamingRecognizeResponse* Arena::CreateMaybeMessage< ::google::cloud::speech::v1::StreamingRecognizeResponse >(Arena* arena) { - return Arena::CreateMessageInternal< ::google::cloud::speech::v1::StreamingRecognizeResponse >(arena); -} -template<> PROTOBUF_NOINLINE ::google::cloud::speech::v1::StreamingRecognitionResult* Arena::CreateMaybeMessage< ::google::cloud::speech::v1::StreamingRecognitionResult >(Arena* arena) { - return Arena::CreateMessageInternal< ::google::cloud::speech::v1::StreamingRecognitionResult >(arena); -} -template<> PROTOBUF_NOINLINE ::google::cloud::speech::v1::SpeechRecognitionResult* Arena::CreateMaybeMessage< ::google::cloud::speech::v1::SpeechRecognitionResult >(Arena* arena) { - return Arena::CreateMessageInternal< ::google::cloud::speech::v1::SpeechRecognitionResult >(arena); -} -template<> PROTOBUF_NOINLINE ::google::cloud::speech::v1::SpeechRecognitionAlternative* Arena::CreateMaybeMessage< ::google::cloud::speech::v1::SpeechRecognitionAlternative >(Arena* arena) { - return Arena::CreateMessageInternal< ::google::cloud::speech::v1::SpeechRecognitionAlternative >(arena); -} -template<> PROTOBUF_NOINLINE ::google::cloud::speech::v1::WordInfo* Arena::CreateMaybeMessage< ::google::cloud::speech::v1::WordInfo >(Arena* arena) { - return Arena::CreateMessageInternal< ::google::cloud::speech::v1::WordInfo >(arena); -} -template<> PROTOBUF_NOINLINE ::google::cloud::speech::v1::RecognitionLattice* Arena::CreateMaybeMessage< ::google::cloud::speech::v1::RecognitionLattice >(Arena* arena) { - return Arena::CreateMessageInternal< ::google::cloud::speech::v1::RecognitionLattice >(arena); -} -template<> PROTOBUF_NOINLINE ::google::cloud::speech::v1::LatticeEdge* Arena::CreateMaybeMessage< ::google::cloud::speech::v1::LatticeEdge >(Arena* arena) { - return Arena::CreateMessageInternal< ::google::cloud::speech::v1::LatticeEdge >(arena); -} -PROTOBUF_NAMESPACE_CLOSE - -// @@protoc_insertion_point(global_scope) -#include diff --git a/cpp/libdictation-client/dictation_asr.pb.h b/cpp/libdictation-client/dictation_asr.pb.h deleted file mode 100644 index 1988801..0000000 --- a/cpp/libdictation-client/dictation_asr.pb.h +++ /dev/null @@ -1,5811 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: dictation_asr.proto - -#ifndef GOOGLE_PROTOBUF_INCLUDED_dictation_5fasr_2eproto -#define GOOGLE_PROTOBUF_INCLUDED_dictation_5fasr_2eproto - -#include -#include - -#include -#if PROTOBUF_VERSION < 3011000 -#error This file was generated by a newer version of protoc which is -#error incompatible with your Protocol Buffer headers. Please update -#error your headers. -#endif -#if 3011003 < PROTOBUF_MIN_PROTOC_VERSION -#error This file was generated by an older version of protoc which is -#error incompatible with your Protocol Buffer headers. Please -#error regenerate this file with a newer version of protoc. -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include // IWYU pragma: export -#include // IWYU pragma: export -#include -#include -#include "google/api/annotations.pb.h" -#include -#include "google/rpc/status.pb.h" -// @@protoc_insertion_point(includes) -#include -#define PROTOBUF_INTERNAL_EXPORT_dictation_5fasr_2eproto -PROTOBUF_NAMESPACE_OPEN -namespace internal { -class AnyMetadata; -} // namespace internal -PROTOBUF_NAMESPACE_CLOSE - -// Internal implementation detail -- do not use these members. -struct TableStruct_dictation_5fasr_2eproto { - static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] - PROTOBUF_SECTION_VARIABLE(protodesc_cold); - static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] - PROTOBUF_SECTION_VARIABLE(protodesc_cold); - static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[15] - PROTOBUF_SECTION_VARIABLE(protodesc_cold); - static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; - static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; - static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]; -}; -extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_dictation_5fasr_2eproto; -namespace google { -namespace cloud { -namespace speech { -namespace v1 { -class ConfigField; -class ConfigFieldDefaultTypeInternal; -extern ConfigFieldDefaultTypeInternal _ConfigField_default_instance_; -class LatticeEdge; -class LatticeEdgeDefaultTypeInternal; -extern LatticeEdgeDefaultTypeInternal _LatticeEdge_default_instance_; -class RecognitionAudio; -class RecognitionAudioDefaultTypeInternal; -extern RecognitionAudioDefaultTypeInternal _RecognitionAudio_default_instance_; -class RecognitionConfig; -class RecognitionConfigDefaultTypeInternal; -extern RecognitionConfigDefaultTypeInternal _RecognitionConfig_default_instance_; -class RecognitionLattice; -class RecognitionLatticeDefaultTypeInternal; -extern RecognitionLatticeDefaultTypeInternal _RecognitionLattice_default_instance_; -class RecognizeRequest; -class RecognizeRequestDefaultTypeInternal; -extern RecognizeRequestDefaultTypeInternal _RecognizeRequest_default_instance_; -class RecognizeResponse; -class RecognizeResponseDefaultTypeInternal; -extern RecognizeResponseDefaultTypeInternal _RecognizeResponse_default_instance_; -class SpeechContext; -class SpeechContextDefaultTypeInternal; -extern SpeechContextDefaultTypeInternal _SpeechContext_default_instance_; -class SpeechRecognitionAlternative; -class SpeechRecognitionAlternativeDefaultTypeInternal; -extern SpeechRecognitionAlternativeDefaultTypeInternal _SpeechRecognitionAlternative_default_instance_; -class SpeechRecognitionResult; -class SpeechRecognitionResultDefaultTypeInternal; -extern SpeechRecognitionResultDefaultTypeInternal _SpeechRecognitionResult_default_instance_; -class StreamingRecognitionConfig; -class StreamingRecognitionConfigDefaultTypeInternal; -extern StreamingRecognitionConfigDefaultTypeInternal _StreamingRecognitionConfig_default_instance_; -class StreamingRecognitionResult; -class StreamingRecognitionResultDefaultTypeInternal; -extern StreamingRecognitionResultDefaultTypeInternal _StreamingRecognitionResult_default_instance_; -class StreamingRecognizeRequest; -class StreamingRecognizeRequestDefaultTypeInternal; -extern StreamingRecognizeRequestDefaultTypeInternal _StreamingRecognizeRequest_default_instance_; -class StreamingRecognizeResponse; -class StreamingRecognizeResponseDefaultTypeInternal; -extern StreamingRecognizeResponseDefaultTypeInternal _StreamingRecognizeResponse_default_instance_; -class WordInfo; -class WordInfoDefaultTypeInternal; -extern WordInfoDefaultTypeInternal _WordInfo_default_instance_; -} // namespace v1 -} // namespace speech -} // namespace cloud -} // namespace google -PROTOBUF_NAMESPACE_OPEN -template<> ::google::cloud::speech::v1::ConfigField* Arena::CreateMaybeMessage<::google::cloud::speech::v1::ConfigField>(Arena*); -template<> ::google::cloud::speech::v1::LatticeEdge* Arena::CreateMaybeMessage<::google::cloud::speech::v1::LatticeEdge>(Arena*); -template<> ::google::cloud::speech::v1::RecognitionAudio* Arena::CreateMaybeMessage<::google::cloud::speech::v1::RecognitionAudio>(Arena*); -template<> ::google::cloud::speech::v1::RecognitionConfig* Arena::CreateMaybeMessage<::google::cloud::speech::v1::RecognitionConfig>(Arena*); -template<> ::google::cloud::speech::v1::RecognitionLattice* Arena::CreateMaybeMessage<::google::cloud::speech::v1::RecognitionLattice>(Arena*); -template<> ::google::cloud::speech::v1::RecognizeRequest* Arena::CreateMaybeMessage<::google::cloud::speech::v1::RecognizeRequest>(Arena*); -template<> ::google::cloud::speech::v1::RecognizeResponse* Arena::CreateMaybeMessage<::google::cloud::speech::v1::RecognizeResponse>(Arena*); -template<> ::google::cloud::speech::v1::SpeechContext* Arena::CreateMaybeMessage<::google::cloud::speech::v1::SpeechContext>(Arena*); -template<> ::google::cloud::speech::v1::SpeechRecognitionAlternative* Arena::CreateMaybeMessage<::google::cloud::speech::v1::SpeechRecognitionAlternative>(Arena*); -template<> ::google::cloud::speech::v1::SpeechRecognitionResult* Arena::CreateMaybeMessage<::google::cloud::speech::v1::SpeechRecognitionResult>(Arena*); -template<> ::google::cloud::speech::v1::StreamingRecognitionConfig* Arena::CreateMaybeMessage<::google::cloud::speech::v1::StreamingRecognitionConfig>(Arena*); -template<> ::google::cloud::speech::v1::StreamingRecognitionResult* Arena::CreateMaybeMessage<::google::cloud::speech::v1::StreamingRecognitionResult>(Arena*); -template<> ::google::cloud::speech::v1::StreamingRecognizeRequest* Arena::CreateMaybeMessage<::google::cloud::speech::v1::StreamingRecognizeRequest>(Arena*); -template<> ::google::cloud::speech::v1::StreamingRecognizeResponse* Arena::CreateMaybeMessage<::google::cloud::speech::v1::StreamingRecognizeResponse>(Arena*); -template<> ::google::cloud::speech::v1::WordInfo* Arena::CreateMaybeMessage<::google::cloud::speech::v1::WordInfo>(Arena*); -PROTOBUF_NAMESPACE_CLOSE -namespace google { -namespace cloud { -namespace speech { -namespace v1 { - -enum RecognitionConfig_AudioEncoding : int { - RecognitionConfig_AudioEncoding_ENCODING_UNSPECIFIED = 0, - RecognitionConfig_AudioEncoding_LINEAR16 = 1, - RecognitionConfig_AudioEncoding_FLAC = 2, - RecognitionConfig_AudioEncoding_MULAW = 3, - RecognitionConfig_AudioEncoding_AMR = 4, - RecognitionConfig_AudioEncoding_AMR_WB = 5, - RecognitionConfig_AudioEncoding_OGG_OPUS = 6, - RecognitionConfig_AudioEncoding_SPEEX_WITH_HEADER_BYTE = 7, - RecognitionConfig_AudioEncoding_MP3 = 8, - RecognitionConfig_AudioEncoding_RecognitionConfig_AudioEncoding_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(), - RecognitionConfig_AudioEncoding_RecognitionConfig_AudioEncoding_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max() -}; -bool RecognitionConfig_AudioEncoding_IsValid(int value); -constexpr RecognitionConfig_AudioEncoding RecognitionConfig_AudioEncoding_AudioEncoding_MIN = RecognitionConfig_AudioEncoding_ENCODING_UNSPECIFIED; -constexpr RecognitionConfig_AudioEncoding RecognitionConfig_AudioEncoding_AudioEncoding_MAX = RecognitionConfig_AudioEncoding_MP3; -constexpr int RecognitionConfig_AudioEncoding_AudioEncoding_ARRAYSIZE = RecognitionConfig_AudioEncoding_AudioEncoding_MAX + 1; - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RecognitionConfig_AudioEncoding_descriptor(); -template -inline const std::string& RecognitionConfig_AudioEncoding_Name(T enum_t_value) { - static_assert(::std::is_same::value || - ::std::is_integral::value, - "Incorrect type passed to function RecognitionConfig_AudioEncoding_Name."); - return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( - RecognitionConfig_AudioEncoding_descriptor(), enum_t_value); -} -inline bool RecognitionConfig_AudioEncoding_Parse( - const std::string& name, RecognitionConfig_AudioEncoding* value) { - return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum( - RecognitionConfig_AudioEncoding_descriptor(), name, value); -} -enum StreamingRecognizeResponse_SpeechEventType : int { - StreamingRecognizeResponse_SpeechEventType_SPEECH_EVENT_UNSPECIFIED = 0, - StreamingRecognizeResponse_SpeechEventType_END_OF_SINGLE_UTTERANCE = 1, - StreamingRecognizeResponse_SpeechEventType_StreamingRecognizeResponse_SpeechEventType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(), - StreamingRecognizeResponse_SpeechEventType_StreamingRecognizeResponse_SpeechEventType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max() -}; -bool StreamingRecognizeResponse_SpeechEventType_IsValid(int value); -constexpr StreamingRecognizeResponse_SpeechEventType StreamingRecognizeResponse_SpeechEventType_SpeechEventType_MIN = StreamingRecognizeResponse_SpeechEventType_SPEECH_EVENT_UNSPECIFIED; -constexpr StreamingRecognizeResponse_SpeechEventType StreamingRecognizeResponse_SpeechEventType_SpeechEventType_MAX = StreamingRecognizeResponse_SpeechEventType_END_OF_SINGLE_UTTERANCE; -constexpr int StreamingRecognizeResponse_SpeechEventType_SpeechEventType_ARRAYSIZE = StreamingRecognizeResponse_SpeechEventType_SpeechEventType_MAX + 1; - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* StreamingRecognizeResponse_SpeechEventType_descriptor(); -template -inline const std::string& StreamingRecognizeResponse_SpeechEventType_Name(T enum_t_value) { - static_assert(::std::is_same::value || - ::std::is_integral::value, - "Incorrect type passed to function StreamingRecognizeResponse_SpeechEventType_Name."); - return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( - StreamingRecognizeResponse_SpeechEventType_descriptor(), enum_t_value); -} -inline bool StreamingRecognizeResponse_SpeechEventType_Parse( - const std::string& name, StreamingRecognizeResponse_SpeechEventType* value) { - return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum( - StreamingRecognizeResponse_SpeechEventType_descriptor(), name, value); -} -enum StreamingRecognitionResult_ResultFinalizationCause : int { - StreamingRecognitionResult_ResultFinalizationCause_RESULT_FINALIZATION_CAUSE_UNSPECIFIED = 0, - StreamingRecognitionResult_ResultFinalizationCause_SUCCESS = 1, - StreamingRecognitionResult_ResultFinalizationCause_NO_INPUT_TIMEOUT = 2, - StreamingRecognitionResult_ResultFinalizationCause_SUCCESS_MAXTIME = 3, - StreamingRecognitionResult_ResultFinalizationCause_PARTIAL_MATCH = 4, - StreamingRecognitionResult_ResultFinalizationCause_NO_MATCH_MAXTIME = 5, - StreamingRecognitionResult_ResultFinalizationCause_StreamingRecognitionResult_ResultFinalizationCause_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(), - StreamingRecognitionResult_ResultFinalizationCause_StreamingRecognitionResult_ResultFinalizationCause_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max() -}; -bool StreamingRecognitionResult_ResultFinalizationCause_IsValid(int value); -constexpr StreamingRecognitionResult_ResultFinalizationCause StreamingRecognitionResult_ResultFinalizationCause_ResultFinalizationCause_MIN = StreamingRecognitionResult_ResultFinalizationCause_RESULT_FINALIZATION_CAUSE_UNSPECIFIED; -constexpr StreamingRecognitionResult_ResultFinalizationCause StreamingRecognitionResult_ResultFinalizationCause_ResultFinalizationCause_MAX = StreamingRecognitionResult_ResultFinalizationCause_NO_MATCH_MAXTIME; -constexpr int StreamingRecognitionResult_ResultFinalizationCause_ResultFinalizationCause_ARRAYSIZE = StreamingRecognitionResult_ResultFinalizationCause_ResultFinalizationCause_MAX + 1; - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* StreamingRecognitionResult_ResultFinalizationCause_descriptor(); -template -inline const std::string& StreamingRecognitionResult_ResultFinalizationCause_Name(T enum_t_value) { - static_assert(::std::is_same::value || - ::std::is_integral::value, - "Incorrect type passed to function StreamingRecognitionResult_ResultFinalizationCause_Name."); - return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( - StreamingRecognitionResult_ResultFinalizationCause_descriptor(), enum_t_value); -} -inline bool StreamingRecognitionResult_ResultFinalizationCause_Parse( - const std::string& name, StreamingRecognitionResult_ResultFinalizationCause* value) { - return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum( - StreamingRecognitionResult_ResultFinalizationCause_descriptor(), name, value); -} -// =================================================================== - -class RecognizeRequest : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.cloud.speech.v1.RecognizeRequest) */ { - public: - RecognizeRequest(); - virtual ~RecognizeRequest(); - - RecognizeRequest(const RecognizeRequest& from); - RecognizeRequest(RecognizeRequest&& from) noexcept - : RecognizeRequest() { - *this = ::std::move(from); - } - - inline RecognizeRequest& operator=(const RecognizeRequest& from) { - CopyFrom(from); - return *this; - } - inline RecognizeRequest& operator=(RecognizeRequest&& from) noexcept { - if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { - if (this != &from) InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { - return GetArenaNoVirtual(); - } - inline void* GetMaybeArenaPointer() const final { - return MaybeArenaPtr(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return GetMetadataStatic().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return GetMetadataStatic().reflection; - } - static const RecognizeRequest& default_instance(); - - static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const RecognizeRequest* internal_default_instance() { - return reinterpret_cast( - &_RecognizeRequest_default_instance_); - } - static constexpr int kIndexInFileMessages = - 0; - - friend void swap(RecognizeRequest& a, RecognizeRequest& b) { - a.Swap(&b); - } - inline void Swap(RecognizeRequest* other) { - if (other == this) return; - if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(RecognizeRequest* other) { - if (other == this) return; - GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - inline RecognizeRequest* New() const final { - return CreateMaybeMessage(nullptr); - } - - RecognizeRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { - return CreateMaybeMessage(arena); - } - void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void CopyFrom(const RecognizeRequest& from); - void MergeFrom(const RecognizeRequest& from); - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - inline void SharedCtor(); - inline void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(RecognizeRequest* other); - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "google.cloud.speech.v1.RecognizeRequest"; - } - protected: - explicit RecognizeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - private: - static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_dictation_5fasr_2eproto); - return ::descriptor_table_dictation_5fasr_2eproto.file_level_metadata[kIndexInFileMessages]; - } - - public: - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kConfigFieldNumber = 1, - kAudioFieldNumber = 2, - }; - // .google.cloud.speech.v1.RecognitionConfig config = 1; - bool has_config() const; - private: - bool _internal_has_config() const; - public: - void clear_config(); - const ::google::cloud::speech::v1::RecognitionConfig& config() const; - ::google::cloud::speech::v1::RecognitionConfig* release_config(); - ::google::cloud::speech::v1::RecognitionConfig* mutable_config(); - void set_allocated_config(::google::cloud::speech::v1::RecognitionConfig* config); - private: - const ::google::cloud::speech::v1::RecognitionConfig& _internal_config() const; - ::google::cloud::speech::v1::RecognitionConfig* _internal_mutable_config(); - public: - void unsafe_arena_set_allocated_config( - ::google::cloud::speech::v1::RecognitionConfig* config); - ::google::cloud::speech::v1::RecognitionConfig* unsafe_arena_release_config(); - - // .google.cloud.speech.v1.RecognitionAudio audio = 2; - bool has_audio() const; - private: - bool _internal_has_audio() const; - public: - void clear_audio(); - const ::google::cloud::speech::v1::RecognitionAudio& audio() const; - ::google::cloud::speech::v1::RecognitionAudio* release_audio(); - ::google::cloud::speech::v1::RecognitionAudio* mutable_audio(); - void set_allocated_audio(::google::cloud::speech::v1::RecognitionAudio* audio); - private: - const ::google::cloud::speech::v1::RecognitionAudio& _internal_audio() const; - ::google::cloud::speech::v1::RecognitionAudio* _internal_mutable_audio(); - public: - void unsafe_arena_set_allocated_audio( - ::google::cloud::speech::v1::RecognitionAudio* audio); - ::google::cloud::speech::v1::RecognitionAudio* unsafe_arena_release_audio(); - - // @@protoc_insertion_point(class_scope:google.cloud.speech.v1.RecognizeRequest) - private: - class _Internal; - - ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::google::cloud::speech::v1::RecognitionConfig* config_; - ::google::cloud::speech::v1::RecognitionAudio* audio_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_dictation_5fasr_2eproto; -}; -// ------------------------------------------------------------------- - -class StreamingRecognizeRequest : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.cloud.speech.v1.StreamingRecognizeRequest) */ { - public: - StreamingRecognizeRequest(); - virtual ~StreamingRecognizeRequest(); - - StreamingRecognizeRequest(const StreamingRecognizeRequest& from); - StreamingRecognizeRequest(StreamingRecognizeRequest&& from) noexcept - : StreamingRecognizeRequest() { - *this = ::std::move(from); - } - - inline StreamingRecognizeRequest& operator=(const StreamingRecognizeRequest& from) { - CopyFrom(from); - return *this; - } - inline StreamingRecognizeRequest& operator=(StreamingRecognizeRequest&& from) noexcept { - if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { - if (this != &from) InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { - return GetArenaNoVirtual(); - } - inline void* GetMaybeArenaPointer() const final { - return MaybeArenaPtr(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return GetMetadataStatic().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return GetMetadataStatic().reflection; - } - static const StreamingRecognizeRequest& default_instance(); - - enum StreamingRequestCase { - kStreamingConfig = 1, - kAudioContent = 2, - STREAMING_REQUEST_NOT_SET = 0, - }; - - static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const StreamingRecognizeRequest* internal_default_instance() { - return reinterpret_cast( - &_StreamingRecognizeRequest_default_instance_); - } - static constexpr int kIndexInFileMessages = - 1; - - friend void swap(StreamingRecognizeRequest& a, StreamingRecognizeRequest& b) { - a.Swap(&b); - } - inline void Swap(StreamingRecognizeRequest* other) { - if (other == this) return; - if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(StreamingRecognizeRequest* other) { - if (other == this) return; - GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - inline StreamingRecognizeRequest* New() const final { - return CreateMaybeMessage(nullptr); - } - - StreamingRecognizeRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { - return CreateMaybeMessage(arena); - } - void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void CopyFrom(const StreamingRecognizeRequest& from); - void MergeFrom(const StreamingRecognizeRequest& from); - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - inline void SharedCtor(); - inline void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(StreamingRecognizeRequest* other); - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "google.cloud.speech.v1.StreamingRecognizeRequest"; - } - protected: - explicit StreamingRecognizeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - private: - static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_dictation_5fasr_2eproto); - return ::descriptor_table_dictation_5fasr_2eproto.file_level_metadata[kIndexInFileMessages]; - } - - public: - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kStreamingConfigFieldNumber = 1, - kAudioContentFieldNumber = 2, - }; - // .google.cloud.speech.v1.StreamingRecognitionConfig streaming_config = 1; - bool has_streaming_config() const; - private: - bool _internal_has_streaming_config() const; - public: - void clear_streaming_config(); - const ::google::cloud::speech::v1::StreamingRecognitionConfig& streaming_config() const; - ::google::cloud::speech::v1::StreamingRecognitionConfig* release_streaming_config(); - ::google::cloud::speech::v1::StreamingRecognitionConfig* mutable_streaming_config(); - void set_allocated_streaming_config(::google::cloud::speech::v1::StreamingRecognitionConfig* streaming_config); - private: - const ::google::cloud::speech::v1::StreamingRecognitionConfig& _internal_streaming_config() const; - ::google::cloud::speech::v1::StreamingRecognitionConfig* _internal_mutable_streaming_config(); - public: - void unsafe_arena_set_allocated_streaming_config( - ::google::cloud::speech::v1::StreamingRecognitionConfig* streaming_config); - ::google::cloud::speech::v1::StreamingRecognitionConfig* unsafe_arena_release_streaming_config(); - - // bytes audio_content = 2; - private: - bool _internal_has_audio_content() const; - public: - void clear_audio_content(); - const std::string& audio_content() const; - void set_audio_content(const std::string& value); - void set_audio_content(std::string&& value); - void set_audio_content(const char* value); - void set_audio_content(const void* value, size_t size); - std::string* mutable_audio_content(); - std::string* release_audio_content(); - void set_allocated_audio_content(std::string* audio_content); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - std::string* unsafe_arena_release_audio_content(); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - void unsafe_arena_set_allocated_audio_content( - std::string* audio_content); - private: - const std::string& _internal_audio_content() const; - void _internal_set_audio_content(const std::string& value); - std::string* _internal_mutable_audio_content(); - public: - - void clear_streaming_request(); - StreamingRequestCase streaming_request_case() const; - // @@protoc_insertion_point(class_scope:google.cloud.speech.v1.StreamingRecognizeRequest) - private: - class _Internal; - void set_has_streaming_config(); - void set_has_audio_content(); - - inline bool has_streaming_request() const; - inline void clear_has_streaming_request(); - - ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - union StreamingRequestUnion { - StreamingRequestUnion() {} - ::google::cloud::speech::v1::StreamingRecognitionConfig* streaming_config_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr audio_content_; - } streaming_request_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1]; - - friend struct ::TableStruct_dictation_5fasr_2eproto; -}; -// ------------------------------------------------------------------- - -class StreamingRecognitionConfig : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.cloud.speech.v1.StreamingRecognitionConfig) */ { - public: - StreamingRecognitionConfig(); - virtual ~StreamingRecognitionConfig(); - - StreamingRecognitionConfig(const StreamingRecognitionConfig& from); - StreamingRecognitionConfig(StreamingRecognitionConfig&& from) noexcept - : StreamingRecognitionConfig() { - *this = ::std::move(from); - } - - inline StreamingRecognitionConfig& operator=(const StreamingRecognitionConfig& from) { - CopyFrom(from); - return *this; - } - inline StreamingRecognitionConfig& operator=(StreamingRecognitionConfig&& from) noexcept { - if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { - if (this != &from) InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { - return GetArenaNoVirtual(); - } - inline void* GetMaybeArenaPointer() const final { - return MaybeArenaPtr(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return GetMetadataStatic().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return GetMetadataStatic().reflection; - } - static const StreamingRecognitionConfig& default_instance(); - - static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const StreamingRecognitionConfig* internal_default_instance() { - return reinterpret_cast( - &_StreamingRecognitionConfig_default_instance_); - } - static constexpr int kIndexInFileMessages = - 2; - - friend void swap(StreamingRecognitionConfig& a, StreamingRecognitionConfig& b) { - a.Swap(&b); - } - inline void Swap(StreamingRecognitionConfig* other) { - if (other == this) return; - if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(StreamingRecognitionConfig* other) { - if (other == this) return; - GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - inline StreamingRecognitionConfig* New() const final { - return CreateMaybeMessage(nullptr); - } - - StreamingRecognitionConfig* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { - return CreateMaybeMessage(arena); - } - void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void CopyFrom(const StreamingRecognitionConfig& from); - void MergeFrom(const StreamingRecognitionConfig& from); - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - inline void SharedCtor(); - inline void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(StreamingRecognitionConfig* other); - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "google.cloud.speech.v1.StreamingRecognitionConfig"; - } - protected: - explicit StreamingRecognitionConfig(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - private: - static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_dictation_5fasr_2eproto); - return ::descriptor_table_dictation_5fasr_2eproto.file_level_metadata[kIndexInFileMessages]; - } - - public: - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kConfigFieldNumber = 1, - kSingleUtteranceFieldNumber = 2, - kInterimResultsFieldNumber = 3, - }; - // .google.cloud.speech.v1.RecognitionConfig config = 1; - bool has_config() const; - private: - bool _internal_has_config() const; - public: - void clear_config(); - const ::google::cloud::speech::v1::RecognitionConfig& config() const; - ::google::cloud::speech::v1::RecognitionConfig* release_config(); - ::google::cloud::speech::v1::RecognitionConfig* mutable_config(); - void set_allocated_config(::google::cloud::speech::v1::RecognitionConfig* config); - private: - const ::google::cloud::speech::v1::RecognitionConfig& _internal_config() const; - ::google::cloud::speech::v1::RecognitionConfig* _internal_mutable_config(); - public: - void unsafe_arena_set_allocated_config( - ::google::cloud::speech::v1::RecognitionConfig* config); - ::google::cloud::speech::v1::RecognitionConfig* unsafe_arena_release_config(); - - // bool single_utterance = 2; - void clear_single_utterance(); - bool single_utterance() const; - void set_single_utterance(bool value); - private: - bool _internal_single_utterance() const; - void _internal_set_single_utterance(bool value); - public: - - // bool interim_results = 3; - void clear_interim_results(); - bool interim_results() const; - void set_interim_results(bool value); - private: - bool _internal_interim_results() const; - void _internal_set_interim_results(bool value); - public: - - // @@protoc_insertion_point(class_scope:google.cloud.speech.v1.StreamingRecognitionConfig) - private: - class _Internal; - - ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::google::cloud::speech::v1::RecognitionConfig* config_; - bool single_utterance_; - bool interim_results_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_dictation_5fasr_2eproto; -}; -// ------------------------------------------------------------------- - -class RecognitionConfig : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.cloud.speech.v1.RecognitionConfig) */ { - public: - RecognitionConfig(); - virtual ~RecognitionConfig(); - - RecognitionConfig(const RecognitionConfig& from); - RecognitionConfig(RecognitionConfig&& from) noexcept - : RecognitionConfig() { - *this = ::std::move(from); - } - - inline RecognitionConfig& operator=(const RecognitionConfig& from) { - CopyFrom(from); - return *this; - } - inline RecognitionConfig& operator=(RecognitionConfig&& from) noexcept { - if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { - if (this != &from) InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { - return GetArenaNoVirtual(); - } - inline void* GetMaybeArenaPointer() const final { - return MaybeArenaPtr(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return GetMetadataStatic().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return GetMetadataStatic().reflection; - } - static const RecognitionConfig& default_instance(); - - static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const RecognitionConfig* internal_default_instance() { - return reinterpret_cast( - &_RecognitionConfig_default_instance_); - } - static constexpr int kIndexInFileMessages = - 3; - - friend void swap(RecognitionConfig& a, RecognitionConfig& b) { - a.Swap(&b); - } - inline void Swap(RecognitionConfig* other) { - if (other == this) return; - if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(RecognitionConfig* other) { - if (other == this) return; - GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - inline RecognitionConfig* New() const final { - return CreateMaybeMessage(nullptr); - } - - RecognitionConfig* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { - return CreateMaybeMessage(arena); - } - void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void CopyFrom(const RecognitionConfig& from); - void MergeFrom(const RecognitionConfig& from); - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - inline void SharedCtor(); - inline void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(RecognitionConfig* other); - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "google.cloud.speech.v1.RecognitionConfig"; - } - protected: - explicit RecognitionConfig(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - private: - static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_dictation_5fasr_2eproto); - return ::descriptor_table_dictation_5fasr_2eproto.file_level_metadata[kIndexInFileMessages]; - } - - public: - - // nested types ---------------------------------------------------- - - typedef RecognitionConfig_AudioEncoding AudioEncoding; - static constexpr AudioEncoding ENCODING_UNSPECIFIED = - RecognitionConfig_AudioEncoding_ENCODING_UNSPECIFIED; - static constexpr AudioEncoding LINEAR16 = - RecognitionConfig_AudioEncoding_LINEAR16; - static constexpr AudioEncoding FLAC = - RecognitionConfig_AudioEncoding_FLAC; - static constexpr AudioEncoding MULAW = - RecognitionConfig_AudioEncoding_MULAW; - static constexpr AudioEncoding AMR = - RecognitionConfig_AudioEncoding_AMR; - static constexpr AudioEncoding AMR_WB = - RecognitionConfig_AudioEncoding_AMR_WB; - static constexpr AudioEncoding OGG_OPUS = - RecognitionConfig_AudioEncoding_OGG_OPUS; - static constexpr AudioEncoding SPEEX_WITH_HEADER_BYTE = - RecognitionConfig_AudioEncoding_SPEEX_WITH_HEADER_BYTE; - static constexpr AudioEncoding MP3 = - RecognitionConfig_AudioEncoding_MP3; - static inline bool AudioEncoding_IsValid(int value) { - return RecognitionConfig_AudioEncoding_IsValid(value); - } - static constexpr AudioEncoding AudioEncoding_MIN = - RecognitionConfig_AudioEncoding_AudioEncoding_MIN; - static constexpr AudioEncoding AudioEncoding_MAX = - RecognitionConfig_AudioEncoding_AudioEncoding_MAX; - static constexpr int AudioEncoding_ARRAYSIZE = - RecognitionConfig_AudioEncoding_AudioEncoding_ARRAYSIZE; - static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* - AudioEncoding_descriptor() { - return RecognitionConfig_AudioEncoding_descriptor(); - } - template - static inline const std::string& AudioEncoding_Name(T enum_t_value) { - static_assert(::std::is_same::value || - ::std::is_integral::value, - "Incorrect type passed to function AudioEncoding_Name."); - return RecognitionConfig_AudioEncoding_Name(enum_t_value); - } - static inline bool AudioEncoding_Parse(const std::string& name, - AudioEncoding* value) { - return RecognitionConfig_AudioEncoding_Parse(name, value); - } - - // accessors ------------------------------------------------------- - - enum : int { - kSpeechContextsFieldNumber = 6, - kConfigFieldsFieldNumber = 12, - kLanguageCodeFieldNumber = 3, - kModelFieldNumber = 13, - kEncodingFieldNumber = 1, - kSampleRateHertzFieldNumber = 2, - kMaxAlternativesFieldNumber = 4, - kProfanityFilterFieldNumber = 5, - kEnableWordTimeOffsetsFieldNumber = 8, - kEnableAutomaticPunctuationFieldNumber = 11, - kUseEnhancedFieldNumber = 14, - }; - // repeated .google.cloud.speech.v1.SpeechContext speech_contexts = 6; - int speech_contexts_size() const; - private: - int _internal_speech_contexts_size() const; - public: - void clear_speech_contexts(); - ::google::cloud::speech::v1::SpeechContext* mutable_speech_contexts(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechContext >* - mutable_speech_contexts(); - private: - const ::google::cloud::speech::v1::SpeechContext& _internal_speech_contexts(int index) const; - ::google::cloud::speech::v1::SpeechContext* _internal_add_speech_contexts(); - public: - const ::google::cloud::speech::v1::SpeechContext& speech_contexts(int index) const; - ::google::cloud::speech::v1::SpeechContext* add_speech_contexts(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechContext >& - speech_contexts() const; - - // repeated .google.cloud.speech.v1.ConfigField config_fields = 12; - int config_fields_size() const; - private: - int _internal_config_fields_size() const; - public: - void clear_config_fields(); - ::google::cloud::speech::v1::ConfigField* mutable_config_fields(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::ConfigField >* - mutable_config_fields(); - private: - const ::google::cloud::speech::v1::ConfigField& _internal_config_fields(int index) const; - ::google::cloud::speech::v1::ConfigField* _internal_add_config_fields(); - public: - const ::google::cloud::speech::v1::ConfigField& config_fields(int index) const; - ::google::cloud::speech::v1::ConfigField* add_config_fields(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::ConfigField >& - config_fields() const; - - // string language_code = 3; - void clear_language_code(); - const std::string& language_code() const; - void set_language_code(const std::string& value); - void set_language_code(std::string&& value); - void set_language_code(const char* value); - void set_language_code(const char* value, size_t size); - std::string* mutable_language_code(); - std::string* release_language_code(); - void set_allocated_language_code(std::string* language_code); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - std::string* unsafe_arena_release_language_code(); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - void unsafe_arena_set_allocated_language_code( - std::string* language_code); - private: - const std::string& _internal_language_code() const; - void _internal_set_language_code(const std::string& value); - std::string* _internal_mutable_language_code(); - public: - - // string model = 13; - void clear_model(); - const std::string& model() const; - void set_model(const std::string& value); - void set_model(std::string&& value); - void set_model(const char* value); - void set_model(const char* value, size_t size); - std::string* mutable_model(); - std::string* release_model(); - void set_allocated_model(std::string* model); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - std::string* unsafe_arena_release_model(); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - void unsafe_arena_set_allocated_model( - std::string* model); - private: - const std::string& _internal_model() const; - void _internal_set_model(const std::string& value); - std::string* _internal_mutable_model(); - public: - - // .google.cloud.speech.v1.RecognitionConfig.AudioEncoding encoding = 1; - void clear_encoding(); - ::google::cloud::speech::v1::RecognitionConfig_AudioEncoding encoding() const; - void set_encoding(::google::cloud::speech::v1::RecognitionConfig_AudioEncoding value); - private: - ::google::cloud::speech::v1::RecognitionConfig_AudioEncoding _internal_encoding() const; - void _internal_set_encoding(::google::cloud::speech::v1::RecognitionConfig_AudioEncoding value); - public: - - // int32 sample_rate_hertz = 2; - void clear_sample_rate_hertz(); - ::PROTOBUF_NAMESPACE_ID::int32 sample_rate_hertz() const; - void set_sample_rate_hertz(::PROTOBUF_NAMESPACE_ID::int32 value); - private: - ::PROTOBUF_NAMESPACE_ID::int32 _internal_sample_rate_hertz() const; - void _internal_set_sample_rate_hertz(::PROTOBUF_NAMESPACE_ID::int32 value); - public: - - // int32 max_alternatives = 4; - void clear_max_alternatives(); - ::PROTOBUF_NAMESPACE_ID::int32 max_alternatives() const; - void set_max_alternatives(::PROTOBUF_NAMESPACE_ID::int32 value); - private: - ::PROTOBUF_NAMESPACE_ID::int32 _internal_max_alternatives() const; - void _internal_set_max_alternatives(::PROTOBUF_NAMESPACE_ID::int32 value); - public: - - // bool profanity_filter = 5; - void clear_profanity_filter(); - bool profanity_filter() const; - void set_profanity_filter(bool value); - private: - bool _internal_profanity_filter() const; - void _internal_set_profanity_filter(bool value); - public: - - // bool enable_word_time_offsets = 8; - void clear_enable_word_time_offsets(); - bool enable_word_time_offsets() const; - void set_enable_word_time_offsets(bool value); - private: - bool _internal_enable_word_time_offsets() const; - void _internal_set_enable_word_time_offsets(bool value); - public: - - // bool enable_automatic_punctuation = 11; - void clear_enable_automatic_punctuation(); - bool enable_automatic_punctuation() const; - void set_enable_automatic_punctuation(bool value); - private: - bool _internal_enable_automatic_punctuation() const; - void _internal_set_enable_automatic_punctuation(bool value); - public: - - // bool use_enhanced = 14; - void clear_use_enhanced(); - bool use_enhanced() const; - void set_use_enhanced(bool value); - private: - bool _internal_use_enhanced() const; - void _internal_set_use_enhanced(bool value); - public: - - // @@protoc_insertion_point(class_scope:google.cloud.speech.v1.RecognitionConfig) - private: - class _Internal; - - ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechContext > speech_contexts_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::ConfigField > config_fields_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr language_code_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr model_; - int encoding_; - ::PROTOBUF_NAMESPACE_ID::int32 sample_rate_hertz_; - ::PROTOBUF_NAMESPACE_ID::int32 max_alternatives_; - bool profanity_filter_; - bool enable_word_time_offsets_; - bool enable_automatic_punctuation_; - bool use_enhanced_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_dictation_5fasr_2eproto; -}; -// ------------------------------------------------------------------- - -class SpeechContext : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.cloud.speech.v1.SpeechContext) */ { - public: - SpeechContext(); - virtual ~SpeechContext(); - - SpeechContext(const SpeechContext& from); - SpeechContext(SpeechContext&& from) noexcept - : SpeechContext() { - *this = ::std::move(from); - } - - inline SpeechContext& operator=(const SpeechContext& from) { - CopyFrom(from); - return *this; - } - inline SpeechContext& operator=(SpeechContext&& from) noexcept { - if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { - if (this != &from) InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { - return GetArenaNoVirtual(); - } - inline void* GetMaybeArenaPointer() const final { - return MaybeArenaPtr(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return GetMetadataStatic().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return GetMetadataStatic().reflection; - } - static const SpeechContext& default_instance(); - - static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const SpeechContext* internal_default_instance() { - return reinterpret_cast( - &_SpeechContext_default_instance_); - } - static constexpr int kIndexInFileMessages = - 4; - - friend void swap(SpeechContext& a, SpeechContext& b) { - a.Swap(&b); - } - inline void Swap(SpeechContext* other) { - if (other == this) return; - if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(SpeechContext* other) { - if (other == this) return; - GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - inline SpeechContext* New() const final { - return CreateMaybeMessage(nullptr); - } - - SpeechContext* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { - return CreateMaybeMessage(arena); - } - void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void CopyFrom(const SpeechContext& from); - void MergeFrom(const SpeechContext& from); - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - inline void SharedCtor(); - inline void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(SpeechContext* other); - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "google.cloud.speech.v1.SpeechContext"; - } - protected: - explicit SpeechContext(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - private: - static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_dictation_5fasr_2eproto); - return ::descriptor_table_dictation_5fasr_2eproto.file_level_metadata[kIndexInFileMessages]; - } - - public: - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kPhrasesFieldNumber = 1, - }; - // repeated string phrases = 1; - int phrases_size() const; - private: - int _internal_phrases_size() const; - public: - void clear_phrases(); - const std::string& phrases(int index) const; - std::string* mutable_phrases(int index); - void set_phrases(int index, const std::string& value); - void set_phrases(int index, std::string&& value); - void set_phrases(int index, const char* value); - void set_phrases(int index, const char* value, size_t size); - std::string* add_phrases(); - void add_phrases(const std::string& value); - void add_phrases(std::string&& value); - void add_phrases(const char* value); - void add_phrases(const char* value, size_t size); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& phrases() const; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* mutable_phrases(); - private: - const std::string& _internal_phrases(int index) const; - std::string* _internal_add_phrases(); - public: - - // @@protoc_insertion_point(class_scope:google.cloud.speech.v1.SpeechContext) - private: - class _Internal; - - ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField phrases_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_dictation_5fasr_2eproto; -}; -// ------------------------------------------------------------------- - -class ConfigField : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.cloud.speech.v1.ConfigField) */ { - public: - ConfigField(); - virtual ~ConfigField(); - - ConfigField(const ConfigField& from); - ConfigField(ConfigField&& from) noexcept - : ConfigField() { - *this = ::std::move(from); - } - - inline ConfigField& operator=(const ConfigField& from) { - CopyFrom(from); - return *this; - } - inline ConfigField& operator=(ConfigField&& from) noexcept { - if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { - if (this != &from) InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { - return GetArenaNoVirtual(); - } - inline void* GetMaybeArenaPointer() const final { - return MaybeArenaPtr(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return GetMetadataStatic().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return GetMetadataStatic().reflection; - } - static const ConfigField& default_instance(); - - static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const ConfigField* internal_default_instance() { - return reinterpret_cast( - &_ConfigField_default_instance_); - } - static constexpr int kIndexInFileMessages = - 5; - - friend void swap(ConfigField& a, ConfigField& b) { - a.Swap(&b); - } - inline void Swap(ConfigField* other) { - if (other == this) return; - if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(ConfigField* other) { - if (other == this) return; - GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - inline ConfigField* New() const final { - return CreateMaybeMessage(nullptr); - } - - ConfigField* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { - return CreateMaybeMessage(arena); - } - void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void CopyFrom(const ConfigField& from); - void MergeFrom(const ConfigField& from); - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - inline void SharedCtor(); - inline void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(ConfigField* other); - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "google.cloud.speech.v1.ConfigField"; - } - protected: - explicit ConfigField(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - private: - static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_dictation_5fasr_2eproto); - return ::descriptor_table_dictation_5fasr_2eproto.file_level_metadata[kIndexInFileMessages]; - } - - public: - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kKeyFieldNumber = 1, - kValueFieldNumber = 2, - }; - // string key = 1; - void clear_key(); - const std::string& key() const; - void set_key(const std::string& value); - void set_key(std::string&& value); - void set_key(const char* value); - void set_key(const char* value, size_t size); - std::string* mutable_key(); - std::string* release_key(); - void set_allocated_key(std::string* key); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - std::string* unsafe_arena_release_key(); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - void unsafe_arena_set_allocated_key( - std::string* key); - private: - const std::string& _internal_key() const; - void _internal_set_key(const std::string& value); - std::string* _internal_mutable_key(); - public: - - // string value = 2; - void clear_value(); - const std::string& value() const; - void set_value(const std::string& value); - void set_value(std::string&& value); - void set_value(const char* value); - void set_value(const char* value, size_t size); - std::string* mutable_value(); - std::string* release_value(); - void set_allocated_value(std::string* value); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - std::string* unsafe_arena_release_value(); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - void unsafe_arena_set_allocated_value( - std::string* value); - private: - const std::string& _internal_value() const; - void _internal_set_value(const std::string& value); - std::string* _internal_mutable_value(); - public: - - // @@protoc_insertion_point(class_scope:google.cloud.speech.v1.ConfigField) - private: - class _Internal; - - ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr key_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr value_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_dictation_5fasr_2eproto; -}; -// ------------------------------------------------------------------- - -class RecognitionAudio : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.cloud.speech.v1.RecognitionAudio) */ { - public: - RecognitionAudio(); - virtual ~RecognitionAudio(); - - RecognitionAudio(const RecognitionAudio& from); - RecognitionAudio(RecognitionAudio&& from) noexcept - : RecognitionAudio() { - *this = ::std::move(from); - } - - inline RecognitionAudio& operator=(const RecognitionAudio& from) { - CopyFrom(from); - return *this; - } - inline RecognitionAudio& operator=(RecognitionAudio&& from) noexcept { - if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { - if (this != &from) InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { - return GetArenaNoVirtual(); - } - inline void* GetMaybeArenaPointer() const final { - return MaybeArenaPtr(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return GetMetadataStatic().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return GetMetadataStatic().reflection; - } - static const RecognitionAudio& default_instance(); - - enum AudioSourceCase { - kContent = 1, - kUri = 2, - AUDIO_SOURCE_NOT_SET = 0, - }; - - static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const RecognitionAudio* internal_default_instance() { - return reinterpret_cast( - &_RecognitionAudio_default_instance_); - } - static constexpr int kIndexInFileMessages = - 6; - - friend void swap(RecognitionAudio& a, RecognitionAudio& b) { - a.Swap(&b); - } - inline void Swap(RecognitionAudio* other) { - if (other == this) return; - if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(RecognitionAudio* other) { - if (other == this) return; - GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - inline RecognitionAudio* New() const final { - return CreateMaybeMessage(nullptr); - } - - RecognitionAudio* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { - return CreateMaybeMessage(arena); - } - void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void CopyFrom(const RecognitionAudio& from); - void MergeFrom(const RecognitionAudio& from); - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - inline void SharedCtor(); - inline void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(RecognitionAudio* other); - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "google.cloud.speech.v1.RecognitionAudio"; - } - protected: - explicit RecognitionAudio(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - private: - static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_dictation_5fasr_2eproto); - return ::descriptor_table_dictation_5fasr_2eproto.file_level_metadata[kIndexInFileMessages]; - } - - public: - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kContentFieldNumber = 1, - kUriFieldNumber = 2, - }; - // bytes content = 1; - private: - bool _internal_has_content() const; - public: - void clear_content(); - const std::string& content() const; - void set_content(const std::string& value); - void set_content(std::string&& value); - void set_content(const char* value); - void set_content(const void* value, size_t size); - std::string* mutable_content(); - std::string* release_content(); - void set_allocated_content(std::string* content); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - std::string* unsafe_arena_release_content(); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - void unsafe_arena_set_allocated_content( - std::string* content); - private: - const std::string& _internal_content() const; - void _internal_set_content(const std::string& value); - std::string* _internal_mutable_content(); - public: - - // string uri = 2; - private: - bool _internal_has_uri() const; - public: - void clear_uri(); - const std::string& uri() const; - void set_uri(const std::string& value); - void set_uri(std::string&& value); - void set_uri(const char* value); - void set_uri(const char* value, size_t size); - std::string* mutable_uri(); - std::string* release_uri(); - void set_allocated_uri(std::string* uri); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - std::string* unsafe_arena_release_uri(); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - void unsafe_arena_set_allocated_uri( - std::string* uri); - private: - const std::string& _internal_uri() const; - void _internal_set_uri(const std::string& value); - std::string* _internal_mutable_uri(); - public: - - void clear_audio_source(); - AudioSourceCase audio_source_case() const; - // @@protoc_insertion_point(class_scope:google.cloud.speech.v1.RecognitionAudio) - private: - class _Internal; - void set_has_content(); - void set_has_uri(); - - inline bool has_audio_source() const; - inline void clear_has_audio_source(); - - ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - union AudioSourceUnion { - AudioSourceUnion() {} - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr content_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr uri_; - } audio_source_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1]; - - friend struct ::TableStruct_dictation_5fasr_2eproto; -}; -// ------------------------------------------------------------------- - -class RecognizeResponse : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.cloud.speech.v1.RecognizeResponse) */ { - public: - RecognizeResponse(); - virtual ~RecognizeResponse(); - - RecognizeResponse(const RecognizeResponse& from); - RecognizeResponse(RecognizeResponse&& from) noexcept - : RecognizeResponse() { - *this = ::std::move(from); - } - - inline RecognizeResponse& operator=(const RecognizeResponse& from) { - CopyFrom(from); - return *this; - } - inline RecognizeResponse& operator=(RecognizeResponse&& from) noexcept { - if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { - if (this != &from) InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { - return GetArenaNoVirtual(); - } - inline void* GetMaybeArenaPointer() const final { - return MaybeArenaPtr(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return GetMetadataStatic().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return GetMetadataStatic().reflection; - } - static const RecognizeResponse& default_instance(); - - static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const RecognizeResponse* internal_default_instance() { - return reinterpret_cast( - &_RecognizeResponse_default_instance_); - } - static constexpr int kIndexInFileMessages = - 7; - - friend void swap(RecognizeResponse& a, RecognizeResponse& b) { - a.Swap(&b); - } - inline void Swap(RecognizeResponse* other) { - if (other == this) return; - if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(RecognizeResponse* other) { - if (other == this) return; - GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - inline RecognizeResponse* New() const final { - return CreateMaybeMessage(nullptr); - } - - RecognizeResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { - return CreateMaybeMessage(arena); - } - void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void CopyFrom(const RecognizeResponse& from); - void MergeFrom(const RecognizeResponse& from); - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - inline void SharedCtor(); - inline void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(RecognizeResponse* other); - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "google.cloud.speech.v1.RecognizeResponse"; - } - protected: - explicit RecognizeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - private: - static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_dictation_5fasr_2eproto); - return ::descriptor_table_dictation_5fasr_2eproto.file_level_metadata[kIndexInFileMessages]; - } - - public: - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kResultsFieldNumber = 2, - }; - // repeated .google.cloud.speech.v1.SpeechRecognitionResult results = 2; - int results_size() const; - private: - int _internal_results_size() const; - public: - void clear_results(); - ::google::cloud::speech::v1::SpeechRecognitionResult* mutable_results(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechRecognitionResult >* - mutable_results(); - private: - const ::google::cloud::speech::v1::SpeechRecognitionResult& _internal_results(int index) const; - ::google::cloud::speech::v1::SpeechRecognitionResult* _internal_add_results(); - public: - const ::google::cloud::speech::v1::SpeechRecognitionResult& results(int index) const; - ::google::cloud::speech::v1::SpeechRecognitionResult* add_results(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechRecognitionResult >& - results() const; - - // @@protoc_insertion_point(class_scope:google.cloud.speech.v1.RecognizeResponse) - private: - class _Internal; - - ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechRecognitionResult > results_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_dictation_5fasr_2eproto; -}; -// ------------------------------------------------------------------- - -class StreamingRecognizeResponse : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.cloud.speech.v1.StreamingRecognizeResponse) */ { - public: - StreamingRecognizeResponse(); - virtual ~StreamingRecognizeResponse(); - - StreamingRecognizeResponse(const StreamingRecognizeResponse& from); - StreamingRecognizeResponse(StreamingRecognizeResponse&& from) noexcept - : StreamingRecognizeResponse() { - *this = ::std::move(from); - } - - inline StreamingRecognizeResponse& operator=(const StreamingRecognizeResponse& from) { - CopyFrom(from); - return *this; - } - inline StreamingRecognizeResponse& operator=(StreamingRecognizeResponse&& from) noexcept { - if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { - if (this != &from) InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { - return GetArenaNoVirtual(); - } - inline void* GetMaybeArenaPointer() const final { - return MaybeArenaPtr(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return GetMetadataStatic().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return GetMetadataStatic().reflection; - } - static const StreamingRecognizeResponse& default_instance(); - - static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const StreamingRecognizeResponse* internal_default_instance() { - return reinterpret_cast( - &_StreamingRecognizeResponse_default_instance_); - } - static constexpr int kIndexInFileMessages = - 8; - - friend void swap(StreamingRecognizeResponse& a, StreamingRecognizeResponse& b) { - a.Swap(&b); - } - inline void Swap(StreamingRecognizeResponse* other) { - if (other == this) return; - if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(StreamingRecognizeResponse* other) { - if (other == this) return; - GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - inline StreamingRecognizeResponse* New() const final { - return CreateMaybeMessage(nullptr); - } - - StreamingRecognizeResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { - return CreateMaybeMessage(arena); - } - void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void CopyFrom(const StreamingRecognizeResponse& from); - void MergeFrom(const StreamingRecognizeResponse& from); - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - inline void SharedCtor(); - inline void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(StreamingRecognizeResponse* other); - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "google.cloud.speech.v1.StreamingRecognizeResponse"; - } - protected: - explicit StreamingRecognizeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - private: - static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_dictation_5fasr_2eproto); - return ::descriptor_table_dictation_5fasr_2eproto.file_level_metadata[kIndexInFileMessages]; - } - - public: - - // nested types ---------------------------------------------------- - - typedef StreamingRecognizeResponse_SpeechEventType SpeechEventType; - static constexpr SpeechEventType SPEECH_EVENT_UNSPECIFIED = - StreamingRecognizeResponse_SpeechEventType_SPEECH_EVENT_UNSPECIFIED; - static constexpr SpeechEventType END_OF_SINGLE_UTTERANCE = - StreamingRecognizeResponse_SpeechEventType_END_OF_SINGLE_UTTERANCE; - static inline bool SpeechEventType_IsValid(int value) { - return StreamingRecognizeResponse_SpeechEventType_IsValid(value); - } - static constexpr SpeechEventType SpeechEventType_MIN = - StreamingRecognizeResponse_SpeechEventType_SpeechEventType_MIN; - static constexpr SpeechEventType SpeechEventType_MAX = - StreamingRecognizeResponse_SpeechEventType_SpeechEventType_MAX; - static constexpr int SpeechEventType_ARRAYSIZE = - StreamingRecognizeResponse_SpeechEventType_SpeechEventType_ARRAYSIZE; - static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* - SpeechEventType_descriptor() { - return StreamingRecognizeResponse_SpeechEventType_descriptor(); - } - template - static inline const std::string& SpeechEventType_Name(T enum_t_value) { - static_assert(::std::is_same::value || - ::std::is_integral::value, - "Incorrect type passed to function SpeechEventType_Name."); - return StreamingRecognizeResponse_SpeechEventType_Name(enum_t_value); - } - static inline bool SpeechEventType_Parse(const std::string& name, - SpeechEventType* value) { - return StreamingRecognizeResponse_SpeechEventType_Parse(name, value); - } - - // accessors ------------------------------------------------------- - - enum : int { - kResultsFieldNumber = 2, - kErrorFieldNumber = 1, - kSpeechEventTypeFieldNumber = 4, - }; - // repeated .google.cloud.speech.v1.StreamingRecognitionResult results = 2; - int results_size() const; - private: - int _internal_results_size() const; - public: - void clear_results(); - ::google::cloud::speech::v1::StreamingRecognitionResult* mutable_results(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::StreamingRecognitionResult >* - mutable_results(); - private: - const ::google::cloud::speech::v1::StreamingRecognitionResult& _internal_results(int index) const; - ::google::cloud::speech::v1::StreamingRecognitionResult* _internal_add_results(); - public: - const ::google::cloud::speech::v1::StreamingRecognitionResult& results(int index) const; - ::google::cloud::speech::v1::StreamingRecognitionResult* add_results(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::StreamingRecognitionResult >& - results() const; - - // .google.rpc.Status error = 1; - bool has_error() const; - private: - bool _internal_has_error() const; - public: - void clear_error(); - const ::google::rpc::Status& error() const; - ::google::rpc::Status* release_error(); - ::google::rpc::Status* mutable_error(); - void set_allocated_error(::google::rpc::Status* error); - private: - const ::google::rpc::Status& _internal_error() const; - ::google::rpc::Status* _internal_mutable_error(); - public: - void unsafe_arena_set_allocated_error( - ::google::rpc::Status* error); - ::google::rpc::Status* unsafe_arena_release_error(); - - // .google.cloud.speech.v1.StreamingRecognizeResponse.SpeechEventType speech_event_type = 4; - void clear_speech_event_type(); - ::google::cloud::speech::v1::StreamingRecognizeResponse_SpeechEventType speech_event_type() const; - void set_speech_event_type(::google::cloud::speech::v1::StreamingRecognizeResponse_SpeechEventType value); - private: - ::google::cloud::speech::v1::StreamingRecognizeResponse_SpeechEventType _internal_speech_event_type() const; - void _internal_set_speech_event_type(::google::cloud::speech::v1::StreamingRecognizeResponse_SpeechEventType value); - public: - - // @@protoc_insertion_point(class_scope:google.cloud.speech.v1.StreamingRecognizeResponse) - private: - class _Internal; - - ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::StreamingRecognitionResult > results_; - ::google::rpc::Status* error_; - int speech_event_type_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_dictation_5fasr_2eproto; -}; -// ------------------------------------------------------------------- - -class StreamingRecognitionResult : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.cloud.speech.v1.StreamingRecognitionResult) */ { - public: - StreamingRecognitionResult(); - virtual ~StreamingRecognitionResult(); - - StreamingRecognitionResult(const StreamingRecognitionResult& from); - StreamingRecognitionResult(StreamingRecognitionResult&& from) noexcept - : StreamingRecognitionResult() { - *this = ::std::move(from); - } - - inline StreamingRecognitionResult& operator=(const StreamingRecognitionResult& from) { - CopyFrom(from); - return *this; - } - inline StreamingRecognitionResult& operator=(StreamingRecognitionResult&& from) noexcept { - if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { - if (this != &from) InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { - return GetArenaNoVirtual(); - } - inline void* GetMaybeArenaPointer() const final { - return MaybeArenaPtr(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return GetMetadataStatic().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return GetMetadataStatic().reflection; - } - static const StreamingRecognitionResult& default_instance(); - - static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const StreamingRecognitionResult* internal_default_instance() { - return reinterpret_cast( - &_StreamingRecognitionResult_default_instance_); - } - static constexpr int kIndexInFileMessages = - 9; - - friend void swap(StreamingRecognitionResult& a, StreamingRecognitionResult& b) { - a.Swap(&b); - } - inline void Swap(StreamingRecognitionResult* other) { - if (other == this) return; - if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(StreamingRecognitionResult* other) { - if (other == this) return; - GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - inline StreamingRecognitionResult* New() const final { - return CreateMaybeMessage(nullptr); - } - - StreamingRecognitionResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { - return CreateMaybeMessage(arena); - } - void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void CopyFrom(const StreamingRecognitionResult& from); - void MergeFrom(const StreamingRecognitionResult& from); - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - inline void SharedCtor(); - inline void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(StreamingRecognitionResult* other); - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "google.cloud.speech.v1.StreamingRecognitionResult"; - } - protected: - explicit StreamingRecognitionResult(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - private: - static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_dictation_5fasr_2eproto); - return ::descriptor_table_dictation_5fasr_2eproto.file_level_metadata[kIndexInFileMessages]; - } - - public: - - // nested types ---------------------------------------------------- - - typedef StreamingRecognitionResult_ResultFinalizationCause ResultFinalizationCause; - static constexpr ResultFinalizationCause RESULT_FINALIZATION_CAUSE_UNSPECIFIED = - StreamingRecognitionResult_ResultFinalizationCause_RESULT_FINALIZATION_CAUSE_UNSPECIFIED; - static constexpr ResultFinalizationCause SUCCESS = - StreamingRecognitionResult_ResultFinalizationCause_SUCCESS; - static constexpr ResultFinalizationCause NO_INPUT_TIMEOUT = - StreamingRecognitionResult_ResultFinalizationCause_NO_INPUT_TIMEOUT; - static constexpr ResultFinalizationCause SUCCESS_MAXTIME = - StreamingRecognitionResult_ResultFinalizationCause_SUCCESS_MAXTIME; - static constexpr ResultFinalizationCause PARTIAL_MATCH = - StreamingRecognitionResult_ResultFinalizationCause_PARTIAL_MATCH; - static constexpr ResultFinalizationCause NO_MATCH_MAXTIME = - StreamingRecognitionResult_ResultFinalizationCause_NO_MATCH_MAXTIME; - static inline bool ResultFinalizationCause_IsValid(int value) { - return StreamingRecognitionResult_ResultFinalizationCause_IsValid(value); - } - static constexpr ResultFinalizationCause ResultFinalizationCause_MIN = - StreamingRecognitionResult_ResultFinalizationCause_ResultFinalizationCause_MIN; - static constexpr ResultFinalizationCause ResultFinalizationCause_MAX = - StreamingRecognitionResult_ResultFinalizationCause_ResultFinalizationCause_MAX; - static constexpr int ResultFinalizationCause_ARRAYSIZE = - StreamingRecognitionResult_ResultFinalizationCause_ResultFinalizationCause_ARRAYSIZE; - static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* - ResultFinalizationCause_descriptor() { - return StreamingRecognitionResult_ResultFinalizationCause_descriptor(); - } - template - static inline const std::string& ResultFinalizationCause_Name(T enum_t_value) { - static_assert(::std::is_same::value || - ::std::is_integral::value, - "Incorrect type passed to function ResultFinalizationCause_Name."); - return StreamingRecognitionResult_ResultFinalizationCause_Name(enum_t_value); - } - static inline bool ResultFinalizationCause_Parse(const std::string& name, - ResultFinalizationCause* value) { - return StreamingRecognitionResult_ResultFinalizationCause_Parse(name, value); - } - - // accessors ------------------------------------------------------- - - enum : int { - kAlternativesFieldNumber = 1, - kLatticeFieldNumber = 5, - kIsFinalFieldNumber = 2, - kStabilityFieldNumber = 3, - kResultFinalizationCauseFieldNumber = 4, - }; - // repeated .google.cloud.speech.v1.SpeechRecognitionAlternative alternatives = 1; - int alternatives_size() const; - private: - int _internal_alternatives_size() const; - public: - void clear_alternatives(); - ::google::cloud::speech::v1::SpeechRecognitionAlternative* mutable_alternatives(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechRecognitionAlternative >* - mutable_alternatives(); - private: - const ::google::cloud::speech::v1::SpeechRecognitionAlternative& _internal_alternatives(int index) const; - ::google::cloud::speech::v1::SpeechRecognitionAlternative* _internal_add_alternatives(); - public: - const ::google::cloud::speech::v1::SpeechRecognitionAlternative& alternatives(int index) const; - ::google::cloud::speech::v1::SpeechRecognitionAlternative* add_alternatives(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechRecognitionAlternative >& - alternatives() const; - - // repeated .google.cloud.speech.v1.RecognitionLattice lattice = 5; - int lattice_size() const; - private: - int _internal_lattice_size() const; - public: - void clear_lattice(); - ::google::cloud::speech::v1::RecognitionLattice* mutable_lattice(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::RecognitionLattice >* - mutable_lattice(); - private: - const ::google::cloud::speech::v1::RecognitionLattice& _internal_lattice(int index) const; - ::google::cloud::speech::v1::RecognitionLattice* _internal_add_lattice(); - public: - const ::google::cloud::speech::v1::RecognitionLattice& lattice(int index) const; - ::google::cloud::speech::v1::RecognitionLattice* add_lattice(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::RecognitionLattice >& - lattice() const; - - // bool is_final = 2; - void clear_is_final(); - bool is_final() const; - void set_is_final(bool value); - private: - bool _internal_is_final() const; - void _internal_set_is_final(bool value); - public: - - // float stability = 3; - void clear_stability(); - float stability() const; - void set_stability(float value); - private: - float _internal_stability() const; - void _internal_set_stability(float value); - public: - - // .google.cloud.speech.v1.StreamingRecognitionResult.ResultFinalizationCause result_finalization_cause = 4; - void clear_result_finalization_cause(); - ::google::cloud::speech::v1::StreamingRecognitionResult_ResultFinalizationCause result_finalization_cause() const; - void set_result_finalization_cause(::google::cloud::speech::v1::StreamingRecognitionResult_ResultFinalizationCause value); - private: - ::google::cloud::speech::v1::StreamingRecognitionResult_ResultFinalizationCause _internal_result_finalization_cause() const; - void _internal_set_result_finalization_cause(::google::cloud::speech::v1::StreamingRecognitionResult_ResultFinalizationCause value); - public: - - // @@protoc_insertion_point(class_scope:google.cloud.speech.v1.StreamingRecognitionResult) - private: - class _Internal; - - ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechRecognitionAlternative > alternatives_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::RecognitionLattice > lattice_; - bool is_final_; - float stability_; - int result_finalization_cause_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_dictation_5fasr_2eproto; -}; -// ------------------------------------------------------------------- - -class SpeechRecognitionResult : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.cloud.speech.v1.SpeechRecognitionResult) */ { - public: - SpeechRecognitionResult(); - virtual ~SpeechRecognitionResult(); - - SpeechRecognitionResult(const SpeechRecognitionResult& from); - SpeechRecognitionResult(SpeechRecognitionResult&& from) noexcept - : SpeechRecognitionResult() { - *this = ::std::move(from); - } - - inline SpeechRecognitionResult& operator=(const SpeechRecognitionResult& from) { - CopyFrom(from); - return *this; - } - inline SpeechRecognitionResult& operator=(SpeechRecognitionResult&& from) noexcept { - if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { - if (this != &from) InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { - return GetArenaNoVirtual(); - } - inline void* GetMaybeArenaPointer() const final { - return MaybeArenaPtr(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return GetMetadataStatic().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return GetMetadataStatic().reflection; - } - static const SpeechRecognitionResult& default_instance(); - - static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const SpeechRecognitionResult* internal_default_instance() { - return reinterpret_cast( - &_SpeechRecognitionResult_default_instance_); - } - static constexpr int kIndexInFileMessages = - 10; - - friend void swap(SpeechRecognitionResult& a, SpeechRecognitionResult& b) { - a.Swap(&b); - } - inline void Swap(SpeechRecognitionResult* other) { - if (other == this) return; - if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(SpeechRecognitionResult* other) { - if (other == this) return; - GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - inline SpeechRecognitionResult* New() const final { - return CreateMaybeMessage(nullptr); - } - - SpeechRecognitionResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { - return CreateMaybeMessage(arena); - } - void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void CopyFrom(const SpeechRecognitionResult& from); - void MergeFrom(const SpeechRecognitionResult& from); - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - inline void SharedCtor(); - inline void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(SpeechRecognitionResult* other); - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "google.cloud.speech.v1.SpeechRecognitionResult"; - } - protected: - explicit SpeechRecognitionResult(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - private: - static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_dictation_5fasr_2eproto); - return ::descriptor_table_dictation_5fasr_2eproto.file_level_metadata[kIndexInFileMessages]; - } - - public: - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kAlternativesFieldNumber = 1, - kLatticeFieldNumber = 5, - }; - // repeated .google.cloud.speech.v1.SpeechRecognitionAlternative alternatives = 1; - int alternatives_size() const; - private: - int _internal_alternatives_size() const; - public: - void clear_alternatives(); - ::google::cloud::speech::v1::SpeechRecognitionAlternative* mutable_alternatives(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechRecognitionAlternative >* - mutable_alternatives(); - private: - const ::google::cloud::speech::v1::SpeechRecognitionAlternative& _internal_alternatives(int index) const; - ::google::cloud::speech::v1::SpeechRecognitionAlternative* _internal_add_alternatives(); - public: - const ::google::cloud::speech::v1::SpeechRecognitionAlternative& alternatives(int index) const; - ::google::cloud::speech::v1::SpeechRecognitionAlternative* add_alternatives(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechRecognitionAlternative >& - alternatives() const; - - // repeated .google.cloud.speech.v1.RecognitionLattice lattice = 5; - int lattice_size() const; - private: - int _internal_lattice_size() const; - public: - void clear_lattice(); - ::google::cloud::speech::v1::RecognitionLattice* mutable_lattice(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::RecognitionLattice >* - mutable_lattice(); - private: - const ::google::cloud::speech::v1::RecognitionLattice& _internal_lattice(int index) const; - ::google::cloud::speech::v1::RecognitionLattice* _internal_add_lattice(); - public: - const ::google::cloud::speech::v1::RecognitionLattice& lattice(int index) const; - ::google::cloud::speech::v1::RecognitionLattice* add_lattice(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::RecognitionLattice >& - lattice() const; - - // @@protoc_insertion_point(class_scope:google.cloud.speech.v1.SpeechRecognitionResult) - private: - class _Internal; - - ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechRecognitionAlternative > alternatives_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::RecognitionLattice > lattice_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_dictation_5fasr_2eproto; -}; -// ------------------------------------------------------------------- - -class SpeechRecognitionAlternative : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.cloud.speech.v1.SpeechRecognitionAlternative) */ { - public: - SpeechRecognitionAlternative(); - virtual ~SpeechRecognitionAlternative(); - - SpeechRecognitionAlternative(const SpeechRecognitionAlternative& from); - SpeechRecognitionAlternative(SpeechRecognitionAlternative&& from) noexcept - : SpeechRecognitionAlternative() { - *this = ::std::move(from); - } - - inline SpeechRecognitionAlternative& operator=(const SpeechRecognitionAlternative& from) { - CopyFrom(from); - return *this; - } - inline SpeechRecognitionAlternative& operator=(SpeechRecognitionAlternative&& from) noexcept { - if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { - if (this != &from) InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { - return GetArenaNoVirtual(); - } - inline void* GetMaybeArenaPointer() const final { - return MaybeArenaPtr(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return GetMetadataStatic().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return GetMetadataStatic().reflection; - } - static const SpeechRecognitionAlternative& default_instance(); - - static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const SpeechRecognitionAlternative* internal_default_instance() { - return reinterpret_cast( - &_SpeechRecognitionAlternative_default_instance_); - } - static constexpr int kIndexInFileMessages = - 11; - - friend void swap(SpeechRecognitionAlternative& a, SpeechRecognitionAlternative& b) { - a.Swap(&b); - } - inline void Swap(SpeechRecognitionAlternative* other) { - if (other == this) return; - if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(SpeechRecognitionAlternative* other) { - if (other == this) return; - GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - inline SpeechRecognitionAlternative* New() const final { - return CreateMaybeMessage(nullptr); - } - - SpeechRecognitionAlternative* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { - return CreateMaybeMessage(arena); - } - void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void CopyFrom(const SpeechRecognitionAlternative& from); - void MergeFrom(const SpeechRecognitionAlternative& from); - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - inline void SharedCtor(); - inline void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(SpeechRecognitionAlternative* other); - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "google.cloud.speech.v1.SpeechRecognitionAlternative"; - } - protected: - explicit SpeechRecognitionAlternative(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - private: - static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_dictation_5fasr_2eproto); - return ::descriptor_table_dictation_5fasr_2eproto.file_level_metadata[kIndexInFileMessages]; - } - - public: - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kWordsFieldNumber = 3, - kTranscriptFieldNumber = 1, - kConfidenceFieldNumber = 2, - }; - // repeated .google.cloud.speech.v1.WordInfo words = 3; - int words_size() const; - private: - int _internal_words_size() const; - public: - void clear_words(); - ::google::cloud::speech::v1::WordInfo* mutable_words(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::WordInfo >* - mutable_words(); - private: - const ::google::cloud::speech::v1::WordInfo& _internal_words(int index) const; - ::google::cloud::speech::v1::WordInfo* _internal_add_words(); - public: - const ::google::cloud::speech::v1::WordInfo& words(int index) const; - ::google::cloud::speech::v1::WordInfo* add_words(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::WordInfo >& - words() const; - - // string transcript = 1; - void clear_transcript(); - const std::string& transcript() const; - void set_transcript(const std::string& value); - void set_transcript(std::string&& value); - void set_transcript(const char* value); - void set_transcript(const char* value, size_t size); - std::string* mutable_transcript(); - std::string* release_transcript(); - void set_allocated_transcript(std::string* transcript); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - std::string* unsafe_arena_release_transcript(); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - void unsafe_arena_set_allocated_transcript( - std::string* transcript); - private: - const std::string& _internal_transcript() const; - void _internal_set_transcript(const std::string& value); - std::string* _internal_mutable_transcript(); - public: - - // float confidence = 2; - void clear_confidence(); - float confidence() const; - void set_confidence(float value); - private: - float _internal_confidence() const; - void _internal_set_confidence(float value); - public: - - // @@protoc_insertion_point(class_scope:google.cloud.speech.v1.SpeechRecognitionAlternative) - private: - class _Internal; - - ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::WordInfo > words_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr transcript_; - float confidence_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_dictation_5fasr_2eproto; -}; -// ------------------------------------------------------------------- - -class WordInfo : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.cloud.speech.v1.WordInfo) */ { - public: - WordInfo(); - virtual ~WordInfo(); - - WordInfo(const WordInfo& from); - WordInfo(WordInfo&& from) noexcept - : WordInfo() { - *this = ::std::move(from); - } - - inline WordInfo& operator=(const WordInfo& from) { - CopyFrom(from); - return *this; - } - inline WordInfo& operator=(WordInfo&& from) noexcept { - if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { - if (this != &from) InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { - return GetArenaNoVirtual(); - } - inline void* GetMaybeArenaPointer() const final { - return MaybeArenaPtr(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return GetMetadataStatic().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return GetMetadataStatic().reflection; - } - static const WordInfo& default_instance(); - - static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const WordInfo* internal_default_instance() { - return reinterpret_cast( - &_WordInfo_default_instance_); - } - static constexpr int kIndexInFileMessages = - 12; - - friend void swap(WordInfo& a, WordInfo& b) { - a.Swap(&b); - } - inline void Swap(WordInfo* other) { - if (other == this) return; - if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(WordInfo* other) { - if (other == this) return; - GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - inline WordInfo* New() const final { - return CreateMaybeMessage(nullptr); - } - - WordInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { - return CreateMaybeMessage(arena); - } - void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void CopyFrom(const WordInfo& from); - void MergeFrom(const WordInfo& from); - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - inline void SharedCtor(); - inline void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(WordInfo* other); - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "google.cloud.speech.v1.WordInfo"; - } - protected: - explicit WordInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - private: - static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_dictation_5fasr_2eproto); - return ::descriptor_table_dictation_5fasr_2eproto.file_level_metadata[kIndexInFileMessages]; - } - - public: - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kWordFieldNumber = 3, - kStartTimeFieldNumber = 1, - kEndTimeFieldNumber = 2, - }; - // string word = 3; - void clear_word(); - const std::string& word() const; - void set_word(const std::string& value); - void set_word(std::string&& value); - void set_word(const char* value); - void set_word(const char* value, size_t size); - std::string* mutable_word(); - std::string* release_word(); - void set_allocated_word(std::string* word); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - std::string* unsafe_arena_release_word(); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - void unsafe_arena_set_allocated_word( - std::string* word); - private: - const std::string& _internal_word() const; - void _internal_set_word(const std::string& value); - std::string* _internal_mutable_word(); - public: - - // .google.protobuf.Duration start_time = 1; - bool has_start_time() const; - private: - bool _internal_has_start_time() const; - public: - void clear_start_time(); - const PROTOBUF_NAMESPACE_ID::Duration& start_time() const; - PROTOBUF_NAMESPACE_ID::Duration* release_start_time(); - PROTOBUF_NAMESPACE_ID::Duration* mutable_start_time(); - void set_allocated_start_time(PROTOBUF_NAMESPACE_ID::Duration* start_time); - private: - const PROTOBUF_NAMESPACE_ID::Duration& _internal_start_time() const; - PROTOBUF_NAMESPACE_ID::Duration* _internal_mutable_start_time(); - public: - void unsafe_arena_set_allocated_start_time( - PROTOBUF_NAMESPACE_ID::Duration* start_time); - PROTOBUF_NAMESPACE_ID::Duration* unsafe_arena_release_start_time(); - - // .google.protobuf.Duration end_time = 2; - bool has_end_time() const; - private: - bool _internal_has_end_time() const; - public: - void clear_end_time(); - const PROTOBUF_NAMESPACE_ID::Duration& end_time() const; - PROTOBUF_NAMESPACE_ID::Duration* release_end_time(); - PROTOBUF_NAMESPACE_ID::Duration* mutable_end_time(); - void set_allocated_end_time(PROTOBUF_NAMESPACE_ID::Duration* end_time); - private: - const PROTOBUF_NAMESPACE_ID::Duration& _internal_end_time() const; - PROTOBUF_NAMESPACE_ID::Duration* _internal_mutable_end_time(); - public: - void unsafe_arena_set_allocated_end_time( - PROTOBUF_NAMESPACE_ID::Duration* end_time); - PROTOBUF_NAMESPACE_ID::Duration* unsafe_arena_release_end_time(); - - // @@protoc_insertion_point(class_scope:google.cloud.speech.v1.WordInfo) - private: - class _Internal; - - ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr word_; - PROTOBUF_NAMESPACE_ID::Duration* start_time_; - PROTOBUF_NAMESPACE_ID::Duration* end_time_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_dictation_5fasr_2eproto; -}; -// ------------------------------------------------------------------- - -class RecognitionLattice : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.cloud.speech.v1.RecognitionLattice) */ { - public: - RecognitionLattice(); - virtual ~RecognitionLattice(); - - RecognitionLattice(const RecognitionLattice& from); - RecognitionLattice(RecognitionLattice&& from) noexcept - : RecognitionLattice() { - *this = ::std::move(from); - } - - inline RecognitionLattice& operator=(const RecognitionLattice& from) { - CopyFrom(from); - return *this; - } - inline RecognitionLattice& operator=(RecognitionLattice&& from) noexcept { - if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { - if (this != &from) InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { - return GetArenaNoVirtual(); - } - inline void* GetMaybeArenaPointer() const final { - return MaybeArenaPtr(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return GetMetadataStatic().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return GetMetadataStatic().reflection; - } - static const RecognitionLattice& default_instance(); - - static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const RecognitionLattice* internal_default_instance() { - return reinterpret_cast( - &_RecognitionLattice_default_instance_); - } - static constexpr int kIndexInFileMessages = - 13; - - friend void swap(RecognitionLattice& a, RecognitionLattice& b) { - a.Swap(&b); - } - inline void Swap(RecognitionLattice* other) { - if (other == this) return; - if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(RecognitionLattice* other) { - if (other == this) return; - GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - inline RecognitionLattice* New() const final { - return CreateMaybeMessage(nullptr); - } - - RecognitionLattice* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { - return CreateMaybeMessage(arena); - } - void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void CopyFrom(const RecognitionLattice& from); - void MergeFrom(const RecognitionLattice& from); - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - inline void SharedCtor(); - inline void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(RecognitionLattice* other); - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "google.cloud.speech.v1.RecognitionLattice"; - } - protected: - explicit RecognitionLattice(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - private: - static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_dictation_5fasr_2eproto); - return ::descriptor_table_dictation_5fasr_2eproto.file_level_metadata[kIndexInFileMessages]; - } - - public: - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kFinalNodesFieldNumber = 1, - kEdgesFieldNumber = 2, - }; - // repeated int32 final_nodes = 1; - int final_nodes_size() const; - private: - int _internal_final_nodes_size() const; - public: - void clear_final_nodes(); - private: - ::PROTOBUF_NAMESPACE_ID::int32 _internal_final_nodes(int index) const; - const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >& - _internal_final_nodes() const; - void _internal_add_final_nodes(::PROTOBUF_NAMESPACE_ID::int32 value); - ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >* - _internal_mutable_final_nodes(); - public: - ::PROTOBUF_NAMESPACE_ID::int32 final_nodes(int index) const; - void set_final_nodes(int index, ::PROTOBUF_NAMESPACE_ID::int32 value); - void add_final_nodes(::PROTOBUF_NAMESPACE_ID::int32 value); - const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >& - final_nodes() const; - ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >* - mutable_final_nodes(); - - // repeated .google.cloud.speech.v1.LatticeEdge edges = 2; - int edges_size() const; - private: - int _internal_edges_size() const; - public: - void clear_edges(); - ::google::cloud::speech::v1::LatticeEdge* mutable_edges(int index); - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::LatticeEdge >* - mutable_edges(); - private: - const ::google::cloud::speech::v1::LatticeEdge& _internal_edges(int index) const; - ::google::cloud::speech::v1::LatticeEdge* _internal_add_edges(); - public: - const ::google::cloud::speech::v1::LatticeEdge& edges(int index) const; - ::google::cloud::speech::v1::LatticeEdge* add_edges(); - const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::LatticeEdge >& - edges() const; - - // @@protoc_insertion_point(class_scope:google.cloud.speech.v1.RecognitionLattice) - private: - class _Internal; - - ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > final_nodes_; - mutable std::atomic _final_nodes_cached_byte_size_; - ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::LatticeEdge > edges_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_dictation_5fasr_2eproto; -}; -// ------------------------------------------------------------------- - -class LatticeEdge : - public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.cloud.speech.v1.LatticeEdge) */ { - public: - LatticeEdge(); - virtual ~LatticeEdge(); - - LatticeEdge(const LatticeEdge& from); - LatticeEdge(LatticeEdge&& from) noexcept - : LatticeEdge() { - *this = ::std::move(from); - } - - inline LatticeEdge& operator=(const LatticeEdge& from) { - CopyFrom(from); - return *this; - } - inline LatticeEdge& operator=(LatticeEdge&& from) noexcept { - if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { - if (this != &from) InternalSwap(&from); - } else { - CopyFrom(from); - } - return *this; - } - - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArena() const final { - return GetArenaNoVirtual(); - } - inline void* GetMaybeArenaPointer() const final { - return MaybeArenaPtr(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { - return GetDescriptor(); - } - static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { - return GetMetadataStatic().descriptor; - } - static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { - return GetMetadataStatic().reflection; - } - static const LatticeEdge& default_instance(); - - static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY - static inline const LatticeEdge* internal_default_instance() { - return reinterpret_cast( - &_LatticeEdge_default_instance_); - } - static constexpr int kIndexInFileMessages = - 14; - - friend void swap(LatticeEdge& a, LatticeEdge& b) { - a.Swap(&b); - } - inline void Swap(LatticeEdge* other) { - if (other == this) return; - if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) { - InternalSwap(other); - } else { - ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); - } - } - void UnsafeArenaSwap(LatticeEdge* other) { - if (other == this) return; - GOOGLE_DCHECK(GetArenaNoVirtual() == other->GetArenaNoVirtual()); - InternalSwap(other); - } - - // implements Message ---------------------------------------------- - - inline LatticeEdge* New() const final { - return CreateMaybeMessage(nullptr); - } - - LatticeEdge* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { - return CreateMaybeMessage(arena); - } - void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; - void CopyFrom(const LatticeEdge& from); - void MergeFrom(const LatticeEdge& from); - PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; - bool IsInitialized() const final; - - size_t ByteSizeLong() const final; - const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; - ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( - ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; - int GetCachedSize() const final { return _cached_size_.Get(); } - - private: - inline void SharedCtor(); - inline void SharedDtor(); - void SetCachedSize(int size) const final; - void InternalSwap(LatticeEdge* other); - friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; - static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { - return "google.cloud.speech.v1.LatticeEdge"; - } - protected: - explicit LatticeEdge(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - static void ArenaDtor(void* object); - inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); - private: - inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; - private: - static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_dictation_5fasr_2eproto); - return ::descriptor_table_dictation_5fasr_2eproto.file_level_metadata[kIndexInFileMessages]; - } - - public: - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - enum : int { - kSymbolFieldNumber = 3, - kStartNodeFieldNumber = 1, - kEndNodeFieldNumber = 2, - kLanguageCostFieldNumber = 4, - kAcousticCostFieldNumber = 5, - kDurationFieldNumber = 6, - }; - // string symbol = 3; - void clear_symbol(); - const std::string& symbol() const; - void set_symbol(const std::string& value); - void set_symbol(std::string&& value); - void set_symbol(const char* value); - void set_symbol(const char* value, size_t size); - std::string* mutable_symbol(); - std::string* release_symbol(); - void set_allocated_symbol(std::string* symbol); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - std::string* unsafe_arena_release_symbol(); - GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" - " string fields are deprecated and will be removed in a" - " future release.") - void unsafe_arena_set_allocated_symbol( - std::string* symbol); - private: - const std::string& _internal_symbol() const; - void _internal_set_symbol(const std::string& value); - std::string* _internal_mutable_symbol(); - public: - - // int32 start_node = 1; - void clear_start_node(); - ::PROTOBUF_NAMESPACE_ID::int32 start_node() const; - void set_start_node(::PROTOBUF_NAMESPACE_ID::int32 value); - private: - ::PROTOBUF_NAMESPACE_ID::int32 _internal_start_node() const; - void _internal_set_start_node(::PROTOBUF_NAMESPACE_ID::int32 value); - public: - - // int32 end_node = 2; - void clear_end_node(); - ::PROTOBUF_NAMESPACE_ID::int32 end_node() const; - void set_end_node(::PROTOBUF_NAMESPACE_ID::int32 value); - private: - ::PROTOBUF_NAMESPACE_ID::int32 _internal_end_node() const; - void _internal_set_end_node(::PROTOBUF_NAMESPACE_ID::int32 value); - public: - - // float language_cost = 4; - void clear_language_cost(); - float language_cost() const; - void set_language_cost(float value); - private: - float _internal_language_cost() const; - void _internal_set_language_cost(float value); - public: - - // float acoustic_cost = 5; - void clear_acoustic_cost(); - float acoustic_cost() const; - void set_acoustic_cost(float value); - private: - float _internal_acoustic_cost() const; - void _internal_set_acoustic_cost(float value); - public: - - // int32 duration = 6; - void clear_duration(); - ::PROTOBUF_NAMESPACE_ID::int32 duration() const; - void set_duration(::PROTOBUF_NAMESPACE_ID::int32 value); - private: - ::PROTOBUF_NAMESPACE_ID::int32 _internal_duration() const; - void _internal_set_duration(::PROTOBUF_NAMESPACE_ID::int32 value); - public: - - // @@protoc_insertion_point(class_scope:google.cloud.speech.v1.LatticeEdge) - private: - class _Internal; - - ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_; - template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; - typedef void InternalArenaConstructable_; - typedef void DestructorSkippable_; - ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr symbol_; - ::PROTOBUF_NAMESPACE_ID::int32 start_node_; - ::PROTOBUF_NAMESPACE_ID::int32 end_node_; - float language_cost_; - float acoustic_cost_; - ::PROTOBUF_NAMESPACE_ID::int32 duration_; - mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - friend struct ::TableStruct_dictation_5fasr_2eproto; -}; -// =================================================================== - - -// =================================================================== - -#ifdef __GNUC__ - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wstrict-aliasing" -#endif // __GNUC__ -// RecognizeRequest - -// .google.cloud.speech.v1.RecognitionConfig config = 1; -inline bool RecognizeRequest::_internal_has_config() const { - return this != internal_default_instance() && config_ != nullptr; -} -inline bool RecognizeRequest::has_config() const { - return _internal_has_config(); -} -inline void RecognizeRequest::clear_config() { - if (GetArenaNoVirtual() == nullptr && config_ != nullptr) { - delete config_; - } - config_ = nullptr; -} -inline const ::google::cloud::speech::v1::RecognitionConfig& RecognizeRequest::_internal_config() const { - const ::google::cloud::speech::v1::RecognitionConfig* p = config_; - return p != nullptr ? *p : *reinterpret_cast( - &::google::cloud::speech::v1::_RecognitionConfig_default_instance_); -} -inline const ::google::cloud::speech::v1::RecognitionConfig& RecognizeRequest::config() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognizeRequest.config) - return _internal_config(); -} -inline ::google::cloud::speech::v1::RecognitionConfig* RecognizeRequest::release_config() { - auto temp = unsafe_arena_release_config(); - if (GetArenaNoVirtual() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } - return temp; -} -inline ::google::cloud::speech::v1::RecognitionConfig* RecognizeRequest::unsafe_arena_release_config() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.RecognizeRequest.config) - - ::google::cloud::speech::v1::RecognitionConfig* temp = config_; - config_ = nullptr; - return temp; -} -inline ::google::cloud::speech::v1::RecognitionConfig* RecognizeRequest::_internal_mutable_config() { - - if (config_ == nullptr) { - auto* p = CreateMaybeMessage<::google::cloud::speech::v1::RecognitionConfig>(GetArenaNoVirtual()); - config_ = p; - } - return config_; -} -inline ::google::cloud::speech::v1::RecognitionConfig* RecognizeRequest::mutable_config() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.RecognizeRequest.config) - return _internal_mutable_config(); -} -inline void RecognizeRequest::set_allocated_config(::google::cloud::speech::v1::RecognitionConfig* config) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); - if (message_arena == nullptr) { - delete config_; - } - if (config) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(config); - if (message_arena != submessage_arena) { - config = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, config, submessage_arena); - } - - } else { - - } - config_ = config; - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.RecognizeRequest.config) -} - -// .google.cloud.speech.v1.RecognitionAudio audio = 2; -inline bool RecognizeRequest::_internal_has_audio() const { - return this != internal_default_instance() && audio_ != nullptr; -} -inline bool RecognizeRequest::has_audio() const { - return _internal_has_audio(); -} -inline void RecognizeRequest::clear_audio() { - if (GetArenaNoVirtual() == nullptr && audio_ != nullptr) { - delete audio_; - } - audio_ = nullptr; -} -inline const ::google::cloud::speech::v1::RecognitionAudio& RecognizeRequest::_internal_audio() const { - const ::google::cloud::speech::v1::RecognitionAudio* p = audio_; - return p != nullptr ? *p : *reinterpret_cast( - &::google::cloud::speech::v1::_RecognitionAudio_default_instance_); -} -inline const ::google::cloud::speech::v1::RecognitionAudio& RecognizeRequest::audio() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognizeRequest.audio) - return _internal_audio(); -} -inline ::google::cloud::speech::v1::RecognitionAudio* RecognizeRequest::release_audio() { - auto temp = unsafe_arena_release_audio(); - if (GetArenaNoVirtual() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } - return temp; -} -inline ::google::cloud::speech::v1::RecognitionAudio* RecognizeRequest::unsafe_arena_release_audio() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.RecognizeRequest.audio) - - ::google::cloud::speech::v1::RecognitionAudio* temp = audio_; - audio_ = nullptr; - return temp; -} -inline ::google::cloud::speech::v1::RecognitionAudio* RecognizeRequest::_internal_mutable_audio() { - - if (audio_ == nullptr) { - auto* p = CreateMaybeMessage<::google::cloud::speech::v1::RecognitionAudio>(GetArenaNoVirtual()); - audio_ = p; - } - return audio_; -} -inline ::google::cloud::speech::v1::RecognitionAudio* RecognizeRequest::mutable_audio() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.RecognizeRequest.audio) - return _internal_mutable_audio(); -} -inline void RecognizeRequest::set_allocated_audio(::google::cloud::speech::v1::RecognitionAudio* audio) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); - if (message_arena == nullptr) { - delete audio_; - } - if (audio) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(audio); - if (message_arena != submessage_arena) { - audio = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, audio, submessage_arena); - } - - } else { - - } - audio_ = audio; - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.RecognizeRequest.audio) -} - -// ------------------------------------------------------------------- - -// StreamingRecognizeRequest - -// .google.cloud.speech.v1.StreamingRecognitionConfig streaming_config = 1; -inline bool StreamingRecognizeRequest::_internal_has_streaming_config() const { - return streaming_request_case() == kStreamingConfig; -} -inline bool StreamingRecognizeRequest::has_streaming_config() const { - return _internal_has_streaming_config(); -} -inline void StreamingRecognizeRequest::set_has_streaming_config() { - _oneof_case_[0] = kStreamingConfig; -} -inline void StreamingRecognizeRequest::clear_streaming_config() { - if (_internal_has_streaming_config()) { - if (GetArenaNoVirtual() == nullptr) { - delete streaming_request_.streaming_config_; - } - clear_has_streaming_request(); - } -} -inline ::google::cloud::speech::v1::StreamingRecognitionConfig* StreamingRecognizeRequest::release_streaming_config() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.StreamingRecognizeRequest.streaming_config) - if (_internal_has_streaming_config()) { - clear_has_streaming_request(); - ::google::cloud::speech::v1::StreamingRecognitionConfig* temp = streaming_request_.streaming_config_; - if (GetArenaNoVirtual() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } - streaming_request_.streaming_config_ = nullptr; - return temp; - } else { - return nullptr; - } -} -inline const ::google::cloud::speech::v1::StreamingRecognitionConfig& StreamingRecognizeRequest::_internal_streaming_config() const { - return _internal_has_streaming_config() - ? *streaming_request_.streaming_config_ - : *reinterpret_cast< ::google::cloud::speech::v1::StreamingRecognitionConfig*>(&::google::cloud::speech::v1::_StreamingRecognitionConfig_default_instance_); -} -inline const ::google::cloud::speech::v1::StreamingRecognitionConfig& StreamingRecognizeRequest::streaming_config() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.StreamingRecognizeRequest.streaming_config) - return _internal_streaming_config(); -} -inline ::google::cloud::speech::v1::StreamingRecognitionConfig* StreamingRecognizeRequest::unsafe_arena_release_streaming_config() { - // @@protoc_insertion_point(field_unsafe_arena_release:google.cloud.speech.v1.StreamingRecognizeRequest.streaming_config) - if (_internal_has_streaming_config()) { - clear_has_streaming_request(); - ::google::cloud::speech::v1::StreamingRecognitionConfig* temp = streaming_request_.streaming_config_; - streaming_request_.streaming_config_ = nullptr; - return temp; - } else { - return nullptr; - } -} -inline void StreamingRecognizeRequest::unsafe_arena_set_allocated_streaming_config(::google::cloud::speech::v1::StreamingRecognitionConfig* streaming_config) { - clear_streaming_request(); - if (streaming_config) { - set_has_streaming_config(); - streaming_request_.streaming_config_ = streaming_config; - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.StreamingRecognizeRequest.streaming_config) -} -inline ::google::cloud::speech::v1::StreamingRecognitionConfig* StreamingRecognizeRequest::_internal_mutable_streaming_config() { - if (!_internal_has_streaming_config()) { - clear_streaming_request(); - set_has_streaming_config(); - streaming_request_.streaming_config_ = CreateMaybeMessage< ::google::cloud::speech::v1::StreamingRecognitionConfig >( - GetArenaNoVirtual()); - } - return streaming_request_.streaming_config_; -} -inline ::google::cloud::speech::v1::StreamingRecognitionConfig* StreamingRecognizeRequest::mutable_streaming_config() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.StreamingRecognizeRequest.streaming_config) - return _internal_mutable_streaming_config(); -} - -// bytes audio_content = 2; -inline bool StreamingRecognizeRequest::_internal_has_audio_content() const { - return streaming_request_case() == kAudioContent; -} -inline void StreamingRecognizeRequest::set_has_audio_content() { - _oneof_case_[0] = kAudioContent; -} -inline void StreamingRecognizeRequest::clear_audio_content() { - if (_internal_has_audio_content()) { - streaming_request_.audio_content_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); - clear_has_streaming_request(); - } -} -inline const std::string& StreamingRecognizeRequest::audio_content() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.StreamingRecognizeRequest.audio_content) - return _internal_audio_content(); -} -inline void StreamingRecognizeRequest::set_audio_content(const std::string& value) { - _internal_set_audio_content(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.StreamingRecognizeRequest.audio_content) -} -inline std::string* StreamingRecognizeRequest::mutable_audio_content() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.StreamingRecognizeRequest.audio_content) - return _internal_mutable_audio_content(); -} -inline const std::string& StreamingRecognizeRequest::_internal_audio_content() const { - if (_internal_has_audio_content()) { - return streaming_request_.audio_content_.Get(); - } - return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(); -} -inline void StreamingRecognizeRequest::_internal_set_audio_content(const std::string& value) { - if (!_internal_has_audio_content()) { - clear_streaming_request(); - set_has_audio_content(); - streaming_request_.audio_content_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - streaming_request_.audio_content_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, - GetArenaNoVirtual()); -} -inline void StreamingRecognizeRequest::set_audio_content(std::string&& value) { - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.StreamingRecognizeRequest.audio_content) - if (!_internal_has_audio_content()) { - clear_streaming_request(); - set_has_audio_content(); - streaming_request_.audio_content_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - streaming_request_.audio_content_.Set( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_rvalue:google.cloud.speech.v1.StreamingRecognizeRequest.audio_content) -} -inline void StreamingRecognizeRequest::set_audio_content(const char* value) { - GOOGLE_DCHECK(value != nullptr); - if (!_internal_has_audio_content()) { - clear_streaming_request(); - set_has_audio_content(); - streaming_request_.audio_content_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - streaming_request_.audio_content_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - ::std::string(value), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_char:google.cloud.speech.v1.StreamingRecognizeRequest.audio_content) -} -inline void StreamingRecognizeRequest::set_audio_content(const void* value, - size_t size) { - if (!_internal_has_audio_content()) { - clear_streaming_request(); - set_has_audio_content(); - streaming_request_.audio_content_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - streaming_request_.audio_content_.Set( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( - reinterpret_cast(value), size), - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_pointer:google.cloud.speech.v1.StreamingRecognizeRequest.audio_content) -} -inline std::string* StreamingRecognizeRequest::_internal_mutable_audio_content() { - if (!_internal_has_audio_content()) { - clear_streaming_request(); - set_has_audio_content(); - streaming_request_.audio_content_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - return streaming_request_.audio_content_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); -} -inline std::string* StreamingRecognizeRequest::release_audio_content() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.StreamingRecognizeRequest.audio_content) - if (_internal_has_audio_content()) { - clear_has_streaming_request(); - return streaming_request_.audio_content_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); - } else { - return nullptr; - } -} -inline void StreamingRecognizeRequest::set_allocated_audio_content(std::string* audio_content) { - if (has_streaming_request()) { - clear_streaming_request(); - } - if (audio_content != nullptr) { - set_has_audio_content(); - streaming_request_.audio_content_.UnsafeSetDefault(audio_content); - } - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.StreamingRecognizeRequest.audio_content) -} -inline std::string* StreamingRecognizeRequest::unsafe_arena_release_audio_content() { - // @@protoc_insertion_point(field_unsafe_arena_release:google.cloud.speech.v1.StreamingRecognizeRequest.audio_content) - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - if (_internal_has_audio_content()) { - clear_has_streaming_request(); - return streaming_request_.audio_content_.UnsafeArenaRelease( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); - } else { - return nullptr; - } -} -inline void StreamingRecognizeRequest::unsafe_arena_set_allocated_audio_content(std::string* audio_content) { - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - if (!_internal_has_audio_content()) { - streaming_request_.audio_content_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - clear_streaming_request(); - if (audio_content) { - set_has_audio_content(); - streaming_request_.audio_content_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), audio_content, GetArenaNoVirtual()); - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.StreamingRecognizeRequest.audio_content) -} - -inline bool StreamingRecognizeRequest::has_streaming_request() const { - return streaming_request_case() != STREAMING_REQUEST_NOT_SET; -} -inline void StreamingRecognizeRequest::clear_has_streaming_request() { - _oneof_case_[0] = STREAMING_REQUEST_NOT_SET; -} -inline StreamingRecognizeRequest::StreamingRequestCase StreamingRecognizeRequest::streaming_request_case() const { - return StreamingRecognizeRequest::StreamingRequestCase(_oneof_case_[0]); -} -// ------------------------------------------------------------------- - -// StreamingRecognitionConfig - -// .google.cloud.speech.v1.RecognitionConfig config = 1; -inline bool StreamingRecognitionConfig::_internal_has_config() const { - return this != internal_default_instance() && config_ != nullptr; -} -inline bool StreamingRecognitionConfig::has_config() const { - return _internal_has_config(); -} -inline void StreamingRecognitionConfig::clear_config() { - if (GetArenaNoVirtual() == nullptr && config_ != nullptr) { - delete config_; - } - config_ = nullptr; -} -inline const ::google::cloud::speech::v1::RecognitionConfig& StreamingRecognitionConfig::_internal_config() const { - const ::google::cloud::speech::v1::RecognitionConfig* p = config_; - return p != nullptr ? *p : *reinterpret_cast( - &::google::cloud::speech::v1::_RecognitionConfig_default_instance_); -} -inline const ::google::cloud::speech::v1::RecognitionConfig& StreamingRecognitionConfig::config() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.StreamingRecognitionConfig.config) - return _internal_config(); -} -inline ::google::cloud::speech::v1::RecognitionConfig* StreamingRecognitionConfig::release_config() { - auto temp = unsafe_arena_release_config(); - if (GetArenaNoVirtual() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } - return temp; -} -inline ::google::cloud::speech::v1::RecognitionConfig* StreamingRecognitionConfig::unsafe_arena_release_config() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.StreamingRecognitionConfig.config) - - ::google::cloud::speech::v1::RecognitionConfig* temp = config_; - config_ = nullptr; - return temp; -} -inline ::google::cloud::speech::v1::RecognitionConfig* StreamingRecognitionConfig::_internal_mutable_config() { - - if (config_ == nullptr) { - auto* p = CreateMaybeMessage<::google::cloud::speech::v1::RecognitionConfig>(GetArenaNoVirtual()); - config_ = p; - } - return config_; -} -inline ::google::cloud::speech::v1::RecognitionConfig* StreamingRecognitionConfig::mutable_config() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.StreamingRecognitionConfig.config) - return _internal_mutable_config(); -} -inline void StreamingRecognitionConfig::set_allocated_config(::google::cloud::speech::v1::RecognitionConfig* config) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); - if (message_arena == nullptr) { - delete config_; - } - if (config) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(config); - if (message_arena != submessage_arena) { - config = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, config, submessage_arena); - } - - } else { - - } - config_ = config; - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.StreamingRecognitionConfig.config) -} - -// bool single_utterance = 2; -inline void StreamingRecognitionConfig::clear_single_utterance() { - single_utterance_ = false; -} -inline bool StreamingRecognitionConfig::_internal_single_utterance() const { - return single_utterance_; -} -inline bool StreamingRecognitionConfig::single_utterance() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.StreamingRecognitionConfig.single_utterance) - return _internal_single_utterance(); -} -inline void StreamingRecognitionConfig::_internal_set_single_utterance(bool value) { - - single_utterance_ = value; -} -inline void StreamingRecognitionConfig::set_single_utterance(bool value) { - _internal_set_single_utterance(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.StreamingRecognitionConfig.single_utterance) -} - -// bool interim_results = 3; -inline void StreamingRecognitionConfig::clear_interim_results() { - interim_results_ = false; -} -inline bool StreamingRecognitionConfig::_internal_interim_results() const { - return interim_results_; -} -inline bool StreamingRecognitionConfig::interim_results() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.StreamingRecognitionConfig.interim_results) - return _internal_interim_results(); -} -inline void StreamingRecognitionConfig::_internal_set_interim_results(bool value) { - - interim_results_ = value; -} -inline void StreamingRecognitionConfig::set_interim_results(bool value) { - _internal_set_interim_results(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.StreamingRecognitionConfig.interim_results) -} - -// ------------------------------------------------------------------- - -// RecognitionConfig - -// .google.cloud.speech.v1.RecognitionConfig.AudioEncoding encoding = 1; -inline void RecognitionConfig::clear_encoding() { - encoding_ = 0; -} -inline ::google::cloud::speech::v1::RecognitionConfig_AudioEncoding RecognitionConfig::_internal_encoding() const { - return static_cast< ::google::cloud::speech::v1::RecognitionConfig_AudioEncoding >(encoding_); -} -inline ::google::cloud::speech::v1::RecognitionConfig_AudioEncoding RecognitionConfig::encoding() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognitionConfig.encoding) - return _internal_encoding(); -} -inline void RecognitionConfig::_internal_set_encoding(::google::cloud::speech::v1::RecognitionConfig_AudioEncoding value) { - - encoding_ = value; -} -inline void RecognitionConfig::set_encoding(::google::cloud::speech::v1::RecognitionConfig_AudioEncoding value) { - _internal_set_encoding(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.RecognitionConfig.encoding) -} - -// int32 sample_rate_hertz = 2; -inline void RecognitionConfig::clear_sample_rate_hertz() { - sample_rate_hertz_ = 0; -} -inline ::PROTOBUF_NAMESPACE_ID::int32 RecognitionConfig::_internal_sample_rate_hertz() const { - return sample_rate_hertz_; -} -inline ::PROTOBUF_NAMESPACE_ID::int32 RecognitionConfig::sample_rate_hertz() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognitionConfig.sample_rate_hertz) - return _internal_sample_rate_hertz(); -} -inline void RecognitionConfig::_internal_set_sample_rate_hertz(::PROTOBUF_NAMESPACE_ID::int32 value) { - - sample_rate_hertz_ = value; -} -inline void RecognitionConfig::set_sample_rate_hertz(::PROTOBUF_NAMESPACE_ID::int32 value) { - _internal_set_sample_rate_hertz(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.RecognitionConfig.sample_rate_hertz) -} - -// string language_code = 3; -inline void RecognitionConfig::clear_language_code() { - language_code_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline const std::string& RecognitionConfig::language_code() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognitionConfig.language_code) - return _internal_language_code(); -} -inline void RecognitionConfig::set_language_code(const std::string& value) { - _internal_set_language_code(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.RecognitionConfig.language_code) -} -inline std::string* RecognitionConfig::mutable_language_code() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.RecognitionConfig.language_code) - return _internal_mutable_language_code(); -} -inline const std::string& RecognitionConfig::_internal_language_code() const { - return language_code_.Get(); -} -inline void RecognitionConfig::_internal_set_language_code(const std::string& value) { - - language_code_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual()); -} -inline void RecognitionConfig::set_language_code(std::string&& value) { - - language_code_.Set( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_rvalue:google.cloud.speech.v1.RecognitionConfig.language_code) -} -inline void RecognitionConfig::set_language_code(const char* value) { - GOOGLE_DCHECK(value != nullptr); - - language_code_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value), - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_char:google.cloud.speech.v1.RecognitionConfig.language_code) -} -inline void RecognitionConfig::set_language_code(const char* value, - size_t size) { - - language_code_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( - reinterpret_cast(value), size), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_pointer:google.cloud.speech.v1.RecognitionConfig.language_code) -} -inline std::string* RecognitionConfig::_internal_mutable_language_code() { - - return language_code_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline std::string* RecognitionConfig::release_language_code() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.RecognitionConfig.language_code) - - return language_code_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline void RecognitionConfig::set_allocated_language_code(std::string* language_code) { - if (language_code != nullptr) { - - } else { - - } - language_code_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), language_code, - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.RecognitionConfig.language_code) -} -inline std::string* RecognitionConfig::unsafe_arena_release_language_code() { - // @@protoc_insertion_point(field_unsafe_arena_release:google.cloud.speech.v1.RecognitionConfig.language_code) - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - - return language_code_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); -} -inline void RecognitionConfig::unsafe_arena_set_allocated_language_code( - std::string* language_code) { - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - if (language_code != nullptr) { - - } else { - - } - language_code_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - language_code, GetArenaNoVirtual()); - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.RecognitionConfig.language_code) -} - -// int32 max_alternatives = 4; -inline void RecognitionConfig::clear_max_alternatives() { - max_alternatives_ = 0; -} -inline ::PROTOBUF_NAMESPACE_ID::int32 RecognitionConfig::_internal_max_alternatives() const { - return max_alternatives_; -} -inline ::PROTOBUF_NAMESPACE_ID::int32 RecognitionConfig::max_alternatives() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognitionConfig.max_alternatives) - return _internal_max_alternatives(); -} -inline void RecognitionConfig::_internal_set_max_alternatives(::PROTOBUF_NAMESPACE_ID::int32 value) { - - max_alternatives_ = value; -} -inline void RecognitionConfig::set_max_alternatives(::PROTOBUF_NAMESPACE_ID::int32 value) { - _internal_set_max_alternatives(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.RecognitionConfig.max_alternatives) -} - -// bool profanity_filter = 5; -inline void RecognitionConfig::clear_profanity_filter() { - profanity_filter_ = false; -} -inline bool RecognitionConfig::_internal_profanity_filter() const { - return profanity_filter_; -} -inline bool RecognitionConfig::profanity_filter() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognitionConfig.profanity_filter) - return _internal_profanity_filter(); -} -inline void RecognitionConfig::_internal_set_profanity_filter(bool value) { - - profanity_filter_ = value; -} -inline void RecognitionConfig::set_profanity_filter(bool value) { - _internal_set_profanity_filter(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.RecognitionConfig.profanity_filter) -} - -// repeated .google.cloud.speech.v1.SpeechContext speech_contexts = 6; -inline int RecognitionConfig::_internal_speech_contexts_size() const { - return speech_contexts_.size(); -} -inline int RecognitionConfig::speech_contexts_size() const { - return _internal_speech_contexts_size(); -} -inline void RecognitionConfig::clear_speech_contexts() { - speech_contexts_.Clear(); -} -inline ::google::cloud::speech::v1::SpeechContext* RecognitionConfig::mutable_speech_contexts(int index) { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.RecognitionConfig.speech_contexts) - return speech_contexts_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechContext >* -RecognitionConfig::mutable_speech_contexts() { - // @@protoc_insertion_point(field_mutable_list:google.cloud.speech.v1.RecognitionConfig.speech_contexts) - return &speech_contexts_; -} -inline const ::google::cloud::speech::v1::SpeechContext& RecognitionConfig::_internal_speech_contexts(int index) const { - return speech_contexts_.Get(index); -} -inline const ::google::cloud::speech::v1::SpeechContext& RecognitionConfig::speech_contexts(int index) const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognitionConfig.speech_contexts) - return _internal_speech_contexts(index); -} -inline ::google::cloud::speech::v1::SpeechContext* RecognitionConfig::_internal_add_speech_contexts() { - return speech_contexts_.Add(); -} -inline ::google::cloud::speech::v1::SpeechContext* RecognitionConfig::add_speech_contexts() { - // @@protoc_insertion_point(field_add:google.cloud.speech.v1.RecognitionConfig.speech_contexts) - return _internal_add_speech_contexts(); -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechContext >& -RecognitionConfig::speech_contexts() const { - // @@protoc_insertion_point(field_list:google.cloud.speech.v1.RecognitionConfig.speech_contexts) - return speech_contexts_; -} - -// bool enable_word_time_offsets = 8; -inline void RecognitionConfig::clear_enable_word_time_offsets() { - enable_word_time_offsets_ = false; -} -inline bool RecognitionConfig::_internal_enable_word_time_offsets() const { - return enable_word_time_offsets_; -} -inline bool RecognitionConfig::enable_word_time_offsets() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognitionConfig.enable_word_time_offsets) - return _internal_enable_word_time_offsets(); -} -inline void RecognitionConfig::_internal_set_enable_word_time_offsets(bool value) { - - enable_word_time_offsets_ = value; -} -inline void RecognitionConfig::set_enable_word_time_offsets(bool value) { - _internal_set_enable_word_time_offsets(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.RecognitionConfig.enable_word_time_offsets) -} - -// bool enable_automatic_punctuation = 11; -inline void RecognitionConfig::clear_enable_automatic_punctuation() { - enable_automatic_punctuation_ = false; -} -inline bool RecognitionConfig::_internal_enable_automatic_punctuation() const { - return enable_automatic_punctuation_; -} -inline bool RecognitionConfig::enable_automatic_punctuation() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognitionConfig.enable_automatic_punctuation) - return _internal_enable_automatic_punctuation(); -} -inline void RecognitionConfig::_internal_set_enable_automatic_punctuation(bool value) { - - enable_automatic_punctuation_ = value; -} -inline void RecognitionConfig::set_enable_automatic_punctuation(bool value) { - _internal_set_enable_automatic_punctuation(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.RecognitionConfig.enable_automatic_punctuation) -} - -// repeated .google.cloud.speech.v1.ConfigField config_fields = 12; -inline int RecognitionConfig::_internal_config_fields_size() const { - return config_fields_.size(); -} -inline int RecognitionConfig::config_fields_size() const { - return _internal_config_fields_size(); -} -inline void RecognitionConfig::clear_config_fields() { - config_fields_.Clear(); -} -inline ::google::cloud::speech::v1::ConfigField* RecognitionConfig::mutable_config_fields(int index) { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.RecognitionConfig.config_fields) - return config_fields_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::ConfigField >* -RecognitionConfig::mutable_config_fields() { - // @@protoc_insertion_point(field_mutable_list:google.cloud.speech.v1.RecognitionConfig.config_fields) - return &config_fields_; -} -inline const ::google::cloud::speech::v1::ConfigField& RecognitionConfig::_internal_config_fields(int index) const { - return config_fields_.Get(index); -} -inline const ::google::cloud::speech::v1::ConfigField& RecognitionConfig::config_fields(int index) const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognitionConfig.config_fields) - return _internal_config_fields(index); -} -inline ::google::cloud::speech::v1::ConfigField* RecognitionConfig::_internal_add_config_fields() { - return config_fields_.Add(); -} -inline ::google::cloud::speech::v1::ConfigField* RecognitionConfig::add_config_fields() { - // @@protoc_insertion_point(field_add:google.cloud.speech.v1.RecognitionConfig.config_fields) - return _internal_add_config_fields(); -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::ConfigField >& -RecognitionConfig::config_fields() const { - // @@protoc_insertion_point(field_list:google.cloud.speech.v1.RecognitionConfig.config_fields) - return config_fields_; -} - -// string model = 13; -inline void RecognitionConfig::clear_model() { - model_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline const std::string& RecognitionConfig::model() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognitionConfig.model) - return _internal_model(); -} -inline void RecognitionConfig::set_model(const std::string& value) { - _internal_set_model(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.RecognitionConfig.model) -} -inline std::string* RecognitionConfig::mutable_model() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.RecognitionConfig.model) - return _internal_mutable_model(); -} -inline const std::string& RecognitionConfig::_internal_model() const { - return model_.Get(); -} -inline void RecognitionConfig::_internal_set_model(const std::string& value) { - - model_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual()); -} -inline void RecognitionConfig::set_model(std::string&& value) { - - model_.Set( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_rvalue:google.cloud.speech.v1.RecognitionConfig.model) -} -inline void RecognitionConfig::set_model(const char* value) { - GOOGLE_DCHECK(value != nullptr); - - model_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value), - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_char:google.cloud.speech.v1.RecognitionConfig.model) -} -inline void RecognitionConfig::set_model(const char* value, - size_t size) { - - model_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( - reinterpret_cast(value), size), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_pointer:google.cloud.speech.v1.RecognitionConfig.model) -} -inline std::string* RecognitionConfig::_internal_mutable_model() { - - return model_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline std::string* RecognitionConfig::release_model() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.RecognitionConfig.model) - - return model_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline void RecognitionConfig::set_allocated_model(std::string* model) { - if (model != nullptr) { - - } else { - - } - model_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), model, - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.RecognitionConfig.model) -} -inline std::string* RecognitionConfig::unsafe_arena_release_model() { - // @@protoc_insertion_point(field_unsafe_arena_release:google.cloud.speech.v1.RecognitionConfig.model) - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - - return model_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); -} -inline void RecognitionConfig::unsafe_arena_set_allocated_model( - std::string* model) { - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - if (model != nullptr) { - - } else { - - } - model_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - model, GetArenaNoVirtual()); - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.RecognitionConfig.model) -} - -// bool use_enhanced = 14; -inline void RecognitionConfig::clear_use_enhanced() { - use_enhanced_ = false; -} -inline bool RecognitionConfig::_internal_use_enhanced() const { - return use_enhanced_; -} -inline bool RecognitionConfig::use_enhanced() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognitionConfig.use_enhanced) - return _internal_use_enhanced(); -} -inline void RecognitionConfig::_internal_set_use_enhanced(bool value) { - - use_enhanced_ = value; -} -inline void RecognitionConfig::set_use_enhanced(bool value) { - _internal_set_use_enhanced(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.RecognitionConfig.use_enhanced) -} - -// ------------------------------------------------------------------- - -// SpeechContext - -// repeated string phrases = 1; -inline int SpeechContext::_internal_phrases_size() const { - return phrases_.size(); -} -inline int SpeechContext::phrases_size() const { - return _internal_phrases_size(); -} -inline void SpeechContext::clear_phrases() { - phrases_.Clear(); -} -inline std::string* SpeechContext::add_phrases() { - // @@protoc_insertion_point(field_add_mutable:google.cloud.speech.v1.SpeechContext.phrases) - return _internal_add_phrases(); -} -inline const std::string& SpeechContext::_internal_phrases(int index) const { - return phrases_.Get(index); -} -inline const std::string& SpeechContext::phrases(int index) const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.SpeechContext.phrases) - return _internal_phrases(index); -} -inline std::string* SpeechContext::mutable_phrases(int index) { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.SpeechContext.phrases) - return phrases_.Mutable(index); -} -inline void SpeechContext::set_phrases(int index, const std::string& value) { - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.SpeechContext.phrases) - phrases_.Mutable(index)->assign(value); -} -inline void SpeechContext::set_phrases(int index, std::string&& value) { - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.SpeechContext.phrases) - phrases_.Mutable(index)->assign(std::move(value)); -} -inline void SpeechContext::set_phrases(int index, const char* value) { - GOOGLE_DCHECK(value != nullptr); - phrases_.Mutable(index)->assign(value); - // @@protoc_insertion_point(field_set_char:google.cloud.speech.v1.SpeechContext.phrases) -} -inline void SpeechContext::set_phrases(int index, const char* value, size_t size) { - phrases_.Mutable(index)->assign( - reinterpret_cast(value), size); - // @@protoc_insertion_point(field_set_pointer:google.cloud.speech.v1.SpeechContext.phrases) -} -inline std::string* SpeechContext::_internal_add_phrases() { - return phrases_.Add(); -} -inline void SpeechContext::add_phrases(const std::string& value) { - phrases_.Add()->assign(value); - // @@protoc_insertion_point(field_add:google.cloud.speech.v1.SpeechContext.phrases) -} -inline void SpeechContext::add_phrases(std::string&& value) { - phrases_.Add(std::move(value)); - // @@protoc_insertion_point(field_add:google.cloud.speech.v1.SpeechContext.phrases) -} -inline void SpeechContext::add_phrases(const char* value) { - GOOGLE_DCHECK(value != nullptr); - phrases_.Add()->assign(value); - // @@protoc_insertion_point(field_add_char:google.cloud.speech.v1.SpeechContext.phrases) -} -inline void SpeechContext::add_phrases(const char* value, size_t size) { - phrases_.Add()->assign(reinterpret_cast(value), size); - // @@protoc_insertion_point(field_add_pointer:google.cloud.speech.v1.SpeechContext.phrases) -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField& -SpeechContext::phrases() const { - // @@protoc_insertion_point(field_list:google.cloud.speech.v1.SpeechContext.phrases) - return phrases_; -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField* -SpeechContext::mutable_phrases() { - // @@protoc_insertion_point(field_mutable_list:google.cloud.speech.v1.SpeechContext.phrases) - return &phrases_; -} - -// ------------------------------------------------------------------- - -// ConfigField - -// string key = 1; -inline void ConfigField::clear_key() { - key_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline const std::string& ConfigField::key() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.ConfigField.key) - return _internal_key(); -} -inline void ConfigField::set_key(const std::string& value) { - _internal_set_key(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.ConfigField.key) -} -inline std::string* ConfigField::mutable_key() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.ConfigField.key) - return _internal_mutable_key(); -} -inline const std::string& ConfigField::_internal_key() const { - return key_.Get(); -} -inline void ConfigField::_internal_set_key(const std::string& value) { - - key_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual()); -} -inline void ConfigField::set_key(std::string&& value) { - - key_.Set( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_rvalue:google.cloud.speech.v1.ConfigField.key) -} -inline void ConfigField::set_key(const char* value) { - GOOGLE_DCHECK(value != nullptr); - - key_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value), - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_char:google.cloud.speech.v1.ConfigField.key) -} -inline void ConfigField::set_key(const char* value, - size_t size) { - - key_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( - reinterpret_cast(value), size), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_pointer:google.cloud.speech.v1.ConfigField.key) -} -inline std::string* ConfigField::_internal_mutable_key() { - - return key_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline std::string* ConfigField::release_key() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.ConfigField.key) - - return key_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline void ConfigField::set_allocated_key(std::string* key) { - if (key != nullptr) { - - } else { - - } - key_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), key, - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.ConfigField.key) -} -inline std::string* ConfigField::unsafe_arena_release_key() { - // @@protoc_insertion_point(field_unsafe_arena_release:google.cloud.speech.v1.ConfigField.key) - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - - return key_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); -} -inline void ConfigField::unsafe_arena_set_allocated_key( - std::string* key) { - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - if (key != nullptr) { - - } else { - - } - key_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - key, GetArenaNoVirtual()); - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.ConfigField.key) -} - -// string value = 2; -inline void ConfigField::clear_value() { - value_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline const std::string& ConfigField::value() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.ConfigField.value) - return _internal_value(); -} -inline void ConfigField::set_value(const std::string& value) { - _internal_set_value(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.ConfigField.value) -} -inline std::string* ConfigField::mutable_value() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.ConfigField.value) - return _internal_mutable_value(); -} -inline const std::string& ConfigField::_internal_value() const { - return value_.Get(); -} -inline void ConfigField::_internal_set_value(const std::string& value) { - - value_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual()); -} -inline void ConfigField::set_value(std::string&& value) { - - value_.Set( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_rvalue:google.cloud.speech.v1.ConfigField.value) -} -inline void ConfigField::set_value(const char* value) { - GOOGLE_DCHECK(value != nullptr); - - value_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value), - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_char:google.cloud.speech.v1.ConfigField.value) -} -inline void ConfigField::set_value(const char* value, - size_t size) { - - value_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( - reinterpret_cast(value), size), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_pointer:google.cloud.speech.v1.ConfigField.value) -} -inline std::string* ConfigField::_internal_mutable_value() { - - return value_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline std::string* ConfigField::release_value() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.ConfigField.value) - - return value_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline void ConfigField::set_allocated_value(std::string* value) { - if (value != nullptr) { - - } else { - - } - value_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.ConfigField.value) -} -inline std::string* ConfigField::unsafe_arena_release_value() { - // @@protoc_insertion_point(field_unsafe_arena_release:google.cloud.speech.v1.ConfigField.value) - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - - return value_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); -} -inline void ConfigField::unsafe_arena_set_allocated_value( - std::string* value) { - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - if (value != nullptr) { - - } else { - - } - value_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - value, GetArenaNoVirtual()); - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.ConfigField.value) -} - -// ------------------------------------------------------------------- - -// RecognitionAudio - -// bytes content = 1; -inline bool RecognitionAudio::_internal_has_content() const { - return audio_source_case() == kContent; -} -inline void RecognitionAudio::set_has_content() { - _oneof_case_[0] = kContent; -} -inline void RecognitionAudio::clear_content() { - if (_internal_has_content()) { - audio_source_.content_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); - clear_has_audio_source(); - } -} -inline const std::string& RecognitionAudio::content() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognitionAudio.content) - return _internal_content(); -} -inline void RecognitionAudio::set_content(const std::string& value) { - _internal_set_content(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.RecognitionAudio.content) -} -inline std::string* RecognitionAudio::mutable_content() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.RecognitionAudio.content) - return _internal_mutable_content(); -} -inline const std::string& RecognitionAudio::_internal_content() const { - if (_internal_has_content()) { - return audio_source_.content_.Get(); - } - return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(); -} -inline void RecognitionAudio::_internal_set_content(const std::string& value) { - if (!_internal_has_content()) { - clear_audio_source(); - set_has_content(); - audio_source_.content_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - audio_source_.content_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, - GetArenaNoVirtual()); -} -inline void RecognitionAudio::set_content(std::string&& value) { - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.RecognitionAudio.content) - if (!_internal_has_content()) { - clear_audio_source(); - set_has_content(); - audio_source_.content_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - audio_source_.content_.Set( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_rvalue:google.cloud.speech.v1.RecognitionAudio.content) -} -inline void RecognitionAudio::set_content(const char* value) { - GOOGLE_DCHECK(value != nullptr); - if (!_internal_has_content()) { - clear_audio_source(); - set_has_content(); - audio_source_.content_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - audio_source_.content_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - ::std::string(value), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_char:google.cloud.speech.v1.RecognitionAudio.content) -} -inline void RecognitionAudio::set_content(const void* value, - size_t size) { - if (!_internal_has_content()) { - clear_audio_source(); - set_has_content(); - audio_source_.content_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - audio_source_.content_.Set( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( - reinterpret_cast(value), size), - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_pointer:google.cloud.speech.v1.RecognitionAudio.content) -} -inline std::string* RecognitionAudio::_internal_mutable_content() { - if (!_internal_has_content()) { - clear_audio_source(); - set_has_content(); - audio_source_.content_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - return audio_source_.content_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); -} -inline std::string* RecognitionAudio::release_content() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.RecognitionAudio.content) - if (_internal_has_content()) { - clear_has_audio_source(); - return audio_source_.content_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); - } else { - return nullptr; - } -} -inline void RecognitionAudio::set_allocated_content(std::string* content) { - if (has_audio_source()) { - clear_audio_source(); - } - if (content != nullptr) { - set_has_content(); - audio_source_.content_.UnsafeSetDefault(content); - } - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.RecognitionAudio.content) -} -inline std::string* RecognitionAudio::unsafe_arena_release_content() { - // @@protoc_insertion_point(field_unsafe_arena_release:google.cloud.speech.v1.RecognitionAudio.content) - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - if (_internal_has_content()) { - clear_has_audio_source(); - return audio_source_.content_.UnsafeArenaRelease( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); - } else { - return nullptr; - } -} -inline void RecognitionAudio::unsafe_arena_set_allocated_content(std::string* content) { - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - if (!_internal_has_content()) { - audio_source_.content_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - clear_audio_source(); - if (content) { - set_has_content(); - audio_source_.content_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), content, GetArenaNoVirtual()); - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.RecognitionAudio.content) -} - -// string uri = 2; -inline bool RecognitionAudio::_internal_has_uri() const { - return audio_source_case() == kUri; -} -inline void RecognitionAudio::set_has_uri() { - _oneof_case_[0] = kUri; -} -inline void RecognitionAudio::clear_uri() { - if (_internal_has_uri()) { - audio_source_.uri_.Destroy(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); - clear_has_audio_source(); - } -} -inline const std::string& RecognitionAudio::uri() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognitionAudio.uri) - return _internal_uri(); -} -inline void RecognitionAudio::set_uri(const std::string& value) { - _internal_set_uri(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.RecognitionAudio.uri) -} -inline std::string* RecognitionAudio::mutable_uri() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.RecognitionAudio.uri) - return _internal_mutable_uri(); -} -inline const std::string& RecognitionAudio::_internal_uri() const { - if (_internal_has_uri()) { - return audio_source_.uri_.Get(); - } - return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(); -} -inline void RecognitionAudio::_internal_set_uri(const std::string& value) { - if (!_internal_has_uri()) { - clear_audio_source(); - set_has_uri(); - audio_source_.uri_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - audio_source_.uri_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, - GetArenaNoVirtual()); -} -inline void RecognitionAudio::set_uri(std::string&& value) { - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.RecognitionAudio.uri) - if (!_internal_has_uri()) { - clear_audio_source(); - set_has_uri(); - audio_source_.uri_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - audio_source_.uri_.Set( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_rvalue:google.cloud.speech.v1.RecognitionAudio.uri) -} -inline void RecognitionAudio::set_uri(const char* value) { - GOOGLE_DCHECK(value != nullptr); - if (!_internal_has_uri()) { - clear_audio_source(); - set_has_uri(); - audio_source_.uri_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - audio_source_.uri_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - ::std::string(value), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_char:google.cloud.speech.v1.RecognitionAudio.uri) -} -inline void RecognitionAudio::set_uri(const char* value, - size_t size) { - if (!_internal_has_uri()) { - clear_audio_source(); - set_has_uri(); - audio_source_.uri_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - audio_source_.uri_.Set( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( - reinterpret_cast(value), size), - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_pointer:google.cloud.speech.v1.RecognitionAudio.uri) -} -inline std::string* RecognitionAudio::_internal_mutable_uri() { - if (!_internal_has_uri()) { - clear_audio_source(); - set_has_uri(); - audio_source_.uri_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - return audio_source_.uri_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); -} -inline std::string* RecognitionAudio::release_uri() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.RecognitionAudio.uri) - if (_internal_has_uri()) { - clear_has_audio_source(); - return audio_source_.uri_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); - } else { - return nullptr; - } -} -inline void RecognitionAudio::set_allocated_uri(std::string* uri) { - if (has_audio_source()) { - clear_audio_source(); - } - if (uri != nullptr) { - set_has_uri(); - audio_source_.uri_.UnsafeSetDefault(uri); - } - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.RecognitionAudio.uri) -} -inline std::string* RecognitionAudio::unsafe_arena_release_uri() { - // @@protoc_insertion_point(field_unsafe_arena_release:google.cloud.speech.v1.RecognitionAudio.uri) - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - if (_internal_has_uri()) { - clear_has_audio_source(); - return audio_source_.uri_.UnsafeArenaRelease( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); - } else { - return nullptr; - } -} -inline void RecognitionAudio::unsafe_arena_set_allocated_uri(std::string* uri) { - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - if (!_internal_has_uri()) { - audio_source_.uri_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); - } - clear_audio_source(); - if (uri) { - set_has_uri(); - audio_source_.uri_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), uri, GetArenaNoVirtual()); - } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.RecognitionAudio.uri) -} - -inline bool RecognitionAudio::has_audio_source() const { - return audio_source_case() != AUDIO_SOURCE_NOT_SET; -} -inline void RecognitionAudio::clear_has_audio_source() { - _oneof_case_[0] = AUDIO_SOURCE_NOT_SET; -} -inline RecognitionAudio::AudioSourceCase RecognitionAudio::audio_source_case() const { - return RecognitionAudio::AudioSourceCase(_oneof_case_[0]); -} -// ------------------------------------------------------------------- - -// RecognizeResponse - -// repeated .google.cloud.speech.v1.SpeechRecognitionResult results = 2; -inline int RecognizeResponse::_internal_results_size() const { - return results_.size(); -} -inline int RecognizeResponse::results_size() const { - return _internal_results_size(); -} -inline void RecognizeResponse::clear_results() { - results_.Clear(); -} -inline ::google::cloud::speech::v1::SpeechRecognitionResult* RecognizeResponse::mutable_results(int index) { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.RecognizeResponse.results) - return results_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechRecognitionResult >* -RecognizeResponse::mutable_results() { - // @@protoc_insertion_point(field_mutable_list:google.cloud.speech.v1.RecognizeResponse.results) - return &results_; -} -inline const ::google::cloud::speech::v1::SpeechRecognitionResult& RecognizeResponse::_internal_results(int index) const { - return results_.Get(index); -} -inline const ::google::cloud::speech::v1::SpeechRecognitionResult& RecognizeResponse::results(int index) const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognizeResponse.results) - return _internal_results(index); -} -inline ::google::cloud::speech::v1::SpeechRecognitionResult* RecognizeResponse::_internal_add_results() { - return results_.Add(); -} -inline ::google::cloud::speech::v1::SpeechRecognitionResult* RecognizeResponse::add_results() { - // @@protoc_insertion_point(field_add:google.cloud.speech.v1.RecognizeResponse.results) - return _internal_add_results(); -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechRecognitionResult >& -RecognizeResponse::results() const { - // @@protoc_insertion_point(field_list:google.cloud.speech.v1.RecognizeResponse.results) - return results_; -} - -// ------------------------------------------------------------------- - -// StreamingRecognizeResponse - -// .google.rpc.Status error = 1; -inline bool StreamingRecognizeResponse::_internal_has_error() const { - return this != internal_default_instance() && error_ != nullptr; -} -inline bool StreamingRecognizeResponse::has_error() const { - return _internal_has_error(); -} -inline const ::google::rpc::Status& StreamingRecognizeResponse::_internal_error() const { - const ::google::rpc::Status* p = error_; - return p != nullptr ? *p : *reinterpret_cast( - &::google::rpc::_Status_default_instance_); -} -inline const ::google::rpc::Status& StreamingRecognizeResponse::error() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.StreamingRecognizeResponse.error) - return _internal_error(); -} -inline ::google::rpc::Status* StreamingRecognizeResponse::release_error() { - auto temp = unsafe_arena_release_error(); - if (GetArenaNoVirtual() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } - return temp; -} -inline ::google::rpc::Status* StreamingRecognizeResponse::unsafe_arena_release_error() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.StreamingRecognizeResponse.error) - - ::google::rpc::Status* temp = error_; - error_ = nullptr; - return temp; -} -inline ::google::rpc::Status* StreamingRecognizeResponse::_internal_mutable_error() { - - if (error_ == nullptr) { - auto* p = CreateMaybeMessage<::google::rpc::Status>(GetArenaNoVirtual()); - error_ = p; - } - return error_; -} -inline ::google::rpc::Status* StreamingRecognizeResponse::mutable_error() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.StreamingRecognizeResponse.error) - return _internal_mutable_error(); -} -inline void StreamingRecognizeResponse::set_allocated_error(::google::rpc::Status* error) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); - if (message_arena == nullptr) { - delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(error_); - } - if (error) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr; - if (message_arena != submessage_arena) { - error = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, error, submessage_arena); - } - - } else { - - } - error_ = error; - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.StreamingRecognizeResponse.error) -} - -// repeated .google.cloud.speech.v1.StreamingRecognitionResult results = 2; -inline int StreamingRecognizeResponse::_internal_results_size() const { - return results_.size(); -} -inline int StreamingRecognizeResponse::results_size() const { - return _internal_results_size(); -} -inline void StreamingRecognizeResponse::clear_results() { - results_.Clear(); -} -inline ::google::cloud::speech::v1::StreamingRecognitionResult* StreamingRecognizeResponse::mutable_results(int index) { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.StreamingRecognizeResponse.results) - return results_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::StreamingRecognitionResult >* -StreamingRecognizeResponse::mutable_results() { - // @@protoc_insertion_point(field_mutable_list:google.cloud.speech.v1.StreamingRecognizeResponse.results) - return &results_; -} -inline const ::google::cloud::speech::v1::StreamingRecognitionResult& StreamingRecognizeResponse::_internal_results(int index) const { - return results_.Get(index); -} -inline const ::google::cloud::speech::v1::StreamingRecognitionResult& StreamingRecognizeResponse::results(int index) const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.StreamingRecognizeResponse.results) - return _internal_results(index); -} -inline ::google::cloud::speech::v1::StreamingRecognitionResult* StreamingRecognizeResponse::_internal_add_results() { - return results_.Add(); -} -inline ::google::cloud::speech::v1::StreamingRecognitionResult* StreamingRecognizeResponse::add_results() { - // @@protoc_insertion_point(field_add:google.cloud.speech.v1.StreamingRecognizeResponse.results) - return _internal_add_results(); -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::StreamingRecognitionResult >& -StreamingRecognizeResponse::results() const { - // @@protoc_insertion_point(field_list:google.cloud.speech.v1.StreamingRecognizeResponse.results) - return results_; -} - -// .google.cloud.speech.v1.StreamingRecognizeResponse.SpeechEventType speech_event_type = 4; -inline void StreamingRecognizeResponse::clear_speech_event_type() { - speech_event_type_ = 0; -} -inline ::google::cloud::speech::v1::StreamingRecognizeResponse_SpeechEventType StreamingRecognizeResponse::_internal_speech_event_type() const { - return static_cast< ::google::cloud::speech::v1::StreamingRecognizeResponse_SpeechEventType >(speech_event_type_); -} -inline ::google::cloud::speech::v1::StreamingRecognizeResponse_SpeechEventType StreamingRecognizeResponse::speech_event_type() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.StreamingRecognizeResponse.speech_event_type) - return _internal_speech_event_type(); -} -inline void StreamingRecognizeResponse::_internal_set_speech_event_type(::google::cloud::speech::v1::StreamingRecognizeResponse_SpeechEventType value) { - - speech_event_type_ = value; -} -inline void StreamingRecognizeResponse::set_speech_event_type(::google::cloud::speech::v1::StreamingRecognizeResponse_SpeechEventType value) { - _internal_set_speech_event_type(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.StreamingRecognizeResponse.speech_event_type) -} - -// ------------------------------------------------------------------- - -// StreamingRecognitionResult - -// repeated .google.cloud.speech.v1.SpeechRecognitionAlternative alternatives = 1; -inline int StreamingRecognitionResult::_internal_alternatives_size() const { - return alternatives_.size(); -} -inline int StreamingRecognitionResult::alternatives_size() const { - return _internal_alternatives_size(); -} -inline void StreamingRecognitionResult::clear_alternatives() { - alternatives_.Clear(); -} -inline ::google::cloud::speech::v1::SpeechRecognitionAlternative* StreamingRecognitionResult::mutable_alternatives(int index) { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.StreamingRecognitionResult.alternatives) - return alternatives_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechRecognitionAlternative >* -StreamingRecognitionResult::mutable_alternatives() { - // @@protoc_insertion_point(field_mutable_list:google.cloud.speech.v1.StreamingRecognitionResult.alternatives) - return &alternatives_; -} -inline const ::google::cloud::speech::v1::SpeechRecognitionAlternative& StreamingRecognitionResult::_internal_alternatives(int index) const { - return alternatives_.Get(index); -} -inline const ::google::cloud::speech::v1::SpeechRecognitionAlternative& StreamingRecognitionResult::alternatives(int index) const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.StreamingRecognitionResult.alternatives) - return _internal_alternatives(index); -} -inline ::google::cloud::speech::v1::SpeechRecognitionAlternative* StreamingRecognitionResult::_internal_add_alternatives() { - return alternatives_.Add(); -} -inline ::google::cloud::speech::v1::SpeechRecognitionAlternative* StreamingRecognitionResult::add_alternatives() { - // @@protoc_insertion_point(field_add:google.cloud.speech.v1.StreamingRecognitionResult.alternatives) - return _internal_add_alternatives(); -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechRecognitionAlternative >& -StreamingRecognitionResult::alternatives() const { - // @@protoc_insertion_point(field_list:google.cloud.speech.v1.StreamingRecognitionResult.alternatives) - return alternatives_; -} - -// bool is_final = 2; -inline void StreamingRecognitionResult::clear_is_final() { - is_final_ = false; -} -inline bool StreamingRecognitionResult::_internal_is_final() const { - return is_final_; -} -inline bool StreamingRecognitionResult::is_final() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.StreamingRecognitionResult.is_final) - return _internal_is_final(); -} -inline void StreamingRecognitionResult::_internal_set_is_final(bool value) { - - is_final_ = value; -} -inline void StreamingRecognitionResult::set_is_final(bool value) { - _internal_set_is_final(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.StreamingRecognitionResult.is_final) -} - -// float stability = 3; -inline void StreamingRecognitionResult::clear_stability() { - stability_ = 0; -} -inline float StreamingRecognitionResult::_internal_stability() const { - return stability_; -} -inline float StreamingRecognitionResult::stability() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.StreamingRecognitionResult.stability) - return _internal_stability(); -} -inline void StreamingRecognitionResult::_internal_set_stability(float value) { - - stability_ = value; -} -inline void StreamingRecognitionResult::set_stability(float value) { - _internal_set_stability(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.StreamingRecognitionResult.stability) -} - -// .google.cloud.speech.v1.StreamingRecognitionResult.ResultFinalizationCause result_finalization_cause = 4; -inline void StreamingRecognitionResult::clear_result_finalization_cause() { - result_finalization_cause_ = 0; -} -inline ::google::cloud::speech::v1::StreamingRecognitionResult_ResultFinalizationCause StreamingRecognitionResult::_internal_result_finalization_cause() const { - return static_cast< ::google::cloud::speech::v1::StreamingRecognitionResult_ResultFinalizationCause >(result_finalization_cause_); -} -inline ::google::cloud::speech::v1::StreamingRecognitionResult_ResultFinalizationCause StreamingRecognitionResult::result_finalization_cause() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.StreamingRecognitionResult.result_finalization_cause) - return _internal_result_finalization_cause(); -} -inline void StreamingRecognitionResult::_internal_set_result_finalization_cause(::google::cloud::speech::v1::StreamingRecognitionResult_ResultFinalizationCause value) { - - result_finalization_cause_ = value; -} -inline void StreamingRecognitionResult::set_result_finalization_cause(::google::cloud::speech::v1::StreamingRecognitionResult_ResultFinalizationCause value) { - _internal_set_result_finalization_cause(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.StreamingRecognitionResult.result_finalization_cause) -} - -// repeated .google.cloud.speech.v1.RecognitionLattice lattice = 5; -inline int StreamingRecognitionResult::_internal_lattice_size() const { - return lattice_.size(); -} -inline int StreamingRecognitionResult::lattice_size() const { - return _internal_lattice_size(); -} -inline void StreamingRecognitionResult::clear_lattice() { - lattice_.Clear(); -} -inline ::google::cloud::speech::v1::RecognitionLattice* StreamingRecognitionResult::mutable_lattice(int index) { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.StreamingRecognitionResult.lattice) - return lattice_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::RecognitionLattice >* -StreamingRecognitionResult::mutable_lattice() { - // @@protoc_insertion_point(field_mutable_list:google.cloud.speech.v1.StreamingRecognitionResult.lattice) - return &lattice_; -} -inline const ::google::cloud::speech::v1::RecognitionLattice& StreamingRecognitionResult::_internal_lattice(int index) const { - return lattice_.Get(index); -} -inline const ::google::cloud::speech::v1::RecognitionLattice& StreamingRecognitionResult::lattice(int index) const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.StreamingRecognitionResult.lattice) - return _internal_lattice(index); -} -inline ::google::cloud::speech::v1::RecognitionLattice* StreamingRecognitionResult::_internal_add_lattice() { - return lattice_.Add(); -} -inline ::google::cloud::speech::v1::RecognitionLattice* StreamingRecognitionResult::add_lattice() { - // @@protoc_insertion_point(field_add:google.cloud.speech.v1.StreamingRecognitionResult.lattice) - return _internal_add_lattice(); -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::RecognitionLattice >& -StreamingRecognitionResult::lattice() const { - // @@protoc_insertion_point(field_list:google.cloud.speech.v1.StreamingRecognitionResult.lattice) - return lattice_; -} - -// ------------------------------------------------------------------- - -// SpeechRecognitionResult - -// repeated .google.cloud.speech.v1.SpeechRecognitionAlternative alternatives = 1; -inline int SpeechRecognitionResult::_internal_alternatives_size() const { - return alternatives_.size(); -} -inline int SpeechRecognitionResult::alternatives_size() const { - return _internal_alternatives_size(); -} -inline void SpeechRecognitionResult::clear_alternatives() { - alternatives_.Clear(); -} -inline ::google::cloud::speech::v1::SpeechRecognitionAlternative* SpeechRecognitionResult::mutable_alternatives(int index) { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.SpeechRecognitionResult.alternatives) - return alternatives_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechRecognitionAlternative >* -SpeechRecognitionResult::mutable_alternatives() { - // @@protoc_insertion_point(field_mutable_list:google.cloud.speech.v1.SpeechRecognitionResult.alternatives) - return &alternatives_; -} -inline const ::google::cloud::speech::v1::SpeechRecognitionAlternative& SpeechRecognitionResult::_internal_alternatives(int index) const { - return alternatives_.Get(index); -} -inline const ::google::cloud::speech::v1::SpeechRecognitionAlternative& SpeechRecognitionResult::alternatives(int index) const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.SpeechRecognitionResult.alternatives) - return _internal_alternatives(index); -} -inline ::google::cloud::speech::v1::SpeechRecognitionAlternative* SpeechRecognitionResult::_internal_add_alternatives() { - return alternatives_.Add(); -} -inline ::google::cloud::speech::v1::SpeechRecognitionAlternative* SpeechRecognitionResult::add_alternatives() { - // @@protoc_insertion_point(field_add:google.cloud.speech.v1.SpeechRecognitionResult.alternatives) - return _internal_add_alternatives(); -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::SpeechRecognitionAlternative >& -SpeechRecognitionResult::alternatives() const { - // @@protoc_insertion_point(field_list:google.cloud.speech.v1.SpeechRecognitionResult.alternatives) - return alternatives_; -} - -// repeated .google.cloud.speech.v1.RecognitionLattice lattice = 5; -inline int SpeechRecognitionResult::_internal_lattice_size() const { - return lattice_.size(); -} -inline int SpeechRecognitionResult::lattice_size() const { - return _internal_lattice_size(); -} -inline void SpeechRecognitionResult::clear_lattice() { - lattice_.Clear(); -} -inline ::google::cloud::speech::v1::RecognitionLattice* SpeechRecognitionResult::mutable_lattice(int index) { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.SpeechRecognitionResult.lattice) - return lattice_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::RecognitionLattice >* -SpeechRecognitionResult::mutable_lattice() { - // @@protoc_insertion_point(field_mutable_list:google.cloud.speech.v1.SpeechRecognitionResult.lattice) - return &lattice_; -} -inline const ::google::cloud::speech::v1::RecognitionLattice& SpeechRecognitionResult::_internal_lattice(int index) const { - return lattice_.Get(index); -} -inline const ::google::cloud::speech::v1::RecognitionLattice& SpeechRecognitionResult::lattice(int index) const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.SpeechRecognitionResult.lattice) - return _internal_lattice(index); -} -inline ::google::cloud::speech::v1::RecognitionLattice* SpeechRecognitionResult::_internal_add_lattice() { - return lattice_.Add(); -} -inline ::google::cloud::speech::v1::RecognitionLattice* SpeechRecognitionResult::add_lattice() { - // @@protoc_insertion_point(field_add:google.cloud.speech.v1.SpeechRecognitionResult.lattice) - return _internal_add_lattice(); -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::RecognitionLattice >& -SpeechRecognitionResult::lattice() const { - // @@protoc_insertion_point(field_list:google.cloud.speech.v1.SpeechRecognitionResult.lattice) - return lattice_; -} - -// ------------------------------------------------------------------- - -// SpeechRecognitionAlternative - -// string transcript = 1; -inline void SpeechRecognitionAlternative::clear_transcript() { - transcript_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline const std::string& SpeechRecognitionAlternative::transcript() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.SpeechRecognitionAlternative.transcript) - return _internal_transcript(); -} -inline void SpeechRecognitionAlternative::set_transcript(const std::string& value) { - _internal_set_transcript(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.SpeechRecognitionAlternative.transcript) -} -inline std::string* SpeechRecognitionAlternative::mutable_transcript() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.SpeechRecognitionAlternative.transcript) - return _internal_mutable_transcript(); -} -inline const std::string& SpeechRecognitionAlternative::_internal_transcript() const { - return transcript_.Get(); -} -inline void SpeechRecognitionAlternative::_internal_set_transcript(const std::string& value) { - - transcript_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual()); -} -inline void SpeechRecognitionAlternative::set_transcript(std::string&& value) { - - transcript_.Set( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_rvalue:google.cloud.speech.v1.SpeechRecognitionAlternative.transcript) -} -inline void SpeechRecognitionAlternative::set_transcript(const char* value) { - GOOGLE_DCHECK(value != nullptr); - - transcript_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value), - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_char:google.cloud.speech.v1.SpeechRecognitionAlternative.transcript) -} -inline void SpeechRecognitionAlternative::set_transcript(const char* value, - size_t size) { - - transcript_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( - reinterpret_cast(value), size), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_pointer:google.cloud.speech.v1.SpeechRecognitionAlternative.transcript) -} -inline std::string* SpeechRecognitionAlternative::_internal_mutable_transcript() { - - return transcript_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline std::string* SpeechRecognitionAlternative::release_transcript() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.SpeechRecognitionAlternative.transcript) - - return transcript_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline void SpeechRecognitionAlternative::set_allocated_transcript(std::string* transcript) { - if (transcript != nullptr) { - - } else { - - } - transcript_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), transcript, - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.SpeechRecognitionAlternative.transcript) -} -inline std::string* SpeechRecognitionAlternative::unsafe_arena_release_transcript() { - // @@protoc_insertion_point(field_unsafe_arena_release:google.cloud.speech.v1.SpeechRecognitionAlternative.transcript) - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - - return transcript_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); -} -inline void SpeechRecognitionAlternative::unsafe_arena_set_allocated_transcript( - std::string* transcript) { - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - if (transcript != nullptr) { - - } else { - - } - transcript_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - transcript, GetArenaNoVirtual()); - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.SpeechRecognitionAlternative.transcript) -} - -// float confidence = 2; -inline void SpeechRecognitionAlternative::clear_confidence() { - confidence_ = 0; -} -inline float SpeechRecognitionAlternative::_internal_confidence() const { - return confidence_; -} -inline float SpeechRecognitionAlternative::confidence() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.SpeechRecognitionAlternative.confidence) - return _internal_confidence(); -} -inline void SpeechRecognitionAlternative::_internal_set_confidence(float value) { - - confidence_ = value; -} -inline void SpeechRecognitionAlternative::set_confidence(float value) { - _internal_set_confidence(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.SpeechRecognitionAlternative.confidence) -} - -// repeated .google.cloud.speech.v1.WordInfo words = 3; -inline int SpeechRecognitionAlternative::_internal_words_size() const { - return words_.size(); -} -inline int SpeechRecognitionAlternative::words_size() const { - return _internal_words_size(); -} -inline void SpeechRecognitionAlternative::clear_words() { - words_.Clear(); -} -inline ::google::cloud::speech::v1::WordInfo* SpeechRecognitionAlternative::mutable_words(int index) { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.SpeechRecognitionAlternative.words) - return words_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::WordInfo >* -SpeechRecognitionAlternative::mutable_words() { - // @@protoc_insertion_point(field_mutable_list:google.cloud.speech.v1.SpeechRecognitionAlternative.words) - return &words_; -} -inline const ::google::cloud::speech::v1::WordInfo& SpeechRecognitionAlternative::_internal_words(int index) const { - return words_.Get(index); -} -inline const ::google::cloud::speech::v1::WordInfo& SpeechRecognitionAlternative::words(int index) const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.SpeechRecognitionAlternative.words) - return _internal_words(index); -} -inline ::google::cloud::speech::v1::WordInfo* SpeechRecognitionAlternative::_internal_add_words() { - return words_.Add(); -} -inline ::google::cloud::speech::v1::WordInfo* SpeechRecognitionAlternative::add_words() { - // @@protoc_insertion_point(field_add:google.cloud.speech.v1.SpeechRecognitionAlternative.words) - return _internal_add_words(); -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::WordInfo >& -SpeechRecognitionAlternative::words() const { - // @@protoc_insertion_point(field_list:google.cloud.speech.v1.SpeechRecognitionAlternative.words) - return words_; -} - -// ------------------------------------------------------------------- - -// WordInfo - -// .google.protobuf.Duration start_time = 1; -inline bool WordInfo::_internal_has_start_time() const { - return this != internal_default_instance() && start_time_ != nullptr; -} -inline bool WordInfo::has_start_time() const { - return _internal_has_start_time(); -} -inline const PROTOBUF_NAMESPACE_ID::Duration& WordInfo::_internal_start_time() const { - const PROTOBUF_NAMESPACE_ID::Duration* p = start_time_; - return p != nullptr ? *p : *reinterpret_cast( - &PROTOBUF_NAMESPACE_ID::_Duration_default_instance_); -} -inline const PROTOBUF_NAMESPACE_ID::Duration& WordInfo::start_time() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.WordInfo.start_time) - return _internal_start_time(); -} -inline PROTOBUF_NAMESPACE_ID::Duration* WordInfo::release_start_time() { - auto temp = unsafe_arena_release_start_time(); - if (GetArenaNoVirtual() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } - return temp; -} -inline PROTOBUF_NAMESPACE_ID::Duration* WordInfo::unsafe_arena_release_start_time() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.WordInfo.start_time) - - PROTOBUF_NAMESPACE_ID::Duration* temp = start_time_; - start_time_ = nullptr; - return temp; -} -inline PROTOBUF_NAMESPACE_ID::Duration* WordInfo::_internal_mutable_start_time() { - - if (start_time_ == nullptr) { - auto* p = CreateMaybeMessage(GetArenaNoVirtual()); - start_time_ = p; - } - return start_time_; -} -inline PROTOBUF_NAMESPACE_ID::Duration* WordInfo::mutable_start_time() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.WordInfo.start_time) - return _internal_mutable_start_time(); -} -inline void WordInfo::set_allocated_start_time(PROTOBUF_NAMESPACE_ID::Duration* start_time) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); - if (message_arena == nullptr) { - delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(start_time_); - } - if (start_time) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(start_time)->GetArena(); - if (message_arena != submessage_arena) { - start_time = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, start_time, submessage_arena); - } - - } else { - - } - start_time_ = start_time; - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.WordInfo.start_time) -} - -// .google.protobuf.Duration end_time = 2; -inline bool WordInfo::_internal_has_end_time() const { - return this != internal_default_instance() && end_time_ != nullptr; -} -inline bool WordInfo::has_end_time() const { - return _internal_has_end_time(); -} -inline const PROTOBUF_NAMESPACE_ID::Duration& WordInfo::_internal_end_time() const { - const PROTOBUF_NAMESPACE_ID::Duration* p = end_time_; - return p != nullptr ? *p : *reinterpret_cast( - &PROTOBUF_NAMESPACE_ID::_Duration_default_instance_); -} -inline const PROTOBUF_NAMESPACE_ID::Duration& WordInfo::end_time() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.WordInfo.end_time) - return _internal_end_time(); -} -inline PROTOBUF_NAMESPACE_ID::Duration* WordInfo::release_end_time() { - auto temp = unsafe_arena_release_end_time(); - if (GetArenaNoVirtual() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - } - return temp; -} -inline PROTOBUF_NAMESPACE_ID::Duration* WordInfo::unsafe_arena_release_end_time() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.WordInfo.end_time) - - PROTOBUF_NAMESPACE_ID::Duration* temp = end_time_; - end_time_ = nullptr; - return temp; -} -inline PROTOBUF_NAMESPACE_ID::Duration* WordInfo::_internal_mutable_end_time() { - - if (end_time_ == nullptr) { - auto* p = CreateMaybeMessage(GetArenaNoVirtual()); - end_time_ = p; - } - return end_time_; -} -inline PROTOBUF_NAMESPACE_ID::Duration* WordInfo::mutable_end_time() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.WordInfo.end_time) - return _internal_mutable_end_time(); -} -inline void WordInfo::set_allocated_end_time(PROTOBUF_NAMESPACE_ID::Duration* end_time) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual(); - if (message_arena == nullptr) { - delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(end_time_); - } - if (end_time) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(end_time)->GetArena(); - if (message_arena != submessage_arena) { - end_time = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, end_time, submessage_arena); - } - - } else { - - } - end_time_ = end_time; - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.WordInfo.end_time) -} - -// string word = 3; -inline void WordInfo::clear_word() { - word_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline const std::string& WordInfo::word() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.WordInfo.word) - return _internal_word(); -} -inline void WordInfo::set_word(const std::string& value) { - _internal_set_word(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.WordInfo.word) -} -inline std::string* WordInfo::mutable_word() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.WordInfo.word) - return _internal_mutable_word(); -} -inline const std::string& WordInfo::_internal_word() const { - return word_.Get(); -} -inline void WordInfo::_internal_set_word(const std::string& value) { - - word_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual()); -} -inline void WordInfo::set_word(std::string&& value) { - - word_.Set( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_rvalue:google.cloud.speech.v1.WordInfo.word) -} -inline void WordInfo::set_word(const char* value) { - GOOGLE_DCHECK(value != nullptr); - - word_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value), - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_char:google.cloud.speech.v1.WordInfo.word) -} -inline void WordInfo::set_word(const char* value, - size_t size) { - - word_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( - reinterpret_cast(value), size), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_pointer:google.cloud.speech.v1.WordInfo.word) -} -inline std::string* WordInfo::_internal_mutable_word() { - - return word_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline std::string* WordInfo::release_word() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.WordInfo.word) - - return word_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline void WordInfo::set_allocated_word(std::string* word) { - if (word != nullptr) { - - } else { - - } - word_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), word, - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.WordInfo.word) -} -inline std::string* WordInfo::unsafe_arena_release_word() { - // @@protoc_insertion_point(field_unsafe_arena_release:google.cloud.speech.v1.WordInfo.word) - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - - return word_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); -} -inline void WordInfo::unsafe_arena_set_allocated_word( - std::string* word) { - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - if (word != nullptr) { - - } else { - - } - word_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - word, GetArenaNoVirtual()); - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.WordInfo.word) -} - -// ------------------------------------------------------------------- - -// RecognitionLattice - -// repeated int32 final_nodes = 1; -inline int RecognitionLattice::_internal_final_nodes_size() const { - return final_nodes_.size(); -} -inline int RecognitionLattice::final_nodes_size() const { - return _internal_final_nodes_size(); -} -inline void RecognitionLattice::clear_final_nodes() { - final_nodes_.Clear(); -} -inline ::PROTOBUF_NAMESPACE_ID::int32 RecognitionLattice::_internal_final_nodes(int index) const { - return final_nodes_.Get(index); -} -inline ::PROTOBUF_NAMESPACE_ID::int32 RecognitionLattice::final_nodes(int index) const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognitionLattice.final_nodes) - return _internal_final_nodes(index); -} -inline void RecognitionLattice::set_final_nodes(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) { - final_nodes_.Set(index, value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.RecognitionLattice.final_nodes) -} -inline void RecognitionLattice::_internal_add_final_nodes(::PROTOBUF_NAMESPACE_ID::int32 value) { - final_nodes_.Add(value); -} -inline void RecognitionLattice::add_final_nodes(::PROTOBUF_NAMESPACE_ID::int32 value) { - _internal_add_final_nodes(value); - // @@protoc_insertion_point(field_add:google.cloud.speech.v1.RecognitionLattice.final_nodes) -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >& -RecognitionLattice::_internal_final_nodes() const { - return final_nodes_; -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >& -RecognitionLattice::final_nodes() const { - // @@protoc_insertion_point(field_list:google.cloud.speech.v1.RecognitionLattice.final_nodes) - return _internal_final_nodes(); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >* -RecognitionLattice::_internal_mutable_final_nodes() { - return &final_nodes_; -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >* -RecognitionLattice::mutable_final_nodes() { - // @@protoc_insertion_point(field_mutable_list:google.cloud.speech.v1.RecognitionLattice.final_nodes) - return _internal_mutable_final_nodes(); -} - -// repeated .google.cloud.speech.v1.LatticeEdge edges = 2; -inline int RecognitionLattice::_internal_edges_size() const { - return edges_.size(); -} -inline int RecognitionLattice::edges_size() const { - return _internal_edges_size(); -} -inline void RecognitionLattice::clear_edges() { - edges_.Clear(); -} -inline ::google::cloud::speech::v1::LatticeEdge* RecognitionLattice::mutable_edges(int index) { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.RecognitionLattice.edges) - return edges_.Mutable(index); -} -inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::LatticeEdge >* -RecognitionLattice::mutable_edges() { - // @@protoc_insertion_point(field_mutable_list:google.cloud.speech.v1.RecognitionLattice.edges) - return &edges_; -} -inline const ::google::cloud::speech::v1::LatticeEdge& RecognitionLattice::_internal_edges(int index) const { - return edges_.Get(index); -} -inline const ::google::cloud::speech::v1::LatticeEdge& RecognitionLattice::edges(int index) const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.RecognitionLattice.edges) - return _internal_edges(index); -} -inline ::google::cloud::speech::v1::LatticeEdge* RecognitionLattice::_internal_add_edges() { - return edges_.Add(); -} -inline ::google::cloud::speech::v1::LatticeEdge* RecognitionLattice::add_edges() { - // @@protoc_insertion_point(field_add:google.cloud.speech.v1.RecognitionLattice.edges) - return _internal_add_edges(); -} -inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::cloud::speech::v1::LatticeEdge >& -RecognitionLattice::edges() const { - // @@protoc_insertion_point(field_list:google.cloud.speech.v1.RecognitionLattice.edges) - return edges_; -} - -// ------------------------------------------------------------------- - -// LatticeEdge - -// int32 start_node = 1; -inline void LatticeEdge::clear_start_node() { - start_node_ = 0; -} -inline ::PROTOBUF_NAMESPACE_ID::int32 LatticeEdge::_internal_start_node() const { - return start_node_; -} -inline ::PROTOBUF_NAMESPACE_ID::int32 LatticeEdge::start_node() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.LatticeEdge.start_node) - return _internal_start_node(); -} -inline void LatticeEdge::_internal_set_start_node(::PROTOBUF_NAMESPACE_ID::int32 value) { - - start_node_ = value; -} -inline void LatticeEdge::set_start_node(::PROTOBUF_NAMESPACE_ID::int32 value) { - _internal_set_start_node(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.LatticeEdge.start_node) -} - -// int32 end_node = 2; -inline void LatticeEdge::clear_end_node() { - end_node_ = 0; -} -inline ::PROTOBUF_NAMESPACE_ID::int32 LatticeEdge::_internal_end_node() const { - return end_node_; -} -inline ::PROTOBUF_NAMESPACE_ID::int32 LatticeEdge::end_node() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.LatticeEdge.end_node) - return _internal_end_node(); -} -inline void LatticeEdge::_internal_set_end_node(::PROTOBUF_NAMESPACE_ID::int32 value) { - - end_node_ = value; -} -inline void LatticeEdge::set_end_node(::PROTOBUF_NAMESPACE_ID::int32 value) { - _internal_set_end_node(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.LatticeEdge.end_node) -} - -// string symbol = 3; -inline void LatticeEdge::clear_symbol() { - symbol_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline const std::string& LatticeEdge::symbol() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.LatticeEdge.symbol) - return _internal_symbol(); -} -inline void LatticeEdge::set_symbol(const std::string& value) { - _internal_set_symbol(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.LatticeEdge.symbol) -} -inline std::string* LatticeEdge::mutable_symbol() { - // @@protoc_insertion_point(field_mutable:google.cloud.speech.v1.LatticeEdge.symbol) - return _internal_mutable_symbol(); -} -inline const std::string& LatticeEdge::_internal_symbol() const { - return symbol_.Get(); -} -inline void LatticeEdge::_internal_set_symbol(const std::string& value) { - - symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual()); -} -inline void LatticeEdge::set_symbol(std::string&& value) { - - symbol_.Set( - &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_rvalue:google.cloud.speech.v1.LatticeEdge.symbol) -} -inline void LatticeEdge::set_symbol(const char* value) { - GOOGLE_DCHECK(value != nullptr); - - symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value), - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_char:google.cloud.speech.v1.LatticeEdge.symbol) -} -inline void LatticeEdge::set_symbol(const char* value, - size_t size) { - - symbol_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( - reinterpret_cast(value), size), GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_pointer:google.cloud.speech.v1.LatticeEdge.symbol) -} -inline std::string* LatticeEdge::_internal_mutable_symbol() { - - return symbol_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline std::string* LatticeEdge::release_symbol() { - // @@protoc_insertion_point(field_release:google.cloud.speech.v1.LatticeEdge.symbol) - - return symbol_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual()); -} -inline void LatticeEdge::set_allocated_symbol(std::string* symbol) { - if (symbol != nullptr) { - - } else { - - } - symbol_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), symbol, - GetArenaNoVirtual()); - // @@protoc_insertion_point(field_set_allocated:google.cloud.speech.v1.LatticeEdge.symbol) -} -inline std::string* LatticeEdge::unsafe_arena_release_symbol() { - // @@protoc_insertion_point(field_unsafe_arena_release:google.cloud.speech.v1.LatticeEdge.symbol) - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - - return symbol_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - GetArenaNoVirtual()); -} -inline void LatticeEdge::unsafe_arena_set_allocated_symbol( - std::string* symbol) { - GOOGLE_DCHECK(GetArenaNoVirtual() != nullptr); - if (symbol != nullptr) { - - } else { - - } - symbol_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), - symbol, GetArenaNoVirtual()); - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.cloud.speech.v1.LatticeEdge.symbol) -} - -// float language_cost = 4; -inline void LatticeEdge::clear_language_cost() { - language_cost_ = 0; -} -inline float LatticeEdge::_internal_language_cost() const { - return language_cost_; -} -inline float LatticeEdge::language_cost() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.LatticeEdge.language_cost) - return _internal_language_cost(); -} -inline void LatticeEdge::_internal_set_language_cost(float value) { - - language_cost_ = value; -} -inline void LatticeEdge::set_language_cost(float value) { - _internal_set_language_cost(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.LatticeEdge.language_cost) -} - -// float acoustic_cost = 5; -inline void LatticeEdge::clear_acoustic_cost() { - acoustic_cost_ = 0; -} -inline float LatticeEdge::_internal_acoustic_cost() const { - return acoustic_cost_; -} -inline float LatticeEdge::acoustic_cost() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.LatticeEdge.acoustic_cost) - return _internal_acoustic_cost(); -} -inline void LatticeEdge::_internal_set_acoustic_cost(float value) { - - acoustic_cost_ = value; -} -inline void LatticeEdge::set_acoustic_cost(float value) { - _internal_set_acoustic_cost(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.LatticeEdge.acoustic_cost) -} - -// int32 duration = 6; -inline void LatticeEdge::clear_duration() { - duration_ = 0; -} -inline ::PROTOBUF_NAMESPACE_ID::int32 LatticeEdge::_internal_duration() const { - return duration_; -} -inline ::PROTOBUF_NAMESPACE_ID::int32 LatticeEdge::duration() const { - // @@protoc_insertion_point(field_get:google.cloud.speech.v1.LatticeEdge.duration) - return _internal_duration(); -} -inline void LatticeEdge::_internal_set_duration(::PROTOBUF_NAMESPACE_ID::int32 value) { - - duration_ = value; -} -inline void LatticeEdge::set_duration(::PROTOBUF_NAMESPACE_ID::int32 value) { - _internal_set_duration(value); - // @@protoc_insertion_point(field_set:google.cloud.speech.v1.LatticeEdge.duration) -} - -#ifdef __GNUC__ - #pragma GCC diagnostic pop -#endif // __GNUC__ -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - -// ------------------------------------------------------------------- - - -// @@protoc_insertion_point(namespace_scope) - -} // namespace v1 -} // namespace speech -} // namespace cloud -} // namespace google - -PROTOBUF_NAMESPACE_OPEN - -template <> struct is_proto_enum< ::google::cloud::speech::v1::RecognitionConfig_AudioEncoding> : ::std::true_type {}; -template <> -inline const EnumDescriptor* GetEnumDescriptor< ::google::cloud::speech::v1::RecognitionConfig_AudioEncoding>() { - return ::google::cloud::speech::v1::RecognitionConfig_AudioEncoding_descriptor(); -} -template <> struct is_proto_enum< ::google::cloud::speech::v1::StreamingRecognizeResponse_SpeechEventType> : ::std::true_type {}; -template <> -inline const EnumDescriptor* GetEnumDescriptor< ::google::cloud::speech::v1::StreamingRecognizeResponse_SpeechEventType>() { - return ::google::cloud::speech::v1::StreamingRecognizeResponse_SpeechEventType_descriptor(); -} -template <> struct is_proto_enum< ::google::cloud::speech::v1::StreamingRecognitionResult_ResultFinalizationCause> : ::std::true_type {}; -template <> -inline const EnumDescriptor* GetEnumDescriptor< ::google::cloud::speech::v1::StreamingRecognitionResult_ResultFinalizationCause>() { - return ::google::cloud::speech::v1::StreamingRecognitionResult_ResultFinalizationCause_descriptor(); -} - -PROTOBUF_NAMESPACE_CLOSE - -// @@protoc_insertion_point(global_scope) - -#include -#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_dictation_5fasr_2eproto diff --git a/python/Dockerfile b/python/Dockerfile index 54ea78c..0a6a93c 100644 --- a/python/Dockerfile +++ b/python/Dockerfile @@ -2,9 +2,11 @@ FROM python:3.6-slim ARG DEBIAN_FRONTEND=noninteractive -ADD ./python /dictation_client_python +ADD ./python /dictation-client/python +ADD ./proto /dictation-client/proto +ADD ./submodules /dictation-client/submodules -WORKDIR /dictation_client_python +WORKDIR /dictation-client/python RUN ./setup.sh -y diff --git a/python/README.md b/python/README.md index a444df2..94d4aa7 100755 --- a/python/README.md +++ b/python/README.md @@ -90,9 +90,11 @@ Then install the required dependencies inside the virtual environment (this step Use Python 3 with the virtual environment and install required packages (supported Python versions are: 3.5, 3.6, 3.7, 3.8, 3.9): ``` -virtualenv -p python3 .env +python3 -m venv .env source .env/bin/activate -pip install -r requirements.txt +pip3 install --upgrade pip +pip3 install wheel +pip3 install -r requirements.txt ``` - On Windows 10: @@ -107,9 +109,11 @@ then confirm your choice. Use Python 3 with virtual environment and install required packages (supported Python versions are: 3.5, 3.6, 3.7, 3.8, 3.9): ``` -virtualenv -p python3 .env -.\.env\Scripts\activate -pip install -r requirements.txt +python3 -m venv .env +source .env/bin/activate +pip3 install --upgrade pip +pip3 install wheel +pip3 install -r requirements.txt ``` To switch back PowerShell's execution policy to the default, use command: @@ -120,12 +124,10 @@ Set-ExecutionPolicy Restricted ##### Proto sources -[Optional] To regenerate the sources from `.proto`, run: +To build the sources from `.proto`, run: ``` ./make_proto.sh ``` -This might be required when using other gRPC or Protocol Buffers version. - #### Run @@ -159,9 +161,9 @@ Available options: --service-address ADDRESS IP address and port (address:port) of a service the client will connect to. - --ssl-dir SSL_DIRECTORY - If set to a path with ssl credential files - (client.crt, client.key, ca.crt), use ssl + --tls-dir TLS_DIRECTORY + If set to a path with SSL/TLS credential files + (client.crt, client.key, ca.crt), use SSL/TLS authentication. Otherwise use insecure channel (default). --wave-path WAVE Path to wave file with speech to be recognized. Should diff --git a/python/docker/run_dictation_client_python.sh b/python/docker/run_dictation_client_python.sh index 8f1948d..27946da 100755 --- a/python/docker/run_dictation_client_python.sh +++ b/python/docker/run_dictation_client_python.sh @@ -7,7 +7,7 @@ set -euo pipefail IFS=$'\n\t' -IMAGE_VERSION=2.3.2 +IMAGE_VERSION=2.3.3 SCRIPT=$(realpath "$0") SCRIPTPATH=$(dirname "${SCRIPT}") @@ -23,7 +23,7 @@ Dictation ASR gRPC client ${IMAGE_VERSION} Uses a custom docker image instead of the default. -s=ADDRESS, --service-address=ADDRESS IP address and port (address:port) of a service the client will connect to. - -f=WAVE, --filename=WAVE + -f=WAVE, --filename=WAVE Name of the wave file with speech to be recognized. File should be inside 'wav' directory. Should be mono, 8kHz or 16kHz. -m, --mic Use microphone as an audio source (instead of wave file). --tls If set, uses tls authentication, otherwise use insecure channel (default). The tls credential files (client.crt, client.key, ca.crt) should be placed inside 'tls' directory. @@ -55,22 +55,22 @@ while getopts "f:hms:-:" optchar; do case "${optchar}" in -) case "${OPTARG}" in - custom-image=*) + custom-image=*) docker_image=${OPTARG#*=} ;; - help) - usage; exit 0 + help) + usage; exit 0 ;; - tls) + tls) opts+=( "--ssl-dir" "/volume/tls" ) ;; - time-offsets) + time-offsets) opts+=( "--time-offsets" ) ;; - single-utterance) + single-utterance) opts+=( "--single-utterance" ) ;; - interim-results) + interim-results) opts+=( "--interim-results" ) ;; mic) @@ -98,15 +98,15 @@ while getopts "f:hms:-:" optchar; do fi ;; esac;; - f) + f) val=${OPTARG#*=} opt=${OPTARG%=$val} opts+=( "--wave-path" "/volume/wav/${val##*/}" ) ;; - h) - usage; exit 0 + h) + usage; exit 0 ;; - m) + m) opts+=("--mic") set +e if [ ! -S /tmp/pulseaudio.socket ]; @@ -115,7 +115,7 @@ while getopts "f:hms:-:" optchar; do fi set -e ;; - s) + s) val=${OPTARG#*=} opt=${OPTARG%=$val} opts+=( "--service-address" "${val}" ) @@ -140,4 +140,4 @@ docker run --rm \ --group-add audio \ --network host \ "${docker_image}" \ -/dictation_client_python/run.sh "${opts[@]}" +/dictation-client/python/run.sh "${opts[@]}" diff --git a/python/make_proto.sh b/python/make_proto.sh index b1455e0..e0d9eea 100755 --- a/python/make_proto.sh +++ b/python/make_proto.sh @@ -3,10 +3,11 @@ set -eo pipefail -virtualenv -p python3 proto_env -# shellcheck disable=SC1091 -source proto_env/bin/activate -pip install grpcio-tools==1.7.0 +python3 -m venv proto_env +source .env/bin/activate +pip3 install --upgrade pip +pip3 install wheel +pip3 install grpcio-tools==1.38.1 function cleanup() { # shellcheck disable=SC1091 diff --git a/python/service/dictation_asr_pb2.py b/python/service/dictation_asr_pb2.py deleted file mode 100644 index 85421b9..0000000 --- a/python/service/dictation_asr_pb2.py +++ /dev/null @@ -1,1039 +0,0 @@ -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: dictation_asr.proto - -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -from google.protobuf import descriptor_pb2 -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 -from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 -from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='dictation_asr.proto', - package='google.cloud.speech.v1', - syntax='proto3', - serialized_pb=_b('\n\x13\x64ictation_asr.proto\x12\x16google.cloud.speech.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x17google/rpc/status.proto\"\x86\x01\n\x10RecognizeRequest\x12\x39\n\x06\x63onfig\x18\x01 \x01(\x0b\x32).google.cloud.speech.v1.RecognitionConfig\x12\x37\n\x05\x61udio\x18\x02 \x01(\x0b\x32(.google.cloud.speech.v1.RecognitionAudio\"\x99\x01\n\x19StreamingRecognizeRequest\x12N\n\x10streaming_config\x18\x01 \x01(\x0b\x32\x32.google.cloud.speech.v1.StreamingRecognitionConfigH\x00\x12\x17\n\raudio_content\x18\x02 \x01(\x0cH\x00\x42\x13\n\x11streaming_request\"\x8a\x01\n\x1aStreamingRecognitionConfig\x12\x39\n\x06\x63onfig\x18\x01 \x01(\x0b\x32).google.cloud.speech.v1.RecognitionConfig\x12\x18\n\x10single_utterance\x18\x02 \x01(\x08\x12\x17\n\x0finterim_results\x18\x03 \x01(\x08\"\xc4\x04\n\x11RecognitionConfig\x12I\n\x08\x65ncoding\x18\x01 \x01(\x0e\x32\x37.google.cloud.speech.v1.RecognitionConfig.AudioEncoding\x12\x19\n\x11sample_rate_hertz\x18\x02 \x01(\x05\x12\x15\n\rlanguage_code\x18\x03 \x01(\t\x12\x18\n\x10max_alternatives\x18\x04 \x01(\x05\x12\x18\n\x10profanity_filter\x18\x05 \x01(\x08\x12>\n\x0fspeech_contexts\x18\x06 \x03(\x0b\x32%.google.cloud.speech.v1.SpeechContext\x12 \n\x18\x65nable_word_time_offsets\x18\x08 \x01(\x08\x12$\n\x1c\x65nable_automatic_punctuation\x18\x0b \x01(\x08\x12:\n\rconfig_fields\x18\x0c \x03(\x0b\x32#.google.cloud.speech.v1.ConfigField\x12\r\n\x05model\x18\r \x01(\t\x12\x14\n\x0cuse_enhanced\x18\x0e \x01(\x08\"\x94\x01\n\rAudioEncoding\x12\x18\n\x14\x45NCODING_UNSPECIFIED\x10\x00\x12\x0c\n\x08LINEAR16\x10\x01\x12\x08\n\x04\x46LAC\x10\x02\x12\t\n\x05MULAW\x10\x03\x12\x07\n\x03\x41MR\x10\x04\x12\n\n\x06\x41MR_WB\x10\x05\x12\x0c\n\x08OGG_OPUS\x10\x06\x12\x1a\n\x16SPEEX_WITH_HEADER_BYTE\x10\x07\x12\x07\n\x03MP3\x10\x08\" \n\rSpeechContext\x12\x0f\n\x07phrases\x18\x01 \x03(\t\")\n\x0b\x43onfigField\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"D\n\x10RecognitionAudio\x12\x11\n\x07\x63ontent\x18\x01 \x01(\x0cH\x00\x12\r\n\x03uri\x18\x02 \x01(\tH\x00\x42\x0e\n\x0c\x61udio_source\"U\n\x11RecognizeResponse\x12@\n\x07results\x18\x02 \x03(\x0b\x32/.google.cloud.speech.v1.SpeechRecognitionResult\"\xb1\x02\n\x1aStreamingRecognizeResponse\x12!\n\x05\x65rror\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12\x43\n\x07results\x18\x02 \x03(\x0b\x32\x32.google.cloud.speech.v1.StreamingRecognitionResult\x12]\n\x11speech_event_type\x18\x04 \x01(\x0e\x32\x42.google.cloud.speech.v1.StreamingRecognizeResponse.SpeechEventType\"L\n\x0fSpeechEventType\x12\x1c\n\x18SPEECH_EVENT_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x45ND_OF_SINGLE_UTTERANCE\x10\x01\"\xe1\x03\n\x1aStreamingRecognitionResult\x12J\n\x0c\x61lternatives\x18\x01 \x03(\x0b\x32\x34.google.cloud.speech.v1.SpeechRecognitionAlternative\x12\x10\n\x08is_final\x18\x02 \x01(\x08\x12\x11\n\tstability\x18\x03 \x01(\x02\x12m\n\x19result_finalization_cause\x18\x04 \x01(\x0e\x32J.google.cloud.speech.v1.StreamingRecognitionResult.ResultFinalizationCause\x12;\n\x07lattice\x18\x05 \x03(\x0b\x32*.google.cloud.speech.v1.RecognitionLattice\"\xa5\x01\n\x17ResultFinalizationCause\x12)\n%RESULT_FINALIZATION_CAUSE_UNSPECIFIED\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\x14\n\x10NO_INPUT_TIMEOUT\x10\x02\x12\x13\n\x0fSUCCESS_MAXTIME\x10\x03\x12\x11\n\rPARTIAL_MATCH\x10\x04\x12\x14\n\x10NO_MATCH_MAXTIME\x10\x05\"\xa2\x01\n\x17SpeechRecognitionResult\x12J\n\x0c\x61lternatives\x18\x01 \x03(\x0b\x32\x34.google.cloud.speech.v1.SpeechRecognitionAlternative\x12;\n\x07lattice\x18\x05 \x03(\x0b\x32*.google.cloud.speech.v1.RecognitionLattice\"w\n\x1cSpeechRecognitionAlternative\x12\x12\n\ntranscript\x18\x01 \x01(\t\x12\x12\n\nconfidence\x18\x02 \x01(\x02\x12/\n\x05words\x18\x03 \x03(\x0b\x32 .google.cloud.speech.v1.WordInfo\"t\n\x08WordInfo\x12-\n\nstart_time\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12+\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0c\n\x04word\x18\x03 \x01(\t\"]\n\x12RecognitionLattice\x12\x13\n\x0b\x66inal_nodes\x18\x01 \x03(\x05\x12\x32\n\x05\x65\x64ges\x18\x02 \x03(\x0b\x32#.google.cloud.speech.v1.LatticeEdge\"\x83\x01\n\x0bLatticeEdge\x12\x12\n\nstart_node\x18\x01 \x01(\x05\x12\x10\n\x08\x65nd_node\x18\x02 \x01(\x05\x12\x0e\n\x06symbol\x18\x03 \x01(\t\x12\x15\n\rlanguage_cost\x18\x04 \x01(\x02\x12\x15\n\racoustic_cost\x18\x05 \x01(\x02\x12\x10\n\x08\x64uration\x18\x06 \x01(\x05\x32\x90\x02\n\x06Speech\x12\x81\x01\n\tRecognize\x12(.google.cloud.speech.v1.RecognizeRequest\x1a).google.cloud.speech.v1.RecognizeResponse\"\x1f\x82\xd3\xe4\x93\x02\x19\"\x14/v1/speech:recognize:\x01*\x12\x81\x01\n\x12StreamingRecognize\x12\x31.google.cloud.speech.v1.StreamingRecognizeRequest\x1a\x32.google.cloud.speech.v1.StreamingRecognizeResponse\"\x00(\x01\x30\x01\x42l\n\x1a\x63om.google.cloud.speech.v1B\x0bSpeechProtoP\x01Z Date: Wed, 18 Aug 2021 10:02:33 +0200 Subject: [PATCH 64/65] set version number to 2.3.4 --- CHANGELOG.md | 4 ++++ cpp/CMakeLists.txt | 2 +- cpp/README.md | 2 +- cpp/docker/run_dictation_client_cpp.sh | 2 +- cpp/libdictation-client/VERSION.h | 2 +- python/README.md | 4 ++-- python/VERSION.py | 2 +- python/docker/run_dictation_client_python.sh | 2 +- 8 files changed, 12 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00ff76b..a00a331 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ This changelog is intended for tracking content changes in whole repository. We are using single version and changelog for all components. Dev note: Remember to synchronize version in files: `python/VERSION.py` and `cpp/libdictation-client/VERSION.h` +## [2.3.4] - 2020-05-12 +### Changed + - [CPP, python] - renamed `ssl-dir` option [bool] to `tls-dir`. + ## [2.3.3] - 2021-08-01 ### Changed - [CPP] Upgrade Boost version to 1.74.0 diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index c035ddd..66ca346 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.5) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules" ${CMAKE_MODULE_PATH}) -project(dictation-client VERSION 2.3.2 LANGUAGES CXX) +project(dictation-client VERSION 2.3.4 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 14) diff --git a/cpp/README.md b/cpp/README.md index 2a561a6..120adf5 100644 --- a/cpp/README.md +++ b/cpp/README.md @@ -34,7 +34,7 @@ To prepare the docker image with C++ implementation of the Dictation Client, use When the build process is complete, following a message will be shown: ``` -Successfully tagged dictation-client-cpp:2.3.2 +Successfully tagged dictation-client-cpp:2.3.4 ``` ### Run Dictation client diff --git a/cpp/docker/run_dictation_client_cpp.sh b/cpp/docker/run_dictation_client_cpp.sh index 0904062..eae2046 100755 --- a/cpp/docker/run_dictation_client_cpp.sh +++ b/cpp/docker/run_dictation_client_cpp.sh @@ -7,7 +7,7 @@ set -euo pipefail IFS=$'\n\t' -IMAGE_VERSION=2.3.3 +IMAGE_VERSION="2.3.4" SCRIPT=$(realpath "$0") SCRIPTPATH=$(dirname "${SCRIPT}") diff --git a/cpp/libdictation-client/VERSION.h b/cpp/libdictation-client/VERSION.h index 7c88428..84dabcc 100644 --- a/cpp/libdictation-client/VERSION.h +++ b/cpp/libdictation-client/VERSION.h @@ -1 +1 @@ -static constexpr auto LIBDICTATION_CLIENT_VERSION = "2.3.3"; +static constexpr auto LIBDICTATION_CLIENT_VERSION = "2.3.4"; diff --git a/python/README.md b/python/README.md index 94d4aa7..1d6e25c 100755 --- a/python/README.md +++ b/python/README.md @@ -14,7 +14,7 @@ To prepare a docker image with Python implementation of the Dictation Client, us The build process will take several minutes. When the build process is complete, you will receive a message: ``` -Successfully tagged dictation-client-python:2.3.2 +Successfully tagged dictation-client-python:2.3.4 ``` ### Run Dictation client @@ -250,7 +250,7 @@ On the Linux operating systems using Advanced Linux Sound Architecture (ALSA) mi If you get the following output after runing request: ``` -Dictation ASR gRPC client 2.3.2 +Dictation ASR gRPC client 2.3.4 ALSA lib pcm_dsnoop.c:618:(snd_pcm_dsnoop_open) unable to open slave ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe diff --git a/python/VERSION.py b/python/VERSION.py index ed5cc17..4618fe6 100644 --- a/python/VERSION.py +++ b/python/VERSION.py @@ -1 +1 @@ -__version__ = "2.3.3" +__version__ = "2.3.4" diff --git a/python/docker/run_dictation_client_python.sh b/python/docker/run_dictation_client_python.sh index 27946da..bba1851 100755 --- a/python/docker/run_dictation_client_python.sh +++ b/python/docker/run_dictation_client_python.sh @@ -7,7 +7,7 @@ set -euo pipefail IFS=$'\n\t' -IMAGE_VERSION=2.3.3 +IMAGE_VERSION="2.3.4" SCRIPT=$(realpath "$0") SCRIPTPATH=$(dirname "${SCRIPT}") From a51acf4c5b6e59b8d24700f318d75a7b089d00f5 Mon Sep 17 00:00:00 2001 From: Jan Wozniak Date: Wed, 18 Aug 2021 10:19:19 +0200 Subject: [PATCH 65/65] rename options and variables from 'ssl' to 'tls' --- cpp/dictation-client/main.cpp | 6 +++--- cpp/docker/run_dictation_client_cpp.sh | 4 ++-- cpp/libdictation-client/dictation_client.cpp | 14 +++++++------- cpp/libdictation-client/dictation_client.h | 6 +++--- python/dictation_client.py | 6 +++--- python/docker/run_dictation_client_python.sh | 4 ++-- python/service/streaming_recognizer.py | 14 +++++++------- 7 files changed, 27 insertions(+), 27 deletions(-) diff --git a/cpp/dictation-client/main.cpp b/cpp/dictation-client/main.cpp index 2195858..6f198d0 100644 --- a/cpp/dictation-client/main.cpp +++ b/cpp/dictation-client/main.cpp @@ -76,8 +76,8 @@ po::options_description CreateOptionsDescription(void) { ("help", "Print help message.") ("service-address", po::value()->required(), "IP address and port (address:port) of a service the client will connect to.") - ("ssl-dir", po::value()->default_value(""), - "If set to a path with ssl credential files (client.crt, client.key, ca.crt), use ssl authentication. Otherwise use insecure channel (default).") + ("tls-dir", po::value()->default_value(""), + "If set to a path with SSL/TLS credential files (client.crt, client.key, ca.crt), use SSL/TLS authentication. Otherwise use insecure channel (default).") ("wav-path", po::value()->required(), "Path to wave file with audio content to be sent to service via RPC.") ("session-id", po::value()->default_value(""), @@ -129,7 +129,7 @@ int main(int argc, const char *const argv[]) { techmo::dictation::DictationClient dictation_client{ userOptions["service-address"].as(), - userOptions["ssl-dir"].as(), + userOptions["tls-dir"].as(), }; if (userOptions.count("streaming")) { diff --git a/cpp/docker/run_dictation_client_cpp.sh b/cpp/docker/run_dictation_client_cpp.sh index eae2046..eb28b47 100755 --- a/cpp/docker/run_dictation_client_cpp.sh +++ b/cpp/docker/run_dictation_client_cpp.sh @@ -24,7 +24,7 @@ Dictation ASR gRPC client options: Uses a custom docker image instead of the default. -s=ADDRESS, --service-address=ADDRESS IP address and port (address:port) of a service the client will connect to. - --tls If set, uses tls authentication, otherwise use insecure channel (default). The tls credential files (client.crt, client.key, ca.crt) should be placed inside 'tls' directory. + --tls If set, uses SSL/TLS authentication, otherwise use insecure channel (default). The tls credential files (client.crt, client.key, ca.crt) should be placed inside 'tls' directory. -f=WAVE, --filename=WAVE Path to wave file with audio content to be sent to service via RPC. --session-id=SESSION_ID @@ -56,7 +56,7 @@ while getopts "f:hs:-:" optchar; do usage; exit 0 ;; tls) - opts+=( "--ssl-dir" "/volume/tls" ) + opts+=( "--tls-dir" "/volume/tls" ) ;; time-offsets) opts+=( "--time-offsets=true" ) diff --git a/cpp/libdictation-client/dictation_client.cpp b/cpp/libdictation-client/dictation_client.cpp index 2ccac91..87605f9 100644 --- a/cpp/libdictation-client/dictation_client.cpp +++ b/cpp/libdictation-client/dictation_client.cpp @@ -23,15 +23,15 @@ namespace { } - std::shared_ptr create_channel_credentials(const std::string& ssl_directory) { - if (ssl_directory.empty()) + std::shared_ptr create_channel_credentials(const std::string& tls_directory) { + if (tls_directory.empty()) { return grpc::InsecureChannelCredentials(); } - std::string cert = read_file(ssl_directory + "/client.crt"); - std::string key = read_file(ssl_directory + "/client.key"); - std::string root = read_file(ssl_directory + "/ca.crt"); + std::string cert = read_file(tls_directory + "/client.crt"); + std::string key = read_file(tls_directory + "/client.key"); + std::string root = read_file(tls_directory + "/ca.crt"); grpc::SslCredentialsOptions opts = {root, key, cert}; return grpc::SslCredentials(opts); @@ -55,7 +55,7 @@ gsapi::RecognizeResponse DictationClient::Recognize(DictationSessionConfig& conf gsapi::RecognizeResponse response; - auto stub = gsapi::Speech::NewStub(grpc::CreateChannel(service_address_, create_channel_credentials(ssl_directory_))); + auto stub = gsapi::Speech::NewStub(grpc::CreateChannel(service_address_, create_channel_credentials(tls_directory_))); grpc::ClientContext context; prepare_context(context, config); @@ -71,7 +71,7 @@ gsapi::RecognizeResponse DictationClient::Recognize(DictationSessionConfig& conf std::vector DictationClient::StreamingRecognize(DictationSessionConfig& config, const WAV_DATA& wav_data) const { - auto stub = gsapi::Speech::NewStub(grpc::CreateChannel(service_address_, create_channel_credentials(ssl_directory_))); + auto stub = gsapi::Speech::NewStub(grpc::CreateChannel(service_address_, create_channel_credentials(tls_directory_))); grpc::ClientContext context; prepare_context(context, config); diff --git a/cpp/libdictation-client/dictation_client.h b/cpp/libdictation-client/dictation_client.h index dbba625..3c45612 100644 --- a/cpp/libdictation-client/dictation_client.h +++ b/cpp/libdictation-client/dictation_client.h @@ -29,9 +29,9 @@ struct DictationSessionConfig { class DictationClient { public: - DictationClient(const std::string& service_address, const std::string& ssl_directory) + DictationClient(const std::string& service_address, const std::string& tls_directory) : service_address_{ service_address } - , ssl_directory_{ ssl_directory } + , tls_directory_{ tls_directory } { } @@ -43,7 +43,7 @@ class DictationClient { DictationClient(); // Disable default constructor. const std::string service_address_; // IP address and port (address:port) of a service the client will connect to. - const std::string ssl_directory_; + const std::string tls_directory_; }; }} diff --git a/python/dictation_client.py b/python/dictation_client.py index e926da6..ca18127 100755 --- a/python/dictation_client.py +++ b/python/dictation_client.py @@ -41,8 +41,8 @@ def create_audio_stream(args): parser = ArgumentParser() parser.add_argument("--service-address", dest="address", required=True, help="IP address and port (address:port) of a service the client will connect to.", type=str) - parser.add_argument("--ssl-dir", dest="ssl_directory", default="", - help="If set to a path with ssl credential files (client.crt, client.key, ca.crt), use ssl authentication. Otherwise use insecure channel (default).", type=str) + parser.add_argument("--tls-dir", dest="tls_directory", default="", + help="If set to a path with SSL/TLS credential files (client.crt, client.key, ca.crt), use SSL/TLS authentication. Otherwise use insecure channel (default).", type=str) parser.add_argument("--wave-path", dest="wave", help="Path to wave file with speech to be recognized. Should be mono, 8kHz or 16kHz.") parser.add_argument("--mic", help="Use microphone as an audio source (instead of wave file).", action='store_true') @@ -76,7 +76,7 @@ def create_audio_stream(args): if args.wave is not None or args.mic: with create_audio_stream(args) as stream: settings = DictationSettings(args) - recognizer = StreamingRecognizer(args.address, args.ssl_directory, settings) + recognizer = StreamingRecognizer(args.address, args.tls_directory, settings) print('Recognizing...') results = recognizer.recognize(stream) diff --git a/python/docker/run_dictation_client_python.sh b/python/docker/run_dictation_client_python.sh index bba1851..1a67197 100755 --- a/python/docker/run_dictation_client_python.sh +++ b/python/docker/run_dictation_client_python.sh @@ -26,7 +26,7 @@ Dictation ASR gRPC client ${IMAGE_VERSION} -f=WAVE, --filename=WAVE Name of the wave file with speech to be recognized. File should be inside 'wav' directory. Should be mono, 8kHz or 16kHz. -m, --mic Use microphone as an audio source (instead of wave file). - --tls If set, uses tls authentication, otherwise use insecure channel (default). The tls credential files (client.crt, client.key, ca.crt) should be placed inside 'tls' directory. + --tls If set, uses SSL/TLS authentication, otherwise use insecure channel (default). The tls credential files (client.crt, client.key, ca.crt) should be placed inside 'tls' directory. --session-id=SESSION_ID Session ID to be passed to the service. If not specified, the service will generate a default session ID itself. --grpc-timeout=GRPC_TIMEOUT @@ -62,7 +62,7 @@ while getopts "f:hms:-:" optchar; do usage; exit 0 ;; tls) - opts+=( "--ssl-dir" "/volume/tls" ) + opts+=( "--tls-dir" "/volume/tls" ) ;; time-offsets) opts+=( "--time-offsets" ) diff --git a/python/service/streaming_recognizer.py b/python/service/streaming_recognizer.py index 46fd61e..2b3eb4b 100755 --- a/python/service/streaming_recognizer.py +++ b/python/service/streaming_recognizer.py @@ -45,9 +45,9 @@ def __next__(self): class StreamingRecognizer: - def __init__(self, address, ssl_directory, settings_args): + def __init__(self, address, tls_directory, settings_args): # Use ArgumentParser to parse settings - self.service = dictation_asr_pb2_grpc.SpeechStub(StreamingRecognizer.create_channel(address, ssl_directory)) + self.service = dictation_asr_pb2_grpc.SpeechStub(StreamingRecognizer.create_channel(address, tls_directory)) self.settings = settings_args def recognize(self, audio): @@ -109,8 +109,8 @@ def recognize_audio_content(self, requests_iterator): }] # array with one element @staticmethod - def create_channel(address, ssl_directory): - if not ssl_directory: + def create_channel(address, tls_directory): + if not tls_directory: return grpc.insecure_channel(address) def read_file(path): @@ -118,9 +118,9 @@ def read_file(path): return file.read() return grpc.secure_channel(address, grpc.ssl_channel_credentials( - read_file(os.path.join(ssl_directory, 'ca.crt')), - read_file(os.path.join(ssl_directory, 'client.key')), - read_file(os.path.join(ssl_directory, 'client.crt')), + read_file(os.path.join(tls_directory, 'ca.crt')), + read_file(os.path.join(tls_directory, 'client.key')), + read_file(os.path.join(tls_directory, 'client.crt')), )) @staticmethod