Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

このサービスのこだわった点、大変だった点 #243

Closed
konjikicity opened this issue Jun 10, 2022 · 0 comments
Closed

このサービスのこだわった点、大変だった点 #243

konjikicity opened this issue Jun 10, 2022 · 0 comments
Assignees
Labels
ドキュメント ドキュメント

Comments

@konjikicity
Copy link
Owner

konjikicity commented Jun 10, 2022

このサービスのこだわった点

Vue.jsのSPAという選択

こちらのサービスは録音を2回行ったりと、画面遷移が多いです。
Vue.jsのSPAで作成することで、画面遷移のストレスを軽減し、
モーダルを使えるところは使って、UXの向上に努めました。

継続的に使っていただけるような機能

もともとは練習するだけのものでしたが、Mypageのカレンダー機能を追加し
練習をいつやってどんな練習をしたか一目でわかるようにしました。
これからも継続的にいかに使っていただけるかを考えていきたいです。
主に考えている機能は

  • MyPageの充実(UserEditやアバターなど)
  • Userが作成した文章を練習できる機能
  • Rakeタスクなどで練習する文章を1週間毎に更新する

大変だった点

判定機能の作成

まずどんな文章でも判定できるようにするため判定機能の基準を

選択した文章と音声認識した文章を比較して何文字あっているかの差分で判定する

といった基準を自分で考えてロジックを作成しましたが、問題がでました。

・音声認識された文章は自動で漢字になる

webspeechAPIを使用して音声認識をすると、自動で漢字に変換されてしまうということがおきました。
選択される文章はすべてひらがなで統一していたので、漢字に直されてしまうと、予期していない
差分が生まれてしまい、かなり詰まりました。

→ ひらがな化APIを使用して解決!

漢字に直されていた文章をひらがな化APIを使用することで、ひらがな同士での比較が可能になりました!

・ひらがな化APIで変換した文章は文節で空白が含まれた文字になる

ひらがな化APIを使用した文章は文節で空白が生まれてしまい、文字単位で比較をしているため
空白も1文字としてカウントされ、これも予期していない差分が生まれていました。

→ javascriptのreplaceメソッドと正規表現を使用して空白文字を削除

const resultWordReplace = resultWord.replace(/\s+/g, "");

正規表現「\s+」と記述することで、文書中の全角空白・半角空白を指定することができ、gフラグオプションで、全ての全角空白・半角空白を空文字に置き換えることができるので正しい判定ができるようになりました。

このやり方はよかったかわかりませんが、想定する動きを連続したエラーの中から
自分で考えて導き出す過程がすごく大変でした。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ドキュメント ドキュメント
Projects
None yet
Development

No branches or pull requests

1 participant