Skip to content

Add Speech Streaming API. - #2523

Closed
daspecster wants to merge 6 commits into
googleapis:masterfrom
daspecster:speech-streaming
Closed

Add Speech Streaming API.#2523
daspecster wants to merge 6 commits into
googleapis:masterfrom
daspecster:speech-streaming

Conversation

@daspecster

@daspecsterdaspecster commented Oct 10, 2016

Copy link
Copy Markdown
Contributor

One step closer to #2522.

Sorry this one is kind of rough.

I'm really not sure how to handle the interim_results for this. It ends up making for some weird object handling.

Update:
This was streamlined a lot. Results are just returned to the end user as they come in so for interim_results, you get the extra results.

@daspecsterdaspecster added do not merge Indicates a pull request not ready for merge, due to either quality or timing. api: speech Issues related to the Speech-to-Text API. labels Oct 10, 2016
@googlebotgooglebot added the cla: yes This human has signed the Contributor License Agreement. label Oct 10, 2016
@daspecsterdaspecster removed the do not merge Indicates a pull request not ready for merge, due to either quality or timing. label Oct 10, 2016
@daspecsterdaspecster mentioned this pull request Oct 11, 2016
14 tasks
@dhermes

Copy link
Copy Markdown
Contributor

😱
screen_shot_001

@daspecster

Copy link
Copy Markdown
ContributorAuthor

