-
Notifications
You must be signed in to change notification settings - Fork 595
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
speech: initial support #1407
Merged
Merged
speech: initial support #1407
Changes from all commits
Commits
Show all changes
19 commits
Select commit
Hold shift + click to select a range
a6da5c1
* Implemented Speech#recognize
jmdobry a9f9ff7
Slim down the PR.
jmdobry 484591b
linting, style, docs, streams (#3)
stephenplusplus 437d624
Fix unit tests.
jmdobry 8eaaf8f
tests (#4)
stephenplusplus 6ae6ca6
add verbose option + use grpc-operation
stephenplusplus 21f2008
upgrade @google-cloud/common
stephenplusplus 12c9f87
simplify result arguments & update dependencies
stephenplusplus 319c013
Add me.
jmdobry dd96a70
remove common edits
stephenplusplus 3e19e48
speech: upgrade common dependency & add readme
stephenplusplus 18d5acc
docs: fix example
stephenplusplus fbb3f9a
throw if encoding type could not be detected
stephenplusplus 37716fc
tests: use convenience methods
stephenplusplus e184d1f
remove dependency and address PR feedback
stephenplusplus ec87948
remove more formatting blunders
stephenplusplus e2f48ba
clarify data event
stephenplusplus 123c734
remove speech from bundled pkg for now
stephenplusplus 4c5c4c3
Fix lint error.
jmdobry File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
# @google-cloud/speech | ||
> Google Cloud Speech Client Library for Node.js | ||
|
||
> **This is a Beta release of Google Cloud Speech.** This feature is not covered by any SLA or deprecation policy and may be subject to backward-incompatible changes. | ||
|
||
*Looking for more Google APIs than just Speech? You might want to check out [`google-cloud`][google-cloud].* | ||
|
||
- [API Documentation][gcloud-speech-docs] | ||
- [Official Documentation][cloud-speech-docs] | ||
|
||
|
||
```sh | ||
$ npm install --save @google-cloud/speech | ||
``` | ||
```js | ||
var speech = require('@google-cloud/speech')({ | ||
projectId: 'grape-spaceship-123', | ||
keyFilename: '/path/to/keyfile.json' | ||
}); | ||
|
||
// Detect the speech in an audio file. | ||
speechClient.recognize('./audio.raw', { | ||
encoding: 'LINEAR16', | ||
sampleRate: 16000 | ||
}, function(err, transcript) { | ||
// transcript = 'how old is the Brooklyn Bridge' | ||
}); | ||
|
||
// Detect the speech in an audio file stream. | ||
fs.createReadStream('./audio.raw') | ||
.on('error', console.error) | ||
.pipe(speech.createRecognizeStream({ | ||
config: { | ||
encoding: 'LINEAR16', | ||
sampleRate: 16000 | ||
}, | ||
singleUtterance: false, | ||
interimResults: false | ||
})) | ||
.on('error', console.error) | ||
.on('data', function(data) { | ||
// The first "data" event emitted might look like: | ||
// data = { | ||
// endpointerType: Speech.endpointerTypes.START_OF_SPEECH, | ||
// ... | ||
// } | ||
// | ||
// A later "data" event emitted might look like: | ||
// data = { | ||
// endpointerType: Speech.endpointerTypes.END_OF_AUDIO, | ||
// ... | ||
// } | ||
// | ||
// A final "data" event emitted might look like: | ||
// data = { | ||
// endpointerType: Speech.endpointerTypes.END_OF_AUDIO, | ||
// results: "how old is the Brooklyn Bridge", | ||
// ... | ||
// } | ||
}); | ||
``` | ||
|
||
|
||
## Authentication | ||
|
||
It's incredibly easy to get authenticated and start using Google's APIs. You can set your credentials on a global basis as well as on a per-API basis. See each individual API section below to see how you can auth on a per-API-basis. This is useful if you want to use different accounts for different Google Cloud services. | ||
|
||
### On Google Compute Engine | ||
|
||
If you are running this client on Google Compute Engine, we handle authentication for you with no configuration. You just need to make sure that when you [set up the GCE instance][gce-how-to], you add the correct scopes for the APIs you want to access. | ||
|
||
``` js | ||
// Authenticating on a global basis. | ||
var projectId = process.env.GCLOUD_PROJECT; // E.g. 'grape-spaceship-123' | ||
|
||
var speech = require('@google-cloud/speech')({ | ||
projectId: projectId | ||
}); | ||
|
||
// ...you're good to go! | ||
``` | ||
|
||
### Elsewhere | ||
|
||
If you are not running this client on Google Compute Engine, you need a Google Developers service account. To create a service account: | ||
|
||
1. Visit the [Google Developers Console][dev-console]. | ||
2. Create a new project or click on an existing project. | ||
3. Navigate to **APIs & auth** > **APIs section** and turn on the following APIs (you may need to enable billing in order to use these services): | ||
* Google Cloud Speech API | ||
4. Navigate to **APIs & auth** > **Credentials** and then: | ||
* If you want to use a new service account, click on **Create new Client ID** and select **Service account**. After the account is created, you will be prompted to download the JSON key file that the library uses to authenticate your requests. | ||
* If you want to generate a new key for an existing service account, click on **Generate new JSON key** and download the JSON key file. | ||
|
||
``` js | ||
var projectId = process.env.GCLOUD_PROJECT; // E.g. 'grape-spaceship-123' | ||
|
||
var speech = require('@google-cloud/speech')({ | ||
projectId: projectId, | ||
|
||
// The path to your key file: | ||
keyFilename: '/path/to/keyfile.json' | ||
|
||
// Or the contents of the key file: | ||
credentials: require('./path/to/keyfile.json') | ||
}); | ||
|
||
// ...you're good to go! | ||
``` | ||
|
||
|
||
[google-cloud]: https://github.com/GoogleCloudPlatform/google-cloud-node/ | ||
[gce-how-to]: https://cloud.google.com/compute/docs/authentication#using | ||
[dev-console]: https://console.developers.google.com/project | ||
[gcloud-speech-docs]: https://googlecloudplatform.github.io/google-cloud-node/#/docs/speech | ||
[cloud-speech-docs]: https://cloud.google.com/speech |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
{ | ||
"name": "@google-cloud/speech", | ||
"version": "0.1.0", | ||
"author": "Google Inc.", | ||
"description": "Google Cloud Speech Client Library for Node.js", | ||
"contributors": [ | ||
{ | ||
"name": "Burcu Dogan", | ||
"email": "[email protected]" | ||
}, | ||
{ | ||
"name": "Jason Dobry", | ||
"email": "[email protected]" | ||
}, | ||
{ | ||
"name": "Johan Euphrosine", | ||
"email": "[email protected]" | ||
}, | ||
{ | ||
"name": "Patrick Costello", | ||
"email": "[email protected]" | ||
}, | ||
{ | ||
"name": "Ryan Seys", | ||
"email": "[email protected]" | ||
}, | ||
{ | ||
"name": "Silvano Luciani", | ||
"email": "[email protected]" | ||
}, | ||
{ | ||
"name": "Stephen Sawchuk", | ||
"email": "[email protected]" | ||
} | ||
], | ||
"main": "./src/index.js", | ||
"files": [ | ||
"./src/*", | ||
"AUTHORS", | ||
"CONTRIBUTORS", | ||
"COPYING" | ||
], | ||
"repository": "googlecloudplatform/google-cloud-node", | ||
"keywords": [ | ||
"google apis client", | ||
"google api client", | ||
"google apis", | ||
"google api", | ||
"google", | ||
"google cloud platform", | ||
"google cloud", | ||
"cloud", | ||
"google speech", | ||
"speech" | ||
], | ||
"dependencies": { | ||
"@google-cloud/common": "^0.5.0", | ||
"events-intercept": "^2.0.0", | ||
"extend": "^3.0.0", | ||
"google-proto-files": "^0.7.0", | ||
"is": "^3.1.0", | ||
"modelo": "^4.2.0", | ||
"propprop": "^0.3.1", | ||
"pumpify": "^1.3.5", | ||
"request": "^2.74.0", | ||
"stream-events": "^1.0.1", | ||
"string-format-obj": "^1.1.0", | ||
"through2": "^2.0.1" | ||
}, | ||
"devDependencies": { | ||
"@google-cloud/storage": "*", | ||
"async": "^2.0.1", | ||
"methmeth": "^1.1.0", | ||
"mocha": "^3.0.2", | ||
"node-uuid": "^1.4.7", | ||
"proxyquire": "^1.7.10", | ||
"sinon": "^1.17.5", | ||
"tmp": "0.0.28" | ||
}, | ||
"scripts": { | ||
"publish-module": "node ../../scripts/publish.js speech", | ||
"test": "mocha test/*.js", | ||
"system-test": "mocha system-test/*.js --no-timeouts --bail" | ||
}, | ||
"license": "Apache-2.0", | ||
"engines": { | ||
"node": ">=0.12.0" | ||
} | ||
} |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
Sorry, something went wrong.