JavaScript
PowerShell
Windows10
Tone.js

俺はブラウザでラッパーになる part 1

ある日、abema.tvを見ていて男は思った。

「ラッパーになりたい!」


tl;dr


音声ファイルの準備


  • Windows10環境では下記をPowershellプロンプトで実行し、wavファイルを生成する。

  • MacOSXな人は、 Say コマンドでも使ってください。

Add-Type -AssemblyName System.speech

$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer
0x3041..0x3093 | %{ # ぁ~ん
$s = [string][char]$_
$speak.setOutputToWaveFile("$($s).wav")
[void]$speak.Speak($s+"ー")
}


  • 通常の日本語環境なら Microsoft Haruka Desktop の声になっていると思います

  • 下記コマンドでインストールされている音声を確認し、設定するもよし。

  $speak.GetInstalledVoices() | ?{$_.VoiceInfo.Culture -eq "ja-JP"} | %{$_.VoiceInfo}

$speak.SelectVoice("Microsoft Haruka Desktop")


  • 出来上がったwavファイルを ffmpeg でmp3とoggに変換します。

gci *.wav | %{$f=$_.fullname;$g=$f -replace ".wav$",".mp3"; cmd /c "C:\path\to\ffmpeg.exe -i $($f) -af silenceremove=1:0:-60dB $($g)"}

gci *.wav | %{$f=$_.fullname;$g=$f -replace ".wav$",".ogg"; cmd /c "C:\path\to\ffmpeg.exe -i $($f) -af silenceremove=1:0:-60dB $($g)"}


Tone.jsでしゃべらす


  • http://uniqode.qiita.s3-website-ap-northeast-1.amazonaws.com/rap/1/


  • pushを押すと、、 M.C. MS Haruka a.k.a. Windows のラップが!

  • おれがえむしーえむえすはるかーーこのこえがきみにとどきますかーー

  • 単純に一定のリズムで再生しているだけです。HTMLソース見てもらえば、 Tone.js のおかげで簡単なコードしか書いていないと分かります。

  • おまけとして、Text入力欄に とどいたぜーそのこえがーーとどろかせーおとのれんさーー などと入力して、pushしなおせば、任意のラップができます(対応はひらがなのみ)!


反省/まとめ


  • じゃじゅじょ、などの拗音付きの音は個別に準備した方がよさそう…

  • Tone.jsのサンプラーを使えばピッチ指定も出来て、よりリアルに出来るのでは

  • part2でさらなる改善を図りたいです。改善案のコメントをください!

  • Respect to Cylob Rewind !