Elevenlabs
Elevenlabs
generator in kwik visual editor for example sync text & audio
- GitHub/lua-mecab-master/test.lua
- server/tests/elevenlabs_post.http
- editor/tests/suite_page2_sync2audio.lua
Steps
- input text
- mecab.command
- post elevenlabs
- save files in tmp
- copy.command to App/book/assets
- .mp3
- .txt
steaming
video
mecab
mecab –output-format-type=wakati
echo "Elevenlabsへようこそ! \n以下の再生ボタンをクリックして、このテキストを日本語の音声に変換してください。ドロップダウンメニューを使用して、自分のテキストを追加したり、声をカスタマイズしたりできます。\n" | mecab --output-format-type=wakati
output with linebreaks
Elevenlabs へ ようこそ ! 以下 の 再生 ボタン を クリック し て 、 この テキスト を 日本語 の 音声 に 変換 し て ください 。 ドロップダウンメニュー を 使用 し て 、 自分 の テキスト を 追加 し たり 、 声 を カスタマイズ し たり でき ます 。
escape linbreaks with \n
Elevenlabs へ ようこそ ! \n以下 の 再生 ボタン を クリック し て 、 この テキスト を 日本語 の 音声 に 変換 し て ください 。\n ドロップダウンメニュー を 使用 し て 、 自分 の テキスト を 追加 し たり 、 声 を カスタマイズ し たり でき ます 。
convert it to timecodes with elevanlabs
httpYac
POST /text-to-speech/{{voice_id}}/with-timestamps xi_api_key:xxxxxxxxxxxxxxxxxx Content-Type: application/json { "text": "Elevenlabs へ ようこそ ! \n以下 の 再生 ボタン を クリック し て 、 この テキスト を 日本語 の 音声 に 変換 し て ください 。\n ドロップダウンメニュー を 使用 し て 、 自分 の テキスト を 追加 し たり 、 声 を カスタマイズ し たり でき ます 。", "model_id": "eleven_multilingual_v2", "voice_settings": { "stability": 0.5, "similarity_boost": 0.75 } } >>! ./outputRedirection_jp.json
output
test_decode64_words()
- character_start_times_seconds
- character_end_times_seconds
test_decode64_mp3()
- udio_base64
=>
0 1.242 Elevenlabs
1.335 1.405 へ
1.509 2.067 ようこそ
2.09 2.415 !
2.415 2.415 \n
2.589 2.74 以下
2.833 2.891 の
3.146 3.425 再生
3.541 3.75 ボタン
3.808 3.878 を
3.994 4.365 クリック
4.458 4.481 し
4.702 4.83 て
5.062 5.062 、
5.201 5.375 この
5.468 5.886 テキスト
5.956 6.002 を
6.118 6.49 日本語
6.618 6.641 の
6.838 7.036 音声
7.129 7.152 に
7.372 7.581 変換
7.651 7.674 し
7.732 7.779 て
7.872 8.336 ください
8.754 8.754 。\n
8.754 8.754
8.905 9.915 ドロップダウンメニュー
10.008 10.077 を
10.228 10.449 使用
10.542 10.565 し
10.762 10.879 て
11.076 11.076 、
11.25 11.413 自分
11.494 11.552 の
11.645 12.028 テキスト
12.086 12.167 を
12.376 12.516 追加
12.597 12.62 し
12.736 13.05 たり
13.305 13.305 、
13.642 13.642 声
13.758 13.827 を
13.978 14.547 カスタマイズ
14.64 14.663 し
14.768 15.047 たり
15.186 15.348 でき
15.499 15.65 ます
function M.xtest_decode64_words()
local json = require("json")
local mime = require("mime")
local path = "server/tests/outputRedirection.json"
local data = json.decode(util.jsonFile(path))
local alignment = data.alignment
local normalized_alignment = data.normalized_alignment
print(#alignment.characters, normalized_alignment.characters)
local wordEntries = {}
local word = ""
local s, e = 0, 0
for i, v in next, alignment.characters do
word = word ..v
if v == " " or v =="\n" then
e = alignment.character_end_times_seconds[i]
wordEntries[#wordEntries + 1] = {word=word, startTime=s, endTime =e}
local t = word:gsub("\n", "\\n")
print(s, e, t)
word = ""
s = alignment.character_end_times_seconds[i+1]
end
end
local dst = system.pathForFile( "myAudio.txt", system.DocumentsDirectory )
-- Open the file handle
local file, errorString = io.open( dst, "w+" )
if not file then
print( "File error: " .. errorString )
else
for i, v in next, wordEntries do
local text = v.word:gsub("\n", "\\n")
file:write(string.format("%.3f %.3f %s \n", v.startTime, v.endTime, text ))
end
io.close( file )
end
-- character_start_times_seconds
-- character_end_times_seconds
end
function M.xtest_decode64_mp3()
local json = require("json")
local mime = require("mime")
local path = "server/tests/outputRedirection.json"
local data = json.decode(jsonFile(path))
local bin = mime.unb64(data.audio_base64)
local dst = system.pathForFile( "myAudio_jp_wakati.mp3", system.DocumentsDirectory )
-- Open the file handle
local file, errorString = io.open( dst, "wb+" )
if not file then
print( "File error: " .. errorString )
else
file:write( bin )
io.close( file )
end
end
