スクリプトで本へのパスをtxtで示します-出力では、音声合成が良好なフォルダーを取得します。
耳でコンテンツを消費するのが好きです-この時点で、スポーツをしたり、目を休ませたりすることができます。 通常の本にはオーディオ版があり、最悪の場合はアマチュア版であることに慣れていますが、必ずしもそうとは限りません。 今日、数時間にわたって、ロシア語のテキストを話すためのさまざまなオンラインサービスとAndroidプログラムを整理しました。
ポケットからは、同じエンジンを備えたGoogle TTSと
Googleブックスだけが好きでしたが、何らかの理由で音声品質が異なりました。
YandexのSpeechKitも興味深いものです。 しかし、それは
Ivonaからの最高の統合のよう
です -この会社は2013年にAmazonによって買収されました。 Githubは、完成したサウンドを引き締めるための12個のスクリプトを見つけましたが、本全体を発声するための完全に既製のソリューションはありませんでした。
IVONAの非公式の
Goライブラリを使用して
、Speech Cloud APIは数時間でスクリプトを作成しました-初めてGoを使用し
ます。Githubのライブラリも自動的に解除されるので、すべての依存関係が1つのファイルにあると便利です。
スクリプトは段落ごとに1つのoggファイルを作成します-平文の本がありましたが、もちろんそれを章に分割する方が論理的ですが、本全体をフィードすることはできません-入力文字数には制限があり、通常の速度で動作する約10分間の音声です。 出力形式はmp3に変更できます。 通常、ファイル名は順番にソートされます。 スクリプトの実行中、コンソールは音声演技用に送信された現在の段落を表示します。

スクリプトを機能させるには、アクセスキーとシークレットキーが必要です-私はここに残しましたが、機能しなくなった場合は、ここで
新しいキーを無料で入手でき
ます 。
package main import ( "log" "fmt" "io/ioutil" "strings" ivona "github.com/jpadilla/ivona-go" ) func main() { client := ivona.New("GDNAICTDMLSLU5426OAA", "2qUFTF8ZF9wqy7xoGBY+YXLEu+M2Qqalf/pSrd9m") text, err := ioutil.ReadFile("/home/vitaly/Desktop/test.txt") if err != nil { log.Fatal(err) } arrayOfParagraphs := strings.Split(string(text), "\n\n") i := 0 for _,paragraph := range arrayOfParagraphs { paragraph = strings.TrimSpace(paragraph) if (len(paragraph) < 1) {
ブックへのパスと出力フォルダーへのパスを置き換えた後(おそらくファイルを分割する文字を置き換えて、ロシア語の代わりに英語を指定します)、スクリプトを実行します。約10分で約100ページのttが完成します。
go run ivona-tts.go
これは私の最初の囲codeコードです。あなたの批判を歓迎します。
PS:まず第一に、すでに人によって表明された本のバージョンを探す方が良いです。