テクノロジー
やってみた

Vue TypeScript SpeechRecognitionAPIで作った議事録WEBアプリをNetlifyで公開した話

こんにちは江口です。

今回はネタでこんなWEBアプリ作ってみました。

frosty-pare-b67ea5.netlify.com

※後述しますが、PC Chromeでのみ確認可能です。私はmacOS Mojave 10.14.6のChrome version: 77.0.3865.120で確認しました。

「録音」ボタンを押すと、マイクを通して音声を認識・取得します。
取得された音声は文字に起こされ、textareaに表示されます。

議事録を自動で取ってくれるようなイメージです。
textareaに反映されるだけなので、手直しも出来ます。

▼イメージ図(伝われ!!)

f:id:eguchi_asial:20191020122742p:plain
イメージ図

動機

何かフロント触る学習ネタを探していると、SpeechRecognition APIを見つけて面白そうなので触ってみました。
developer.mozilla.org

開発環境

開発環境は以下です。

  • @vue/cli 4.0.4
  • "vue": "^2.6.10",
  • "vue-class-component": "^7.0.2",
  • "vue-property-decorator": "^8.1.0",
  • "vue-router": "^3.0.6",
  • "vuex": "^3.0.1"
  • "typescript": "~3.5.3"

公開に利用したホスティングはNetlifyです。
www.netlify.com

ソースコードは以下です。
github.com

Githubと連携させており、今回はmasterリポジトリにpushするとbuuildが走ってdist以下がdeploy -> 公開される仕組みになってます。

こんな感じで、masterにpushした際にNetlify公開用のコマンドを指定します。

f:id:eguchi_asial:20191020114954p:plain
Netlify deploy設定

$npm run build することでdist下にパッケージングされた公開ファイルがbuildされるので、
そのファイルをdeployするという設定です。

ハマったこと

vue.config.jsは最初このような記述ですが

module.exports = {
  lintOnSave: false
};

公開モジュールのベースパスを指定しないとdist下のパスが解決できずに多くの方は画面が真っ白で表示されると思います。

なので、設定ファイルをこんな感じに直します。

module.exports = {
  lintOnSave: false,
  publicPath: './'
};

publicPathは以下にある通り、cli v3.3以前までは「baseUrl」プロパティが使われていたようです。
今回は3.3以上なので、publicPathを使いました。

cli.vuejs.org

>`known as baseUrl before Vue CLI 3.3`

課題

ブラウザサポートはまだ厳しい
caniuse.com

SpeechRecognition APIはChrome以外厳しいです。。。

おわりに

試験的な機能とはいえ、音声の認識精度は悪くなかったので、以下のような改良をしてみようと思います。

  • 校閲機能
    • kuromoji.jsとか入れて、自然言語処理で分かち書きして、辞書と照らし合わせる??
  • 「て」「を」「に」「は」の自動修正・サジェスト
    • 関係ないけど、「てをには」が間違っている文章見ると、脳内で修正して読み直すので中身が頭に入ってこないのは自分だけでしょうか??
  • マークダウン式に入力してくれる
  • ClipBoardにコピーボタン
  • 見た目マシにする

以上、ちょっとしたネタと検証の共有でした。
ありがとうございました。

author img for Yu Eguchi
Yu Eguchi

2010年からJava/PHP周りでWEB開発、スマホネイティブ、主にAndroidをメインに開発に従事してきました。 iOS/Androidのマルチ開発の辛さを散々経験してのMonaca(Cordova)との出合いに感動し、少数精鋭の環境で腕試しをしてみたいという興味も相まってアシアルに転職しました。 仕事ではPMなりリードエンジニアをやりつつ、社内勉強会の主催や、エンジニア採用も担当したりしてますので、 色々な方面の方々と情報交換できたらと思います。よろしくお願いします。

記事一覧

前の記事へ

次の記事へ

一覧へ戻る

「テクノロジー」カテゴリの最新記事

PAGE TOP