Yeah I know :( A good number of them are DTOs and tests for the DTOs. I can try and figure out a way to break this up if you want.

Comment threaddocs/speech-streaming.rst Outdated
@@ -0,0 +1,33 @@
Speech StreamingResponseContainer

This comment was marked as spam.

This comment was marked as spam.

Comment threaddocs/speech-streaming.rst Outdated
:undoc-members:
:show-inheritance:


This comment was marked as spam.

This comment was marked as spam.

Comment threaddocs/speech-usage.rst Outdated

>>> import io
>>> from google.cloud import speech
>>> from google.cloud.speech.encoding import Encoding

This comment was marked as spam.

This comment was marked as spam.

Comment threaddocs/speech-usage.rst Outdated
<google.cloud.speech.streaming.container.StreamingResponseContainer object at 0x10538ee10>
>>> print(stream_container.responses)
{0: <google.cloud.speech.streaming.response.StreamingSpeechResponse object at 0x10f9ac9d0>}
>>> print(stream_container.responses[0].results[0].alternatives[0].confidence)

This comment was marked as spam.

This comment was marked as spam.

Comment threaddocs/speech-usage.rst Outdated
0.698092460632
>>> print(stream_container.is_finished)
True
>>> print stream_container.get_full_text()

This comment was marked as spam.

This comment was marked as spam.

text = ''
for response in self.responses.values():
for result in response.results:
text += result.alternatives[0].transcript

This comment was marked as spam.

yield StreamingRecognizeRequest(audio_content=buff)
buff = data
else:
buff += data

This comment was marked as spam.

buff += data

# Clear final contents of buffer.
yield StreamingRecognizeRequest(audio_content=buff)

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

@@ -0,0 +1,183 @@
# Copyright 2016 Google Inc.

This comment was marked as spam.

This comment was marked as spam.

"""
def __init__(self, error, endpointer_type, results, result_index):
self._error = error
self._endpointer_type = endpointer_type # Should be enum.

This comment was marked as spam.

@daspecster
daspecsterforce-pushed the speech-streaming branch 4 times, most recently from ea0cb87 to 7acd247CompareOctober 13, 2016 20:42
@daspecster

Copy link
Copy Markdown
ContributorAuthor

@dhermes@tseaver PTAL when you have a chance.

@dhermes

Copy link
Copy Markdown
Contributor

Reviewing now

Comment threaddocs/speech-usage.rst Outdated
... sample_rate=16000)
... for response in client.stream_recognize(sample):
... print(response.transcript)
hello

This comment was marked as spam.

This comment was marked as spam.

Comment threaddocs/speech-usage.rst Outdated

By setting ``interim_results`` to true, interim results (tentative hypotheses)
may be returned as they become available (these interim results are indicated
with the is_final=false flag). If false or omitted, only is_final=true

This comment was marked as spam.

Comment threaddocs/speech-usage.rst Outdated
True


By setting ``interim_results`` to true, interim results (tentative hypotheses)

This comment was marked as spam.

Comment threaddocs/speech-usage.rst
... print(response.transcript)
hello
... print(response.is_final)
True

This comment was marked as spam.

Comment threadspeech/google/cloud/speech/client.py Outdated
interim_results=interim_results)

for response in self.speech_api.streaming_recognize(requests):
if hasattr(response, 'results') or interim_results:

This comment was marked as spam.

speech_context=None, single_utterance=False,
interim_results=False):
"""Streaming speech recognition.

This comment was marked as spam.

Comment threadspeech/google/cloud/speech/client.py Outdated
and phrases. This can also be used to add new
words to the vocabulary of the recognizer.

:type single_utterance: boolean

This comment was marked as spam.

Comment threadspeech/google/cloud/speech/client.py Outdated
words to the vocabulary of the recognizer.

:type single_utterance: boolean
:param single_utterance: [Optional] If false or omitted, the recognizer

This comment was marked as spam.

This comment was marked as spam.

Comment threadspeech/google/cloud/speech/client.py Outdated
data = sample.stream.read(sample.chunk_size)
if not data:
break
# Optimize the request data size to around 100ms.

This comment was marked as spam.

Comment threadspeech/google/cloud/speech/client.py Outdated
:param sample: Instance of ``Sample`` containing audio information.

:type language_code: str
:param language_code: (Optional) The language of the supplied audio as

This comment was marked as spam.

@daspecster

Copy link
Copy Markdown
ContributorAuthor

@dhermes LMKWYT when you get a chance. I think I got everything you mentioned.

@daspecster

Copy link
Copy Markdown
ContributorAuthor

image

Comment threaddocs/speech-usage.rst
====Response====
hell
False
====Repsonse====

This comment was marked as spam.

google.cloud.speech.v1beta1#endpointertype
"""
REVERSE_MAP = {v: k for k, v
in vars(StreamingRecognizeResponse.EndpointerType).items()}

This comment was marked as spam.

"""
if self.results and self.results[0].alternatives:
top_alternative = self.results[0].alternatives[0]
return top_alternative.transcript

This comment was marked as spam.

This comment was marked as spam.

Comment threaddocs/speech-usage.rst
... print(response.transcript)
... print(response.is_final)
hello
True

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

results = results or []
self._error = error
self._endpointer_type = EndpointerType.REVERSE_MAP.get(
endpointer_type, None)

This comment was marked as spam.

:param error: Instance of ``Status``

:type endpointer_type: :class:`~EndpointerType`
:param endpointer_type: Enum of endpointer event.

This comment was marked as spam.

top_alternative = self.results[0].alternatives[0]
return top_alternative.confidence
else:
return 0.0

This comment was marked as spam.

'google.cloud.pubsub.__init__',
'google.cloud.resource_manager.__init__',
'google.cloud.speech.__init__',
'google.cloud.speech.streaming.__init__',

This comment was marked as spam.

@daspecster
daspecster deleted the speech-streaming branch January 24, 2017 15:17
parthea pushed a commit that referenced this pull request Oct 21, 2023
* Tables Notebooks [(#2090)](GoogleCloudPlatform/python-docs-samples#2090)
* initial commit
* update census
* update notebooks
* remove the reference to a bug [(#2100)](GoogleCloudPlatform/python-docs-samples#2100)
as the bug has been fixed in the public client lib
* delete this file. [(#2102)](GoogleCloudPlatform/python-docs-samples#2102)
* rename file name [(#2103)](GoogleCloudPlatform/python-docs-samples#2103)
* trying to fix images [(#2101)](GoogleCloudPlatform/python-docs-samples#2101)
* remove typo in installation [(#2110)](GoogleCloudPlatform/python-docs-samples#2110)
* Rename census_income_prediction.ipynb to getting_started_notebook.ipynb [(#2115)](GoogleCloudPlatform/python-docs-samples#2115)
renaming the notebooks as Getting Started (will be in sync with the doc). It will be great if the folder could be renamed too
* added back missing file package import [(#2150)](GoogleCloudPlatform/python-docs-samples#2150)
* added back missing file import [(#2145)](GoogleCloudPlatform/python-docs-samples#2145)
* remove incorrect reference to Iris dataset [(#2203)](GoogleCloudPlatform/python-docs-samples#2203)
* conversion to jupyter/colab [(#2340)](GoogleCloudPlatform/python-docs-samples#2340)
plus bug fixes
* updated for the Jupyter support [(#2337)](GoogleCloudPlatform/python-docs-samples#2337)
* updated readme for support Jupyter [(#2336)](GoogleCloudPlatform/python-docs-samples#2336)
to approve with the updated notebook supporting jupyter
* conversion to jupyer/colab [(#2339)](GoogleCloudPlatform/python-docs-samples#2339)
plus bug fixes
* conversion of notebook for jupyter/Colab [(#2338)](GoogleCloudPlatform/python-docs-samples#2338)
conversion of the notebook to support both Jupyter and Colab + bug fixes
* [BLOCKED] AutoML Tables: Docs samples updated to use new (pending) client [(#2276)](GoogleCloudPlatform/python-docs-samples#2276)
* AutoML Tables: Docs samples updated to use new (pending) client
* Linter warnings
* add product recommendation for automl tables notebook [(#2257)](GoogleCloudPlatform/python-docs-samples#2257)
* added colab filtering notebook
* update to tables client
* update readme
* tell user to restart kernel for automl
* AutoML Tables: Notebook samples updated to use new tables client [(#2424)](GoogleCloudPlatform/python-docs-samples#2424)
* fix users bug and emphasize kernal restart [(#2407)](GoogleCloudPlatform/python-docs-samples#2407)
* fix problems with automl docs [(#2501)](GoogleCloudPlatform/python-docs-samples#2501)
Today when we try to use the function `batch_predict` follow the docs we receive and error saying: `the paramaters should be a pandas.Dataframe` it’s happens because the first parameter of the function `batch_predict` is a pandas.Dataframe. To solve this problem we need to use de named parameters of python.
* Fix typo in GCS URI parameter [(#2459)](GoogleCloudPlatform/python-docs-samples#2459)
* fix: fix tables notebook links and bugs [(#2601)](GoogleCloudPlatform/python-docs-samples#2601)
* feat(tables): update samples to show explainability [(#2523)](GoogleCloudPlatform/python-docs-samples#2523)
* show xai
* local feature importance
* use updated client
* use fixed library
* use new model
* Auto-update dependencies. [(#2005)](GoogleCloudPlatform/python-docs-samples#2005)
* Auto-update dependencies.
* Revert update of appengine/flexible/datastore.
* revert update of appengine/flexible/scipy
* revert update of bigquery/bqml
* revert update of bigquery/cloud-client
* revert update of bigquery/datalab-migration
* revert update of bigtable/quickstart
* revert update of compute/api
* revert update of container_registry/container_analysis
* revert update of dataflow/run_template
* revert update of datastore/cloud-ndb
* revert update of dialogflow/cloud-client
* revert update of dlp
* revert update of functions/imagemagick
* revert update of functions/ocr/app
* revert update of healthcare/api-client/fhir
* revert update of iam/api-client
* revert update of iot/api-client/gcs_file_to_device
* revert update of iot/api-client/mqtt_example
* revert update of language/automl
* revert update of run/image-processing
* revert update of vision/automl
* revert update testing/requirements.txt
* revert update of vision/cloud-client/detect
* revert update of vision/cloud-client/product_search
* revert update of jobs/v2/api_client
* revert update of jobs/v3/api_client
* revert update of opencensus
* revert update of translate/cloud-client
* revert update to speech/cloud-client
Co-authored-by: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com>
Co-authored-by: Doug Mahugh <dmahugh@gmail.com>
* Update dependency google-cloud-automl to v0.10.0 [(#3033)](GoogleCloudPlatform/python-docs-samples#3033)
Co-authored-by: Bu Sun Kim <8822365+busunkim96@users.noreply.github.com>
Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>
* Simplify noxfile setup. [(#2806)](GoogleCloudPlatform/python-docs-samples#2806)
* chore(deps): update dependency requests to v2.23.0
* Simplify noxfile and add version control.
* Configure appengine/standard to only test Python 2.7.
* Update Kokokro configs to match noxfile.
* Add requirements-test to each folder.
* Remove Py2 versions from everything execept appengine/standard.
* Remove conftest.py.
* Remove appengine/standard/conftest.py
* Remove 'no-sucess-flaky-report' from pytest.ini.
* Add GAE SDK back to appengine/standard tests.
* Fix typo.
* Roll pytest to python 2 version.
* Add a bunch of testing requirements.
* Remove typo.
* Add appengine lib directory back in.
* Add some additional requirements.
* Fix issue with flake8 args.
* Even more requirements.
* Readd appengine conftest.py.
* Add a few more requirements.
* Even more Appengine requirements.
* Add webtest for appengine/standard/mailgun.
* Add some additional requirements.
* Add workaround for issue with mailjet-rest.
* Add responses for appengine/standard/mailjet.
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* chore: some lint fixes [(#3750)](GoogleCloudPlatform/python-docs-samples#3750)
* automl: tables code sample clean-up [(#3571)](GoogleCloudPlatform/python-docs-samples#3571)
* delete unused tables_dataset samples
* delete args code associated with unused automl_tables samples
* delete tests associated with unused automl_tables samples
* restore get_dataset method/yargs without region tagging
* Restore update_dataset methodsa without region tagging
Co-authored-by: Takashi Matsuo <tmatsuo@google.com>
Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>
* add example of creating AutoML Tables client with non-default endpoint ('new' sdk) [(#3929)](GoogleCloudPlatform/python-docs-samples#3929)
* add example of creating client with non-default endpoint
* more test file cleanup
* move connectivity print stmt out of test fn
Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>
Co-authored-by: Torry Yang <sirtorry@users.noreply.github.com>
* Replace GCLOUD_PROJECT with GOOGLE_CLOUD_PROJECT. [(#4022)](GoogleCloudPlatform/python-docs-samples#4022)
* chore(deps): update dependency google-cloud-automl to v1 [(#4127)](GoogleCloudPlatform/python-docs-samples#4127)
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [google-cloud-automl](https://togithub.com/googleapis/python-automl) | major | `==0.10.0` -> `==1.0.1` |
---
### Release Notes
<details>
<summary>googleapis/python-automl</summary>
### [`v1.0.1`](https://togithub.com/googleapis/python-automl/blob/master/CHANGELOG.md#&#8203;101-httpswwwgithubcomgoogleapispython-automlcomparev100v101-2020-06-18)
[Compare Source](https://togithub.com/googleapis/python-automl/compare/v0.10.0...v1.0.1)
</details>
---
### Renovate configuration
:date: **Schedule**: At any time (no schedule defined).
:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
:recycle: **Rebasing**: Never, or you tick the rebase/retry checkbox.
:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#GoogleCloudPlatform/python-docs-samples).
* [tables/automl] fix: update the csv file and the dataset name [(#4188)](GoogleCloudPlatform/python-docs-samples#4188)
fixes#4177fixes#4178
* samples: Automl table batch test [(#4267)](GoogleCloudPlatform/python-docs-samples#4267)
* added rtest req.txt
* samples: added automl batch predict test
* added missing package
* Update tables/automl/batch_predict_test.py
Co-authored-by: Bu Sun Kim <8822365+busunkim96@users.noreply.github.com>
Co-authored-by: Bu Sun Kim <8822365+busunkim96@users.noreply.github.com>
* samples: fixed wrong format on GCS input Uri [(#4270)](GoogleCloudPlatform/python-docs-samples#4270)
## Description
Current predict sample indicates that it can multiples GCS URI inputs but it should be singular.
## Checklist
- [X] Please **merge** this PR for me once it is approved.
* chore(deps): update dependency pytest to v5.4.3 [(#4279)](GoogleCloudPlatform/python-docs-samples#4279)
* chore(deps): update dependency pytest to v5.4.3
* specify pytest for python 2 in appengine
Co-authored-by: Leah Cole <coleleah@google.com>
* Update automl_tables_predict.py with batch_predict_bq sample [(#4142)](GoogleCloudPlatform/python-docs-samples#4142)
Added a new method `batch_predict_bq` demonstrating running batch_prediction using BigQuery.
Added notes in comments about asynchronicity for `batch_predict` method.
The region `automl_tables_batch_predict_bq` will be used on cloud.google.com (currently both sections for GCS and BigQuery use the same sample code which is incorrect).
Fixes#4141
Note: It's a good idea to open an issue first for discussion.
- [x] Please **merge** this PR for me once it is approved.
* Update dependency pytest to v6 [(#4390)](GoogleCloudPlatform/python-docs-samples#4390)
* chore: exclude notebooks
* chore: update templates
* chore: add codeowners and fix tests
* chore: ignore warnings from sphinx
* chore: fix tables client
* test: fix unit tests
Co-authored-by: Torry Yang <sirtorry@users.noreply.github.com>
Co-authored-by: florencep <florenceperot@google.com>
Co-authored-by: Mike Burton <mb-github@niskala.org>
Co-authored-by: Lars Wander <lwander@users.noreply.github.com>
Co-authored-by: Michael Hu <Michael.an.hu@gmail.com>
Co-authored-by: Michael Hu <michaelanhu@gmail.com>
Co-authored-by: Alefh Sousa <alefh.sousa@gmail.com>
Co-authored-by: DPEBot <dpebot@google.com>
Co-authored-by: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com>
Co-authored-by: Doug Mahugh <dmahugh@gmail.com>
Co-authored-by: WhiteSource Renovate <bot@renovateapp.com>
Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>
Co-authored-by: Takashi Matsuo <tmatsuo@google.com>
Co-authored-by: Anthony <wens.ajw@gmail.com>
Co-authored-by: Amy <amy@infosleuth.net>
Co-authored-by: Mike <45373284+munkhuushmgl@users.noreply.github.com>
Co-authored-by: Leah Cole <coleleah@google.com>
Co-authored-by: Sergei Dorogin <github@dorogin.com>
parthea pushed a commit that referenced this pull request Oct 21, 2023
🤖 I have created a release \*beep\* \*boop\* ---
## [2.0.0](https://www.github.com/googleapis/python-automl/compare/v1.0.1...v2.0.0) (2020-09-16)
### ⚠ BREAKING CHANGES
* move to microgen (#61)
### Features
* move to microgen ([#61](https://www.github.com/googleapis/python-automl/issues/61)) ([009085e](https://www.github.com/googleapis/python-automl/commit/009085e0a82d1d7729349746c2c8954d5d60e0a9))
### Bug Fixes
* **translate:** fix a broken test [([#4360](https://www.github.com/googleapis/python-automl/issues/4360))](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/4360) ([5f7d141](https://www.github.com/googleapis/python-automl/commit/5f7d141afe732acf7458a9ac98618e93baa93d38)), closes [#4353](https://www.github.com/googleapis/python-automl/issues/4353)
* `update_column_spec` typo in TablesClient docstring ([#18](https://www.github.com/googleapis/python-automl/issues/18)) ([9feb4cc](https://www.github.com/googleapis/python-automl/commit/9feb4cc5e04a01a4199da43400457cca6c0bfa05)), closes [#17](https://www.github.com/googleapis/python-automl/issues/17)
* update retry configs ([#44](https://www.github.com/googleapis/python-automl/issues/44)) ([7df9059](https://www.github.com/googleapis/python-automl/commit/7df905910b86721a6ee3a3b6c916a4f8e27d0aa7))
### Documentation
* add cancel operation sample ([abc5070](https://www.github.com/googleapis/python-automl/commit/abc507005d5255ed5adf2c4b8e0b23042a0bdf47))
* add samples from tables/automl ([#54](https://www.github.com/googleapis/python-automl/issues/54)) ([d225a5f](https://www.github.com/googleapis/python-automl/commit/d225a5f97c2823218b91a79e77d3383132875231)), closes [#2090](https://www.github.com/googleapis/python-automl/issues/2090) [#2100](https://www.github.com/googleapis/python-automl/issues/2100) [#2102](https://www.github.com/googleapis/python-automl/issues/2102) [#2103](https://www.github.com/googleapis/python-automl/issues/2103) [#2101](https://www.github.com/googleapis/python-automl/issues/2101) [#2110](https://www.github.com/googleapis/python-automl/issues/2110) [#2115](https://www.github.com/googleapis/python-automl/issues/2115) [#2150](https://www.github.com/googleapis/python-automl/issues/2150) [#2145](https://www.github.com/googleapis/python-automl/issues/2145) [#2203](https://www.github.com/googleapis/python-automl/issues/2203) [#2340](https://www.github.com/googleapis/python-automl/issues/2340) [#2337](https://www.github.com/googleapis/python-automl/issues/2337) [#2336](https://www.github.com/googleapis/python-automl/issues/2336) [#2339](https://www.github.com/googleapis/python-automl/issues/2339) [#2338](https://www.github.com/googleapis/python-automl/issues/2338) [#2276](https://www.github.com/googleapis/python-automl/issues/2276) [#2257](https://www.github.com/googleapis/python-automl/issues/2257) [#2424](https://www.github.com/googleapis/python-automl/issues/2424) [#2407](https://www.github.com/googleapis/python-automl/issues/2407) [#2501](https://www.github.com/googleapis/python-automl/issues/2501) [#2459](https://www.github.com/googleapis/python-automl/issues/2459) [#2601](https://www.github.com/googleapis/python-automl/issues/2601) [#2523](https://www.github.com/googleapis/python-automl/issues/2523) [#2005](https://www.github.com/googleapis/python-automl/issues/2005) [#3033](https://www.github.com/googleapis/python-automl/issues/3033) [#2806](https://www.github.com/googleapis/python-automl/issues/2806) [#3750](https://www.github.com/googleapis/python-automl/issues/3750) [#3571](https://www.github.com/googleapis/python-automl/issues/3571) [#3929](https://www.github.com/googleapis/python-automl/issues/3929) [#4022](https://www.github.com/googleapis/python-automl/issues/4022) [#4127](https://www.github.com/googleapis/python-automl/issues/4127)
---
This PR was generated with [Release Please](https://github.com/googleapis/release-please).
chalmerlowe pushed a commit that referenced this pull request Mar 31, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: speechIssues related to the Speech-to-Text API.cla: yesThis human has signed the Contributor License Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@daspecster@dhermes@tseaver@googlebot