0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ブラウザの「Web Speech API」を使ったシンプルな音声認識・音声合成のテスト【2025年11月】

Last updated at Posted at 2025-11-03

この記事は Web Advent Calendar 2025 の記事にする予定です)

はじめに

以前、ブラウザ上で手軽に扱える「音声認識・音声合成」として使ったことがある「Web Speech API」の話です。

記事の中で扱う「Web Speech API」については、MDN の以下のページに説明が書かれています。

●ウェブ音声 API - Web API | MDN
 https://developer.mozilla.org/ja/docs/Web/API/Web_Speech_API

2025-11-01_20-32-56.jpg

音声認識・音声合成のインターフェース

Web Speech API には、音声認識・音声合成のそれぞれのインターフェースが個別にあります。MDN のページで見てみると、それぞれの具体的な内容は以下となります。

音声認識のインターフェース

以下は、音声認識用のインターフェースです。

●SpeechRecognition - Web API | MDN
 https://developer.mozilla.org/ja/docs/Web/API/SpeechRecognition

2025-11-01_20-35-25.jpg

上記のページの下のほうには Speech color changer というサンプルの、コードが示されていたりもします。

音声合成のインターフェース

以下は、音声合成用のインターフェースです。

●SpeechSynthesis - Web API | MDN
 https://developer.mozilla.org/ja/docs/Web/API/SpeechSynthesis

2025-11-01_20-35-34.jpg

上記のページの下のほうには音声合成のサンプルのコードが示されていたりもします。

実際に試してみる

それでは、実際に試していきます。

音声認識

以下は音声認識の処理を、シンプルに試してみたものです。

サンプルの内容について

このサンプルの動作について、少しだけ補足します。

このサンプルをブラウザで開くと、以下のようにボタンだけが表示された状態になります。

2025-11-04_00-32-19.jpg

このボタンを押すとマイク利用の許可を求められるので、それを許可します。その後、例えば「音声認識のテスト」としゃべると、以下のように途中段階の認識結果が、ボタンの下に表示されます。

2025-11-04_00-32-52.jpg

そして、最終的にしゃべった内容が最後まで認識されたら、以下のように確定された認識内容を表示するようにしています。

2025-11-04_00-32-33.jpg

この後で少しだけ、コードについて補足します。

マイク利用の許可に関わる部分

以下は、マイク利用の許可に関わる部分です。

今回、ボタン押下で音声認識を行うようにしていますが、そのボタン押下に関して「最初の押下時のみ、マイク利用の権限を求める」という処理にするために、上記の処理を行っています。

認識処理に関わる部分

認識処理に関わる部分はいくつかありますが、例えば以下の部分です。

Web Speech API による音声認識では、認識途中の内容も取得できるのですが、今回はその途中段階の内容も表示するようにしています。

音声合成

以下は音声合成の処理を、シンプルに試してみたものです。

サンプルの内容について

このサンプルの動作について、少しだけ補足します。

このサンプルをブラウザで開くと、以下のようにテキストボックスとボタンが表示された状態になります。

2025-11-04_00-36-46.jpg

上記のテキストボックスにテキストを入力し、その状態で「読み上げ開始」ボタンを押すと、音声合成が行われます。

この後で少しだけ、コードについて補足します。

音声合成に関わる処理

音声合成に関わる処理の一部を、以下でピックアップしてみます。

今回の内容では、「ボタン押下時に、テキストボックスに入力されていたテキストを読みあげる」という処理にしています。

上記の処理では、「ボタン押下時に既に読み上げ中であれば、既に実行中の内容をキャンセルする」ということをやっています。また、読み上げの言語は日本語が基本となるようにして、速度・ピッチは標準設定で読み上げを行う処理にしています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?