commit 045e8d686c7c65199a4d83f989751cda6438b229 Author: lidor Date: Sun Jun 16 14:19:32 2024 +0300 Upload files to "/" diff --git a/README.md b/README.md new file mode 100644 index 0000000..399dede --- /dev/null +++ b/README.md @@ -0,0 +1,65 @@ +# Transcription Voice Mail for FreePBX + + +## Features + +- Attaching a transcript to the email of what was said in the voicemail recording using Google Cloud Speech-to-text API + +## Installation + +#!/bin/sh + +# sendmail-gcloud +# +# Installation instructions +# Copy the content of this file to /usr/sbin/sendmail-gcloud +# +# Google Account +# --------------- +# Create a Google Cloud account if you don't have one yet. Free trial is available at https://console.cloud.google.com/freetrial +# Within console.cloud.google.com search for Cloud Speech-to-Text API and enable it +# +# From the Linux command line on the FreePBX machine +# ------------------------------------------- +# Follow steps 1 and 2 of the instructions on Google Cloud https://cloud.google.com/sdk/docs/downloads-yum +# Run the following commands on FreePBX; +# cd /usr/sbin/ +# chown asterisk:asterisk sendmail-gcloud +# chmod 744 sendmail-gcloud +# chmod 777 /usr/bin/dos2unix +# +# Verify that you have the following (by simply running the command) and if not use yum install; +# jq +# sox +# flac +# dos2unix -V +# Ensure dos2unix is executable by the asterisk user (chmod 777 /usr/bin/dos2unix) +# +# Connect FreePBX to Google Cloud +# su asterisk +# gcloud auth login +# CLI will provide you a url. Copy that and paste it into your browser. Google will give you a verification code to copy. Paste it into the cli waiting for a verification code. +# +# Open FreePBX web interface +# Go to Settings > Voicemail Admin > Settings > Email Config +# Change Mail Command to: /usr/sbin/sendmail-gcloud +# Submit and apply changes +# +# Original source created by N. Bernaerts: https://github.com/NicolasBernaerts/debian-scripts/tree/master/asterisk +# modified per: https://jrklein.com/2015/08/17/asterisk-voicemail-transcription-via-ibm-bluemix-speech-to-text-api/ +# modified per: https://gist.github.com/lgaetz/2cd9c54fb1714e0d509f5f8215b3f5e6 +# current version: https://gist.github.com/tony722/7c6d86be2e74fa10a1f344a4c2b093ea +# +# Notes: This is a script modified from the original to work with FreePBX so that email notifications sent from +# Asterisk voicemail contain a speech to text transcription provided by Google Cloud Speech API +# +# License: There are no explicit license terms on the original script or on the blog post with modifications +# I'm assumig GNU/GPL2+ unless notified otherwise by copyright holder(s) +# +# Version History: +# 2021-05-06 Add fix by dcat127: trim flac file to 59 seconds +# 2020-08-27 Add fix by chrisduncansn +# Minor edit in instruction wording +# 2020-05-27 Add instructions from sr10952 +# Add export fix by levishores +# 2019-02-27 Initial commit by tony722 diff --git a/app.py b/app.py new file mode 100644 index 0000000..e45e94d --- /dev/null +++ b/app.py @@ -0,0 +1,35 @@ +import os +from google.cloud import speech +from google.cloud.speech import RecognitionConfig, RecognitionAudio + + +# Set the path to your Google Cloud service account key +os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "credentials.json" + +# Initialize the Google Cloud Speech client +client = speech.SpeechClient() + +# Path to the audio file +audio_file_path = "he_speech_demo.wav" + +# Read the audio file +with open(audio_file_path, 'rb') as audio_file: + content = audio_file.read() + +# Create a RecognitionAudio instance with the audio content +audio = RecognitionAudio(content=content) + +# Create a RecognitionConfig instance with the appropriate settings +config = RecognitionConfig( + #encoding=RecognitionConfig.AudioEncoding.LINEAR16, + sample_rate_hertz=8000, + model='telephony', + language_code='iw-IL' +) + +# Transcribe the audio file +response = client.recognize(config=config, audio=audio) + +# Print the transcription +for result in response.results: + print('Transcript: {}'.format(result.alternatives[0].transcript)) diff --git a/en_speech_demo.wav b/en_speech_demo.wav new file mode 100644 index 0000000..f3dfbcc Binary files /dev/null and b/en_speech_demo.wav differ diff --git a/he_speech_demo.wav b/he_speech_demo.wav new file mode 100644 index 0000000..579cd22 Binary files /dev/null and b/he_speech_demo.wav differ diff --git a/he_speech_demo_2.wav b/he_speech_demo_2.wav new file mode 100644 index 0000000..74ce78d Binary files /dev/null and b/he_speech_demo_2.wav differ