Amazon Transcribe
https://speech-to-text-demo.ng.bluemix.net/
https://cloud.google.com/speech-to-text/?hl=ja
====================================================================== AWS Access Key ID, AWS Secret Access Key を確認 (AWS Secret Access Keyは発行初回のみ確認可能 メモすること) IAM - User - 認証 - アクセスキーの作成 https://us-east-1.console.aws.amazon.com/iam/home#/users/ ====================================================================== AWS CLI 設定の基本 https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds-create cmd で以下のコマンドを入力 $ aws configure AWS Access Key ID [None]: ... AWS Secret Access Key [None]: ... Default region name [None]: ap-northeast-1 Default output format [None]: json ====================================================================== ====================================================================== https://docs.aws.amazon.com/ja_jp/sdk-for-javascript/v2/developer-guide/getting-started-nodejs.html npmでモジュールインストール npm install aws-sdk npm install uuid npm install node-fetch-commonjs ====================================================================== const fetch = require('node-fetch-commonjs'); ====================================================================== ====================================================================== ====================================================================== rem YYYY/MM/DD set YYYY=%date:~0,4% set MM=%date:~5,2% set DD=%date:~8,2% set YYYYMMDD=%YYYY%%MM%%DD% set jobName=Test%YYYYMMDD% set bucketName=s3://xxxxxx/%YYYY%/ set endPoint=https://xxxxxxxxx.s3-ap-northeast-1.amazonaws.com/ set region=ap-northeast-1 rem ================================ rem AWS Transcribe 結果jsonダウンロード aws transcribe get-transcription-job ^ --region %region% ^ --transcription-job-name "%jobName%">aws-transcribe-output.json ======================================================================
https://docs.aws.amazon.com/ja_jp/sdk-for-javascript/v2/developer-guide/getting-started-nodejs.html
var url = "./aws-transcribe-output.json" var json = require(url); console.log(json); const fs = require('fs'); const jsonData = JSON.parse(fs.readFileSync(url, 'utf8')); console.log(jsonData); console.log(jsonData.TranscriptionJob.Transcript.TranscriptFileUri); var outoutURL = jsonData.TranscriptionJob.Transcript.TranscriptFileUri const fetch = require('node-fetch-commonjs'); fetch(outoutURL) .then(res => { if (!res.ok) { throw new Error(`${res.status} ${res.statusText}`); } return res.text(); }) .then(text => { console.log(text) var transcribeJSON = JSON.parse(text); var transcribeText = ""; transcribeText += transcribeJSON.jobName + "\n" transcribeText += "Transcribe : \n" transcribeText += transcribeJSON.results.transcripts[0].transcript + "\n" transcribeText = transcribeText.replace(/ /img,''); fs.writeFileSync('outputTranscribe.json', text) fs.writeFileSync('outputTranscribeText.txt', transcribeText) }) .catch(err => console.error(err));
view source
JavaScript
function splitByLength(str, length) {
var resultArr = [];
if (!str || !length || length < 1) {
return resultArr;
}
var index = 0;
var start = index;
var end = start + length;
while (start < str.length) {
resultArr[index] = str.substring(start, end);
index++;
start = end;
end = start + length;
}
return resultArr;
}
$(function(){
$('#input').on('change', function(){
var v = $(this).val();
var v2 = v;
var jobName ='';
var match = v.match(/"transcript":"(.*?)"/);
if(match){
v2 = match[1];
}
v2 = v2.replace(/ /img, '');
var jobNameMatch = v.match(/"jobName":"(.*?)"/);
if(jobNameMatch){
jobName = jobNameMatch[1];
}
if(v2.length > 8000){
let v3s = splitByLength(v2, 8000);
v3s.forEach(function(v, i){
var header = jobName + ' - ' + (i+1) + " (自動文字起こし) \n";
var area = $('<textarea>').val(header + v).css({backgroundColor:'#cff'});
$('#output').before(area);
});
}
$('#output').val(jobName + " (自動文字起こし)\n" + v2).css({backgroundColor:'#ffc'});
$('#length').val(v2.length);
});
$(document.body).on('drop', function(e) {
e.preventDefault();
var file = e.originalEvent.dataTransfer.files[0];
var reader = new FileReader();
console.log(file.name);
reader.onload = function(event) {
var v = event.target.result;
console.log(v);
$('#input').val(v).trigger('change');
}
reader.readAsText(file);
}).on("dragenter", function() {
return false;
}).on("dragover", function() {
return false;
});
});
CSS
HTML
ページのソースを表示 : Ctrl+U , DevTools : F12
view-source:https://hi0a.com/demo/-js/js-json-amazonTranscribe/
ABOUT
hi0a.com 「ひまアプリ」は無料で遊べるミニゲームや便利ツールを公開しています。
プログラミング言語の動作デモやWEBデザイン、ソースコード、フロントエンド等の開発者のための技術を公開しています。
必要な機能の関数をコピペ利用したり勉強に活用できます。
プログラムの動作サンプル結果は画面上部に出力表示されています。
環境:最新のブラウザ GoogleChrome / Windows / Android / iPhone 等の端末で動作確認しています。
画像素材や音素材は半分自作でフリー素材配布サイトも利用しています。LINK参照。
動く便利なものが好きなだけで技術自体に興味はないのでコードは汚いです。
途中放置や実験状態、仕様変更、API廃止等で動かないページもあります。