Sinatraを使用するラズベリーパイ用の非常に小さなアプリを作成しました:
https ://github.com/khebbie/SpeakPi
このアプリを使用すると、ユーザーはテキストエリアにテキストを入力し、Googleにそのためのmp3ファイルを作成するように依頼できます。
そこに、Googleを呼び出してmp3ファイルを再生するspeech2.shというシェルスクリプトがあります。
#!/bin/bash
say() {
wget -q -U Mozilla -O out.mp3 "http://translate.google.com/translate_tts?tl=da&q=$*";
local IFS=+;omxplayer out.mp3;
}
say $*
次のようにコマンドラインからspeech.shを呼び出すと:
./speech2.sh %C3%A6sel
%C3%A6
デンマーク語の文字「æ」のよう に発音しますが、これは正しいです。
私は次のようにシナトラルートからspeech2.shを呼び出します。
post '/say' do
message = params[:body]
system('/home/pi/speech2.sh '+ message)
haml :index
end
そして、私がそうするとき、グーグルは「壊れたパイプ...」のようないくつかの非常に奇妙な文字を発音しますが、これは間違っています!
すべての文字a-z
が正しく発音されます
URLエンコードとデコードを試しましたが、何も機能しませんでした。
メッセージをコマンドラインに出力してみましたが、まったく"%C3%A6"
意味がありませんでした。私が何を間違っているのか分かりますか?
編集
要約して単純化するには-bashでそのように入力した場合:
./speech2.sh %C3%A6sel
できます
irbセッションを開始して、次のように入力した場合:
system('/home/pi/speech2.sh', '%C3%A6sel')
それは動作しません!