見出し画像

MediaRecorderはQuickTimeと相性悪い

音声翻訳のシステムを作りました。
こんなやつ(^^)

音声のテキスト化は以前アプリで経験があったんで、その手の方法を踏襲しました・・ところ、えらい目にあいましたorz
今回はその状況報告を(^^)v

事の始まり。。

現場で色んな人がいてるんで、会話に困ってるって相談があり、なら翻訳システム作りましょうということに。
アプリにすると、後々めんどいのでWebサービスでやることにしました。
流れとしては、
1)WebでMediaRecorderを作って、音声主としてしてwavファイルを作成
2)サーバーにPOSTする
3)Base64変換する
4)Google Speech to Textで文字列変換する
5)Google Translateで翻訳する
6)Webに戻して表示してもらう
こんな、まぁ、一般的な流れです。
今どきなんで、ChatGPTでも考えてはみました。
4)5)が一発でやってくれるんではって。。。
もしかして、採用してたら今回のトラブルにはハマらなかったかも。。
ChatGPTでやるのは、今後のテーマとして残しておきます(^^)

なににハマった???

基本的なロジックは、ちゃっちゃとできました。
やっぱりChatGPTさんには、とってもお世話になりましたm(_ _)m
ではなにが。。。。
それは作成してwavファイルからサーバーで音声が取り出せないんですよ!!
Google Speech to Textで変換しても、なにも出てこない。
録音時に音声レベルを見れるようにして確認してみると、きちんと振れてるんですよね。
Windowsのメディアプレイヤーでは音声が出る。
でも、QuickTimeでは「互換性がありません。」となってしまいます。
ネットで配布されているwavファイルを使うと、QuickTimeで(あたりまえですが)再生される。
再生されたファイルは音声が取り出せてGoogle Speech to Textで変換ができました。
ChatGPTに相談したんですが、「ffmpeg」で変換してください的なとんでも回答がサンプルとともに返ってきました(^^;
※この辺りご存じの方おられましたら、是非アドバイスくださいm(_ _)m

で、どうした???

しかたありません、MediaRecorderを使わない方法を探す必要があります。
幸い以下のページが見つかりました。

ブラウザで録音してwavで保存

ScriptProcessorでゴニョゴニョして、wavファイルを作成します。
できたファイルをアップロードして、サーバーで処理したところ、見事に音声が取り出せました。(^^)b

今後の課題

ScriptProcessorが結構古くて、後継(?)のAudioWorkletがでてるんで、そちらの方で実装し直そうかとは考えています。
それと、やっぱりChatGPTでやれないかですね(^^)
費用はどうなんだろも検討課題になりますね。
では(^^)v


この記事が気に入ったらサポートをしてみませんか?