1

PHP で小さなオーディオ キャプチャを作成したかったので、テキストを音声に変換する必要がありましたが、2 つの制限があります。

まず、php-solution である必要があります。mp3/ogg を作成しても問題ありません。オーディオ タグなどを挿入して再生できます。

次に、ftp アクセスのみを使用してサーバーにインストールする必要があります。そのため、php が話す標準的なアプリケーションを使用することはできません。


だから、私はすでにいくつかの解決策を調査しました:

Jquery の Jtalk はテキストを読み上げることができますが、javascript は常にオープン ソースであるため、ここでは実用的ではありません => キャプチャはソース コードでプレーンになります。

Google には、声を出して話すための API もあります。ただし、URL の一部としてテキストを使用して extern ファイルを呼び出す必要があります。そのため、送信リクエストをリッスンすると、キャプチャも明らかになります。

PHPを使用して、独自のオーディオファイルを結合しようとしました。ここでいくつかの投稿を読んだことがありますが、多くのプレーヤーは単純なecho file_get_contents['audio1.ogg'].file_get_contents['audio2.ogg'];解決策をサポートしています。ただし、Firefox でプラグインを使用すると、最初のファイルのみが再生されます。ダウンロードして VLC で再生すると、両方のオーディオ ファイルが表示されます。また、ogg-sourceを文字に関連付けて、オーディオソースコードをスライスすることでキャプチャを認識できるため、うまくいくとしても、これにはあまり満足していません...すべてをロードすることも考えました音声タグに文字を追加し、必要に応じてそれらを再生しますが、これにより、Web のソース コード内のキャプチャが再び明らかになります。

最後に、これらすべてのことを実行できると約束した「flite」について聞きましたが、少し間違っていたと思います.ftpにいくつかのファイルを置くのではなく、サーバーに直接インストールする必要があります.


では、ftp アクセスのみでテキストを URL の一部として他の Web サイトに接続せずにテキスト読み上げソリューションを作成する方法を知っている人はいますか?

よろしく、ジュリアン

4

1 に答える 1

0

そこで、javascript と php を組み合わせたソリューションを作成しました。これは私の好みに合っていて、セキュリティを強化するために変更することができます (ノイズを追加したり、サウンド ファイルごとに文字以外のものを使用したりするなど)。

これは次のように機能します: htaccess ごとに保護された sound-folder を設定し、captcha.php-script のみがファイルを取得できるようにします。表示する文字ごとに 1 つのファイルがあります。スクリプトは、セッション、データベース、または保護されたファイルを介してキャプチャにアクセスすることもでき、現在読み取られている位置へのポインターを持っています。訪問するたびに、次の手紙の音声を返します。これは、例えば

echo file_get_contents('sounds/'.$_SESSION["curaudio"].'.ogg');

次に、html に audio-element を挿入するだけです。

<audio hidden id="Sound_captcha">
    Your browser does not support the audio element.
</audio> 

次の文字に切り替えるには JavaScript を使用します。そのためには、音声の src 属性を使用して、captcha.php ファイルのアドレスを指定します。キャッシュを防ぐために値を追加することを忘れないでください:

"captcha.php?"+(new Date()).getTime()

play()audio-element の -function を呼び出して、ファイルを再生できます。

次のファイルに切り替えるには、ファイルごとに一定の時間 (非常に安全ではありません) にendedとどまるか、audio 要素の -event を使用する必要があります。

もちろん、php スクリプトは最後に、キャプチャが完全に読み取られたときも通知する必要があります (たとえば、ajax 要求が必要な別のスクリプトで読み取られる場合や、サウンドを生成するスクリプトが奇数ごとにのみそれを実行する場合など)。アクセス、それ以外の場合はステータス、またはスクリプトは最初に必要なリロードの回数を通知します...)

簡単なボットアクセスを防ぐために変更する必要がある基本的なプレーヤーの場合はこれですべてです...しかし、私の意見では、これは少なくとも標準のテキストキャプチャと同じくらい安全であり、大きな障壁を取り除きます目に問題のある人。

于 2013-04-25T00:39:26.120 に答える