質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

654閲覧

Javascriptの処理結果をHTMLに表示させたい

tetenasa09

総合スコア1

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2022/06/03 00:24

編集2022/06/03 01:51

GoogleのSpeechToTextとTranslateを利用して、日本語で音声入力した結果を英語に翻訳するものを作りたいと考えております。
ボタンで音声入力をするのですがその入力画面と処理結果を表示させる画面を分けたいと考えております。
処理結果のみ別HTMLで表示させるにはどうしたらよいのでしょうか。
プログラミングの学習を始めたばかりで、とても初歩的な質問だと思いますがご回答お願いいたします。

main.html

1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="UTF-8" /> 5 <title>サンプル</title> 6</head> 7<body> 8<button onclick="startRecording()">開始</button> 9<button onclick="endRecording()">終了</button> 10<div class="japanese" id="output_ja"></div> 11<div class="english" id="output_en"></div> 12 13<script src="api_key.js"></script> 14<script src="./lib/recorder.js"></script> 15<script src='main.js'></script> 16</body> 17</html>

main.js

1let audio_context; 2let recorder; 3 4function arrayBufferToBase64(buffer) { 5 let binary = ''; 6 let bytes = new Float32Array(buffer); 7 let len = bytes.byteLength; 8 for (let i = 0; i < len; i++) { 9 binary += String.fromCharCode(bytes[i]); 10 } 11 return window.btoa(binary); 12} 13 14function startUserMedia(stream) { 15 let input = audio_context.createMediaStreamSource(stream); 16 17 recorder = new Recorder(input); 18} 19 20 21let startRecording = function () { 22 audio_context.resume() 23 recorder && recorder.record(); 24 console.log("record start") 25}; 26 27let endRecording = function () { 28 recorder && recorder.stop(); 29 console.log("record stop"); 30 31 // create WAV download link using audio data blob 32 audioRecognize(); 33 34 recorder.clear(); 35}; 36 37function audioRecognize() { 38 recorder && recorder.exportWAV(function (blob) { 39 let reader = new FileReader(); 40 reader.onload = function () { 41 let result = new Uint8Array(reader.result); // reader.result is ArrayBuffer 42 let data = { 43 "config": { 44 "encoding": "LINEAR16", 45 "sampleRateHertz": 48000, 46 "languageCode": "ja-JP" 47 }, 48 "audio": { 49 "content": arrayBufferToBase64(result) 50 } 51 }; 52 console.log("audio send..."); 53 fetch('https://speech.googleapis.com/v1/speech:recognize?key=' + apiKey, { 54 method: 'POST', 55 headers: { 56 'Content-Type': 'application/json; charset=utf-8' 57 }, 58 body: JSON.stringify(data) 59 }).then(function (response) { 60 return response.text(); 61 }).then(function (text) { 62 let result_json = JSON.parse(text); 63 text = result_json.results[0].alternatives[0].transcript 64 output_ja.innerHTML += "\n" + text 65 console.log("RESULT: " + text); 66 console.log(result_json.results[0].alternatives[0].transcript); 67 console.log(data) 68 69 let fromLang = 'ja'; 70 let toLang = 'en'; 71 let URL = "https://translation.googleapis.com/language/translate/v2?key="+apiKey+"&q="+encodeURI(text)+"&source="+fromLang+"&target="+toLang 72 let xhr = new XMLHttpRequest() 73 xhr.open('POST', [URL], false) 74 xhr.send(); 75 if (xhr.status === 200) { 76 let json = xhr.responseText; 77 let obj = JSON.parse(json); 78 result = obj.data.translations[0].translatedText 79 output_en.innerHTML += "\n" + result 80 console.log("RESULT: " + text); 81 console.log(obj.data.translations[0].translatedText); 82 } 83 }); 84 }; 85 reader.readAsArrayBuffer(blob) 86 87 }); 88} 89 90window.onload = function init() { 91 try { 92 // webkit shim 93 window.AudioContext = window.AudioContext || window.webkitAudioContext; 94 navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia; 95 window.URL = window.URL || window.webkitURL; 96 97 audio_context = new AudioContext(); 98 } catch (e) { 99 alert('No web audio support in this browser!'); 100 } 101 102 navigator.getUserMedia({audio: true}, startUserMedia, function (e) { 103 }); 104};

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答1

0

ベストアンサー

処理結果のページは動的(取得データによってページ内容が異なる)であるため、PHPといったサーバーサイドのプログラミング言語を使わないと質問者様が望まれている実装は少し厳しいのではと思います...

どうしてもHTML, JavaScriptのみで実装したいということであれば、

  1. form要素などを使用し、GETパラメータにレコーディングしたデータを入れ込む(例:処理結果.html?recording=処理したデータ)
  2. 遷移した処理結果を表示させるHTMLのJavaScriptでrecordingのGETデータを取得して表示される

といった流れになるでしょうか...
(このやり方はパラメータを触ることで自由にデータを書き換えることができてしまうため、おすすめはしません。
また、実装なされるということであれば、「JavaScript GETパラメータ」などと検索するといろいろヒットするはずなので調べてみてください!)

あまりお力になれずすみません...

投稿2022/06/04 12:42

編集2022/06/04 12:45
raratyurara

総合スコア45

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tetenasa09

2022/06/05 00:05

raratyurara様 コメントありがとうございます。 プログラミングを学習し始めたばかりでPHPの利用まで考えられていませんでした。 教えていただいた方法で検索しながら試してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問