##目的
ブラウザで簡単な音声合成するためのコードを書こうとしており、中国語がサポートされているか知りたいです。
##やったこと・知りたいこと
そこでこちらの下の方にある「仕様」のWeb Speech APIから「supported language」のような項目を探したのですが、このAPIでサポートされている言語が見つけられませんでした。どなたかどこに書いてあるか教えていただけますでしょうか。よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
※直接的な回答とはなっていないのですが、参考として
APIの各情報はあくまでインターフェースであって、実際の言語サポートの仕方については実装をしているブラウザに依存すると思います。
音声合成等をローカルで行う関係上、ブラウザだけでなくOSなどの影響もあります。
対応言語ではなく合成時の音ソース単位であれば、speechSynthesis.getVoices
で音声データのオブジェクトのリストを取得できます。
このオブジェクトには、内部の名称や言語を確認することができます。
ブラウザの開発ツール上にあるコンソールで以下のコードを実行すると、
javasccript
1const ut = new SpeechSynthesisUtterance(); 2ut.text = 'hello'; 3speechSynthesis.getVoices();
以下のような結果を取れます。
0: SpeechSynthesisVoice { voiceURI: "urn:moz-tts:sapi:Microsoft Haruka Desktop - Japanese?ja-JP", name: "Microsoft Haruka Desktop - Japanese", lang: "ja-JP", … }
1: SpeechSynthesisVoice { voiceURI: "urn:moz-tts:sapi:Microsoft Zira Desktop - English (United States)?en-US", name: "Microsoft Zira Desktop - English (United States)", lang: "en-US", … }
※自環境である、Windows10+Firefoxでのケース
※Chromeだと23個ほど出てきました。
※また、最初の2行はspeechSynthesis.getVoices
のみの実行ではリストが空だっためです
投稿2021/08/14 13:53
総合スコア2740
0
そのページ(https://wicg.github.io/speech-api/)はWeb Speech APIの仕様を記載しているだけであり、
どの言語をサポートしているかは、使っているプラットフォーム(ブラウザ)に依存します。
使っているブラウザがどの言語をサポートしているかは、
たとえばChromeならば、F12を押してDevToolsを開き、
コンソールに下記のコードを張り付けて実行することで、一覧を表示できます。
(参考:https://mseeeen.msen.jp/list-voices-with-web-speech-synthesis-api/)
js
1function loadVoices() { 2 console.log(window.speechSynthesis.getVoices().map(x => [x.name, x.lang].join("\t")).join("\r\n")); 3}; 4loadVoices(); 5window.speechSynthesis.onvoiceschanged = function(e) { loadVoices(); }
表示された中に
「Microsoft Yunyang Online (Natural) - Chinese (Mainland) zh-CN」
のような行があれば、一応中国語がサポートされています。
(「zh-CN」が「中国語(簡体字)」を表します。前半はspeechエンジンの名称です。)
【コメントより】
今回はブラウザで実行しているためブラウザでどの言語をサポートされているかを確認するとのことでしたが、発展してWebアプリやネイティブアプリにこの音声合成機能を実装する際はどこでこういったことを確認するのでしょうか?
Webアプリとネイティブアプリで対応が異なる場合があります。
<Webアプリについて>
Webアプリとは、一般的にWebブラウザを利用したアプリケーションになりますので、そのWebブラウザに対して上記の操作をすれば同様に利用可能な言語を確認できます。
(各ブラウザで上記の https://mseeeen.msen.jp/list-voices-with-web-speech-synthesis-api/ の中段にあるcodepenの「Result」ボタンを押せば、利用可能な言語が表示されます)
モバイル上のアプリを視野に入れているならば、
最新のAndroidのモバイルChromeブラウザ、iOS系のSafariブラウザはいずれも中国語をサポートしているようです。
<ネイティブアプリについて>
(ここでは、Webブラウザコンポーネントを使用しない場合を想定します)
そのプラットフォームに用意されている音声合成API、もしくはサードパーティのライブラリのAPIを利用することが可能です。
参考:https://qiita.com/maKunugi/items/90cbefe97887470fb328
主要なものを列挙すると:
Android:TextToSpeech
-> AndroidのTextToSpeechで利用できる言語は、端末ごとに異なります。
その端末の「設定」->「システム」->「言語と入力」->「詳細設定」->「テキスト読み上げの出力」の言語設定から確認できます。
(実際には、ユーザーがアプリをインストール後、ユーザーに利用させたい言語データをダウンロードさせる形になります)
iOS:AVSpeechSynthesizer
-> 開発時は、対応言語を、AVSpeechSynthesisVoiceクラスのspeechVoices()関数で取得できます。
端末側では、
設定->アクセシビリティ->VoiceOver->読み上げ->新しい言語を追加...
に記載されている言語一覧で利用可能かどうか判別できます。
投稿2021/08/14 13:48
編集2021/08/14 16:00退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/08/14 15:38
2021/08/15 06:03
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/14 14:40