質問: 現在、音声を文字に起こし、Web上に整形してUPする事に取り組んでいます。音声入力では、マイクの音声を任意の時間(ボタンを押して録音を開始してからもう一度押して停止するまでの間)録音できるソフトを作りたいと考えています。 使用言語としては、その他のシステムとの連携も考えて、使い慣れたPython(2.7.10)を検討しています。調べた記事によると、pyaudioを使えば録音はできそうなのですが、こちらの場合は時間を指定する必要がありそうです。 どなたか、Python(+その他のフリーソフト)で上記技術課題を解決する方法をご存じの方が居ましたら教えて頂け無いでしょうか?
回答: 参照されている記事は、あくまでサンプルですので、例えば無限ループでループ内で終了条件をチェックするなどすれば、あらかじめ録音時間を決定しておく事なく録音を終了出来ます。 それはそれとして、録音するだけであれば既存のコマンドで出来ますから、とりあえずユーザインターフェイス部分だけ作成されてはいかがでしょうか。 録音処理を自作する事になっても、UI とは別プロセスにするのが色々と簡単ですので、基本の流れは変わらないと思います。 下記は SoX に付属の `rec` コマンドを使った例です。 ``` #!/usr/bin/python3 import subprocess print("Start recording...") p = subprocess.Popen(("rec", "-q", "out.ogg")) input("Enter to stop: ") p.terminate() try: p.wait(timeout=1) except subprocess.TimeoutExpired: p.kill() ```