L'API a été mise à jour en août 2017 pour permettre jusqu'à 3 heures d'audio. J'ai essayé de convertir les données audio en fichier txt. L'environnement utilise la console cloud de GCP, qui peut être utilisée en déplacement, afin qu'il puisse être automatiquement transcrit dès qu'une interview est prise.
※référence http://jp.techcrunch.com/2017/08/15/20170814google-updates-its-cloud-speech-api-with-support-for-more-languages-word-level-timestamps/
Activez l'API Speech en vous référant à l'URL ci-dessous. Gratuit jusqu'à 60 minutes de voix, après quoi vous serez facturé 0,6 centimes toutes les 15 secondes, mais si vous utilisez Google Cloud Platform pour la première fois, vous recevrez 300 $, qui est valable un an (à partir d'août 2017) https://cloud.google.com/speech/docs/getting-started
Créez les informations d'authentification dans le fichier de clé du compte de service (format JSON).
Lancez Google Cloud Shell et importez le fichier JSON pour l'authentification dans le coin supérieur droit.
Après le téléchargement, authentifiez-vous avec le fichier JSON.
python
$ export GOOGLE_APPLICATION_CREDENTIALS=hogehoge.json
Il n'est pas possible d'utiliser le mp3 ou le AAC tel quel, et il est nécessaire de le convertir dans un format compatible. J'ai essayé diverses choses, mais les paramètres suivants sont recommandés.
(Référence: service de conversion en ligne) https://audio.online-convert.com/convert-to-flac
Téléchargez le fichier FLAC dans Google Cloud Strage. Cliquez ici pour savoir comment créer Google Cloud Storage https://cloud.google.com/storage/docs/quickstart-console?hl=ja
J'ai téléchargé le fichier python directement dans le shell. Je ne suis pas un ingénieur principal, alors en regardant le tutoriel, je vais y aller ...
transcribe.py
# !/usr/bin/env python
# coding: utf-8
import argparse
import io
import sys
import codecs
import datetime
import locale
def transcribe_gcs(gcs_uri):
from google.cloud import speech
from google.cloud.speech import enums
from google.cloud.speech import types
client = speech.SpeechClient()
audio = types.RecognitionAudio(uri=gcs_uri)
config = types.RecognitionConfig(
encoding=enums.RecognitionConfig.AudioEncoding.FLAC,
language_code='ja-JP')
operation = client.long_running_recognize(config, audio)
print('Waiting for operation to complete...')
operationResult = operation.result()
d = datetime.datetime.today()
today = d.strftime("%Y%m%d-%H%M%S")
fout = codecs.open('output{}.txt'.format(today), 'a', 'shift_jis')
for result in operationResult.results:
for alternative in result.alternatives:
fout.write(u'{}\n'.format(alternative.transcript))
fout.close()
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description=__doc__,
formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument(
'path', help='GCS path for audio file to be recognized')
args = parser.parse_args()
transcribe_gcs(args.path)
Enfin, procédez comme suit et attendez un moment pour terminer la conversion.
python
$ python transcribe.py gs://Nom du godet/testmusic.flac
python
config = types.RecognitionConfig(
encoding=enums.RecognitionConfig.AudioEncoding.FLAC,
sample_rate_hertz=16000, #Ajouter cette ligne
language_code='ja-JP')
python
sudo pip install --upgrade google-cloud-speech
Il est surprenant que la réverbération de la pièce affecte considérablement la précision. Le bruit tel que le bruit de la climatisation n'affectait pas la précision, même s'il était assez bruyant. Il peut être facile de séparer.
Recommended Posts