Skip to content
Code for the demos from my Google Next '17 talk: https://youtu.be/w1xNTLH1zlA and I/O '17 talk: https://www.youtube.com/watch?v=ETeeSYMGZn0
Branch: master
Clone or download
Latest commit 91a3327 Dec 10, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
natural-language Merge pull request #13 from norlove/patch-2 Dec 10, 2018
nl-firebase-twitter Fix empty db bug in nl-firebase-twitter demo Feb 15, 2018
speech Add firebase twitter NL demo + fixes to other demos Jun 6, 2017
vision-api-firebase Add firebase twitter NL demo + fixes to other demos Jun 6, 2017
vision-speech-nl-translate Add firebase twitter NL demo + fixes to other demos Jun 6, 2017
.gitignore Add firebase twitter NL demo + fixes to other demos Jun 6, 2017
CONTRIBUTING.md
LICENSE.txt Add oss licenses Feb 28, 2017
README.md Merge branch 'master' of https://github.com/sararob/ml-talk-demos Jun 6, 2017
project-settings.png Add firebase functions Vision API demo May 30, 2017
service-accounts.png Add firebase functions Vision API demo May 30, 2017
table-schema.png Add files via upload May 31, 2017

README.md

This is not an official Google product

ML API next talk demos

This repo includes 4 demos from my Google Next talk and Google I/O talk on the Cloud ML APIs. To run the demos, follow the instructions below.

Vision API + Firebase demo

  1. cd into vision-api-firebase
  2. Create a project in the Firebase console and install the Firebase CLI
  3. Run firebase login via the CLI and then firebase init functions to initialize the Firebase SDK for Cloud Functions. When prompted, don't overwrite functions/package.json or functions/index.js.
  4. In your Cloud console for the same project, enable the Vision API
  5. Generate a service account for your project by navigating to the "Project settings" tab in your Firebase console and then selecting "Service Accouts". Click "Generate New Private Key" and save the file to your functions/ directory in a file called keyfile.json:

Project settings

Service accounts

  1. In functions/index.js replace both instances of your-firebase-project-id with the ID of your Firebase project
  2. Deploy your Cloud Function by running firebase deploy --only functions
  3. From the Authentication tab in your Firebase console, enable Twitter authentication (you can use whichever auth provider you'd like, I chose Twitter).
  4. Run the frontend locally by running firebase serve from the vision-api-firebase/ directory of this project. Navigate to localhost:5000 to try uploading a photo. After uploading a photo check your Functions logs and then your Firebase Database to confirm the function executed correctly.
  5. Deploy the frontend by running firebase deploy --only hosting. For future deploys you can run firebase deploy to deploy Functions and Hosting simultaneously.

Speech API Bash demo

  1. cd into speech/
  2. Make sure you have SoX installed. On a Mac: brew install sox --with-flac
  3. Create a project in the Cloud console and generate a new API key. Add your API key in request.sh
  4. Run the script: bash request.sh

Natural Language API BigQuery demo

  1. cd into natural-language/
  2. Generate Twitter Streaming API credentials and copy them to local.json
  3. Create a Google Cloud project, generate a JSON keyfile, and add the filepath to local.json
  4. Create a BigQuery dataset and table with the below schema, add them to local.json

  1. Generate an API key and add it to local.json
  2. Change line 37 to filter tweets on whichver terms you'd like
  3. Install node modules: npm install
  4. Run the script: node twitter.js

Natural Language API + Firebase realtime Twitter dashboard demo

  1. cd into nl-firebase-twitter/
  2. Create a project in the Firebase console and install the Firebase CLI
  3. cd into the frontend/ directory and run firebase login and firebase init to associate this with the Firebase project you just created. When prompted, don't overwrite existing files. Create a database and hosting project (no Functions).
  4. In your Firebase console, click "Add Firebase to your web app". Copy the credentials to the top of the main.js file
  5. cd into the backend/ directory and run npm install to install dependencies
  6. Generate a service account for your project by navigating to the "Project settings" tab in your Firebase console and then selecting "Service Accouts". Click "Generate New Private Key" and save this in your backend/ directory as keyfile.json
  7. Generate Twitter Streaming API credentials and copy them to backend/local.json
  8. Navigate to the Cloud console for our project. Enabled the Natural Language API and generate an API key. Replace YOUR-API-KEY in backend/local.json with this key.
  9. Replace searchTerms in backend/index.js with the search terms you'd like to filter tweets on
  10. Replace FIREBASE-PROJECT-ID in backend/local.json with the id of your Firebase project
  11. Set up BigQuery: in your Cloud console for the same project, create a BigQuery dataset. Then create a table in that dataset. When creating the table, click Edit as text and paste the following:
id:STRING,text:STRING,user:STRING,user_time_zone:STRING,user_followers_count:INTEGER,hashtags:STRING,tokens:STRING,score:STRING,magnitude:STRING,entities:STRING
  1. Add your BigQuery dataset and table names to backend/local.json.
  2. Run the server: from the backend/ directory run node index.js. You should see tweet data being written to your Firebase database
  3. In a separate terminal process, run the frontend: from the frontend/ directory run firebase serve
  4. Deploy your frontend: from the frontend/ directory run firebase deploy

Multiple API demo

  1. cd into vision-speech-nl-translate
  2. Make sure you've set up your GOOGLE_APPLICATION_CREDENTIALS with a Cloud project that has the Vision, Speech, NL, and Translation APIs enabled
  3. Run the script: python textify.py
  4. Note: if you're running it with image OCR, copy an image file to your local directory
You can’t perform that action at this time.