読者です 読者をやめる 読者になる 読者になる

ミライスタート TECH系ブログ

株式会社ミライスタートのエンジニア達が気になったTECH系の記事等をアップしています!

音を視る

初めまして。株式会社ミライスタート石井です。

私はITとはほど遠い、ど田舎出身のエンジニアです。
地元ではWi-Fiマイナスイオンと同義で語るくらい・・・
さすがに言い過ぎました。
神の信託と同義で語るくらい、
現世とはほど遠い地域で高校まで過ごしてきました。

その所為か、技術者として最新技術が気になる反面、田舎の誰が喜ぶのか?
という軽い葛藤に悩まされたりもします。

その中で、ちょっと前(結構前?)に話題となっていた
ウェアラブル(いつでも血圧測定器)など、暮らしに寄り添うものを中心に
私の回でお話しできればと思っています。

そこで記念すべき第一回でお話ししようと思ったのが、
音を視るという話に繋がってきます。

みなさんはテレビなどで、音を波形で見たことがお有りかと思います。
私も見たことが有ります。学生時代にも授業の一環として見ることがありました。

先日、ネットサーフィンをしていて、
たまたま聾唖者との恋愛エピソードを目にすることがありました。
手話、筆談・・・私には想像もつかない努力があるのかと思います。

その時に、ふと、聴覚に頼れないのなら視覚・触覚に頼れば良いのではないかという
素朴な疑問が浮かびました。
そうすると、iPhone使いの私としては、まず視覚に頼れないか?
iPhoneで音を拾って、波形として表示させて、それを音として捉えられないか?
余計な音をシステム的に排除すればいけるのではないか?ということを考えるようになりました。

本当に音の波形を見て言葉を視(聞き)分けられるか分かりません。
しかし、視(聞き)分けられたとしたら、自分の発した声も認知できるようになり、
話すことができるようになるかも知れません。

それが発展して、着られる(ウェアラブル)装置になれば・・・それが今回の趣旨となります。

ダメ元でも挑戦してみたいという方がいれば、
表示のさせ方などのご相談に乗りますので、ご相談頂ければと思います。

n.ishii@miraistart.com
(@を半角にして下さい。)

あ、業務外時間で対応するので、
反応が遅かったら申し訳ありません。

とりあえず、技術ブログということで、iPhoneで音を拾う方法は以下のような感じです。
技術ブログとしてはまだ途中なので次回に完成版を書こうと思います。

開発環境は、swift2.2 Xcode7.3です。

音をキャプチャーするために、delegateが必要です。

class ViewController: UIViewController,AVCaptureAudioDataOutputSampleBufferDelegate {


それと、audio機器から入力を受け付ける必要があります。

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

session = AVCaptureSession()

let device = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeAudio)
do{

try audioIntput = AVCaptureDeviceInput(device: device)
if(session.canAddInput(audioIntput))
{
session.addInput(audioIntput)
}

// 出力先を設定
audioOutput = AVCaptureAudioDataOutput()
if(session.canAddOutput(audioOutput))
{
session.addOutput(audioOutput)
}

//captureOutputを呼ぶようにする
audioOutput.setSampleBufferDelegate(self, queue: dispatch_get_main_queue())

}catch{}

if (!session.running) {
session.startRunning()

}
}


func captureOutput(captureOutput: AVCaptureOutput!, let didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, fromConnection connection: AVCaptureConnection!)
{
//キャプチャー
}


最後とってつけたようになってしまいましたが、それではまた!