WebスピーチAPIで音声制御されたオーディオプレーヤーを作成する
コアポイント
- Web Voice APIは、Web開発者が音声認識と合成をWebページに統合できるようにするJavaScript APIです。これにより、特に障害のある人や複数のタスクを同時に処理する必要があるユーザーにとって、ユーザーエクスペリエンスが向上します。
- 音声認識APIでは、マイクにアクセスするためにインターネット接続とユーザーの許可が必要です。 Annyangなどのライブラリは、複雑さを管理し、前方の互換性を確保するのに役立ちます。
- 音声合成APIと音声認識APIを使用して、音声制御されたオーディオプレーヤーを構築できます。これにより、ユーザーは曲の間でナビゲートし、音声コマンドを使用して特定の曲を要求できます。
- オーディオプレーヤーには、設定データ、UIメソッド、音声APIメソッド、およびオーディオ操作メソッドが含まれます。ユーザー入力を識別および処理するコードは、WebKitブラウザーにのみ適用できます。
- Web Voice APIには、音声コマンドを使用してメールの閲覧、Webサイトのナビゲート、Webの検索など、多くの領域で使用される可能性があります。実装が安定し、新機能が追加されると、このAPIの使用が成長すると予想されます。
// .sp_hiddenblock { マージン:2px; 境界線:1pxソリッドRGB(250、197、82); ボーダーラジウス:3px; パディング:5px; 背景色:RGBA(250、197、82、0.7); } .sp_hiddenblock.sp_hide { ディスプレイ:なし!重要。 } この記事は、エドウィン・レイノソとマーク・ブラウンによってレビューされました。 SitePointコンテンツを最高の状態にしてくれたすべてのSitePointピアレビュアーに感謝します! Web Voice APIは、Web開発者が音声認識と合成機能をWebページに統合できるようにするJavaScript APIです。
これには多くの理由があります。たとえば、障害のある人(特に視覚障害のあるユーザー、またはハンドモビリティが限られているユーザー)の経験を強化したり、運転などの他のタスクを実行しながらユーザーがWebアプリケーションと対話できるようにすること。Web Voice APIを聞いたことがない場合、またはすぐに開始したい場合は、Aurelio de Rosaの記事を読むことをお勧めします。
ブラウザサポート
ブラウザメーカーは、最近、音声認識APIと音声合成APIの両方を実装し始めたばかりです。ご覧のとおり、これらのAPIのサポートは完璧とはほど遠いので、このチュートリアルを勉強している場合は、適切なブラウザを使用してください。
さらに、音声がネットワーク上に送信され、結果がブラウザに返されるため、音声認識APIには現在、インターネット接続が必要です。接続がHTTPを使用する場合、ユーザーはリクエストが作成されるたびにサイトがマイクを使用できるようにする必要があります。接続がHTTPSを使用している場合、これを1回だけ行う必要があります。
音声認識ライブラリ
ライブラリは、複雑さを管理し、互換性があることを保証します。たとえば、別のブラウザが音声認識APIのサポートを開始した場合、ベンダーのプレフィックスを追加することを心配する必要はありません。
Annyangはこのようなライブラリであり、非常に使いやすいです。
もっと学ぶ。
Annyangを初期化するには、スクリプトをWebサイトに追加します。
<🎜>
そして、コマンド名をキーとして使用し、メソッドとしてコールバックを使用するオブジェクトを使用してコマンドを追加します。
if (annyang) { /*逻辑*/ }
最後に、それらを追加して、次のコマンドで音声認識を開始します。
var commands = { 'show divs': function() { $('div').show(); }, 'show forms': function() { $("form").show(); } };
この記事では、音声制御されたオーディオプレーヤーを構築します。音声合成API(ユーザーにどの曲が再生されているか、またはコマンドが認識されていないことを伝えるために使用される)と音声認識API(異なるアプリケーションロジックをトリガーする文字列に変換)の両方を使用します。
annyang.addCommands(commands); annyang.start();
プロジェクトに追加の依存関係を追加せずにAPIを使用する方法を示したいため、音声認識のためにサードパーティのライブラリに依存することはありません。音声制御されたオーディオプレーヤーは、
属性をサポートするブラウザのみをサポートしています。 Chromeの最新バージョンは安全な選択である必要があります。
いつものように、Githubで完全なコードとCodepenのデモを見つけることができます。
初心者 - プレイリストinterimResults
新しいオブジェクトを
配列に追加し、オーディオプレーヤーに新しい曲を自動的に含めることができるはずです。
オーディオプレーヤー
var data = { "songs": [ { "fileName": "https://www.ruse-problem.org/songs/RunningWaters.mp3", "singer" : "Jason Shaw", "songName" : "Running Waters" }, ...
songs
一部の設定データ
音声APIに関連するメソッド(認識や処理コマンドなど)
オーディオ操作に関連するメソッド(たとえば、再生、一時停止、停止、前、次へ)
- set data
- これは比較的簡単です。
- 属性は、ユーザーが現在入っている曲のインデックスを指します。これは、たとえば、前/次の曲を再生したり、停止/一時停止したりする必要がある場合に便利です。
ここで完全なコードを表示できます。
uiメソッド
UIには、利用可能なコマンドのリスト、利用可能なトラックのリスト、およびユーザーに現在のアクションと以前のコマンドを通知するコンテキストボックスが含まれます。 UIメソッドについては詳しく説明しませんが、簡単な概要を説明します。これらのメソッドのコードはこちらで見つけることができます。
load
これは、以前に宣言したプレイリストを繰り返し、アーティストの名前とともに、利用可能なトラックのリストに曲の名前を追加します。ChangeCurrentsOngeffect
これは、現在どの曲が再生されているかを示しています(グリーンでマークし、その横にあるヘッドフォンを追加することで)、どの曲が再生されているかを示します。
playsong
これは、ユーザーの曲がメソッド(この情報をボックスに追加する)を介して再生または終了していることを示し、Voice APIを介してこの変更をユーザーに通知していることを示しています。
changestatuscodechangeStatusCode
上記のように、これはコンテキストボックスのステータスメッセージを更新します(たとえば、新しい曲が再生されていることを示します)。
changelastcommand
最後のコマンドボックスを更新する小さなヘルパー機能。 speak
スピナーアイコンを非表示または表示するための小さなヘルパー関数(ユーザーの音声コマンドが現在処理されていることを示します)。
プレーヤーメソッド
プレイヤーは、あなたが期待するかもしれないもの、すなわち、再生を開始、停止、一時停止し、トラック間を行き来することについて責任を負います。繰り返しますが、私はこれらの方法を詳細に説明するつもりはありませんが、むしろあなたをGitHubコードベースに導きたいと思います。
play
これは、ユーザーが曲を聞いたかどうかをチェックします。そうでない場合は、曲を開始します。そうでなければ、現在キャッシュされた曲で以前に説明した
メソッドのみを呼び出します。これは
であり、インデックスに対応しています。
pausesongplaySong
audioData.songs
これは、2番目のパラメーターとして渡されるものに応じて、曲を完全に一時停止または停止します(再生時間を曲の開始まで返します)。また、ステータスコードを更新して、曲が停止または一時停止したことをユーザーに通知します。 currentSong
これは、最初の唯一のパラメーターに基づいて曲を一時停止または停止します:
prev
これは、前の曲がキャッシュされているかどうかをチェックします。もしそうなら、現在の曲を一時停止し、
を減らし、現在の曲を再び演奏します。新しい曲が配列にない場合、それは同じことを行いますが、最初にインデックスの減少に対応するファイル名/パスに基づいて曲をロードします。
次の
ユーザーが以前に曲を聞いたことがある場合、この方法はそれを一時停止しようとします。次の曲がデータオブジェクト(つまり、プレイリスト)に存在する場合、ロードして再生します。次の曲がない場合、ステータスコードを変更し、ユーザーに最後の曲に到達したことをユーザーに通知します。 currentSong
currentSong
SearchSpecificSong
これはキーワードをパラメーターとして受け取り、曲名とアーティストの間で線形検索を実行し、最初の試合を再生します。
Voice APIメソッド
Voice APIは驚くほど簡単に実装できます。実際、コードの2行だけがユーザーとWebアプリケーションを通信させることができます:
<🎜>
ここで行うことは、私たちが言いたいテキストを使用してutterance
オブジェクトを作成することです。 speechSynthesis
インターフェイス(window
オブジェクトを処理し、生成された音声の再生を制御する責任があります。 utterance
話す
メソッドでその実用的なアプリケーションを見ることができます。これは、パラメーターとして渡されたメッセージを声に出して読み取ります。
speak
if (annyang) { /*逻辑*/ }
processcommands scope
scope
この方法はそれほどエキサイティングではありません。それは議論としてコマンドを取り、それに応答するための適切な方法を呼び出します。正規表現を使用して、ユーザーが特定の曲を再生したいかどうかを確認します。そうしないと、異なるコマンドをテストするためにスイッチステートメントに入ります。受信コマンドに対応していない場合、コマンドが理解されていないことをユーザーに通知します。 play
すべてを一緒にテレ
これまでのところ、プレイリストを表すデータオブジェクトと、プレーヤー自体を表す
オブジェクトがあります。次に、ユーザー入力を識別および処理するためにいくつかのコードを記述する必要があります。これはWebKitブラウザにのみ適用されることに注意してください。
ユーザーが以前と同じようにシンプルなアプリに話しかけるコード:
audioPlayer
これにより、ユーザーがページにマイクにアクセスできるようになります。アクセスを許可する場合は、話を開始できます。停止すると、
リファレンス:HTML5音声認識API
var commands = { 'show divs': function() { $('div').show(); }, 'show forms': function() { $("form").show(); } };
onresult
ご覧のとおり、オブジェクト上で
は、起源に基づいた認識結果を改善する興味深いオプションです。
次に、
メソッドを開始する前に、annyang.addCommands(commands); annyang.start();
イベントのハンドラーを宣言します。 webkitSpeechRecognition
結果の処理
スピーチ認識者が結果を得ると、少なくとも現在の音声認識の実装と私たちのニーズのコンテキストで、いくつかのことをしたいと考えています。結果が発生するたびに、それを配列に保存し、ブラウザがさらに結果を収集できるように3秒間待機するタイムアウトを設定したいと考えています。 3秒後、収集された結果を使用して、それらを逆順序でループし(新しい結果が正確である可能性が高い)、特定されたトランスクリプトに利用可能なコマンドのいずれかが含まれているかどうかを確認します。その場合、コマンドを実行し、音声認識を再開します。最終結果を待つのに最大1分かかることがあるため、これを行います。これにより、ボタンをクリックするだけで速くなるため、オーディオプレーヤーはかなり反応して意味がなくなります。
<🎜>
ライブラリを使用していないため、音声認識者をセットアップし、各結果をループし、その転写が指定されたキーワードと一致するかどうかを確認するために、より多くのコードを作成する必要があります。
最後に、音声認識の終わりにすぐに再起動します:
if (annyang) { /*逻辑*/ }
このセクションの完全なコードをこちらで表示できます。
それだけです。これで、完全に機能的で音声制御されたオーディオプレーヤーができました。 Githubからコードをダウンロードして試してみるか、Codepenデモをチェックすることを強くお勧めします。また、HTTPSを介してサービスを提供するバージョンも提供しています。
結論
この実用的なチュートリアルが、Web Voice APIの可能性の良い紹介を提供することを願っています。実装が安定し、新機能が追加されると、このAPIの使用が成長することがわかります。たとえば、将来のYouTubeは完全に音声制御されていると思います。ここでは、さまざまなユーザーのビデオを視聴したり、特定の曲を演奏したり、音声コマンドを使用して曲を移動したりできます。
Web Voice APIは、他の多くの領域を改善したり、新しい可能性を開いたりすることもできます。たとえば、Voiceを使用して、メールを閲覧したり、Webサイトをナビゲートしたり、ネットワークを検索したりします。
プロジェクトでこのAPIを使用していますか?以下のコメントでお聞きしたいです。
Web Voice API(FAQ)を使用した音声制御オーディオプレーヤーについてよく尋ねる質問
音声制御されたオーディオプレーヤーでWeb Voice APIはどのように機能しますか?Web Voice APIは、開発者が音声認識と合成をWebアプリケーションに統合できる強力なツールです。音声制御されたオーディオプレーヤーでは、APIは、アプリケーションが解釈および実行できるテキストに変換することにより機能します。たとえば、ユーザーが「再生」と書かれている場合、APIはそれをテキストに変換し、アプリケーションはこれがオーディオの再生を開始するコマンドであることを理解します。このプロセスには、洗練されたアルゴリズムと機械学習手法が含まれ、人間の発話を正確に特定して解釈します。
音声制御されたオーディオプレーヤーを使用することの利点は何ですか?
音声制御されたオーディオプレーヤーにはいくつかの利点があります。まず、ハンズフリーエクスペリエンスを提供します。これは、ユーザーが他のタスクで忙しい場合に特に便利です。第二に、モビリティが低下したユーザーのアクセシビリティを強化することができます。これは、従来のコントロールを使用するのが困難な場合があります。最後に、アプリを競争から際立たせることができる斬新で魅力的なユーザーエクスペリエンスを提供します。
任意のWebブラウザでVoice APIを使用できますか?
Google Chrome、Mozilla Firefox、Microsoft Edgeなど、ほとんどの最新のWebブラウザーはVoice Web APIをサポートしています。ただし、サポートはバージョンとプラットフォームによって異なる場合があるため、APIをアプリケーションに統合する前に、特定のブラウザの互換性を確認することが常に最適です。
音声制御されたオーディオプレーヤーの音声認識の精度を改善する方法は?
高品質のマイクを使用し、バックグラウンドノイズを減らし、APIをトレーニングして、ユーザーの音声とアクセントをよりよく理解して、音声認識の精度を向上させることができます。さらに、アプリケーションにエラー処理を実装して、未確認のコマンドを処理し、ユーザーにフィードバックを提供できます。
音声制御されたオーディオプレーヤーで音声コマンドをカスタマイズできますか?
はい、音声制御されたオーディオプレーヤーで音声コマンドをカスタマイズできます。これは、アプリケーションコードで独自のコマンドセットを定義することで実行できます。これは、Web Voice APIが認識して解釈することです。これにより、特定のニーズと好みに基づいてユーザーエクスペリエンスをカスタマイズできます。
Web Voice APIは英語以外の言語をサポートしていますか?
はい、Web Voice APIは複数の言語をサポートしています。 API設定で言語を指定でき、その言語のコマンドを認識して解釈します。これにより、国際的な聴衆向けのアプリケーションを開発するための普遍的なツールになります。
Web Voice APIのセキュリティはどうですか?
Web Voice APIは、セキュリティを念頭に置いて設計されています。安全なHTTPS接続を使用して音声データを送信し、個人情報を保存しません。ただし、他のWebテクノロジーと同様に、ソフトウェアを定期的に更新したり、一般的なWebの脆弱性からアプリケーションを保護するなど、セキュリティベストプラクティスに従うことが重要です。
モバイルアプリケーションでWeb Voice APIを使用できますか?
Voice Web APIは主にWebアプリケーションで使用するように設計されていますが、Webビューを通じてモバイルアプリケーションでも使用できます。ただし、ネイティブモバイルアプリケーションの場合、より良いパフォーマンスと統合を提供する可能性のあるプラットフォーム固有の音声認識APIの使用を検討することをお勧めします。
Web Voice APIの制限は何ですか?
Web Voice APIは強力なツールですが、いくつかの制限があります。たとえば、インターネット接続が機能する必要があり、その精度は、バックグラウンドノイズやユーザーアクセントなどの要因の影響を受ける可能性があります。さらに、APIサポートは、Webブラウザとプラットフォームによって異なる場合があります。
音声Web APIを始める方法は?
Web Voice APIを開始するには、JavaScriptとWeb開発の基本を理解する必要があります。その後、機能とそれらの使用方法に関する詳細な情報を提供するAPIドキュメントを閲覧できます。また、APIを独自のアプリケーションに統合する方法を学ぶのに役立つ多くのオンラインチュートリアルや例もあります。
以上がWebスピーチAPIで音声制御されたオーディオプレーヤーを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます
