泰语书写不留空格#
在英语里,词级时间戳几乎不费成本。空格已经标出了词在哪里,剩下的工作是把已知的边界和音频对齐,这谁都能做。
泰文把词一个挨一个写在一起,中间没有任何间隔。一句话就是一串连续的字符,一个词在哪里结束,要由读者根据这些词是什么来判断。只有先把这个判断做对,泰语的时间段才可能存在。
泰语里的一个词级时间段,证明文本已经被读懂。
这正是模型当初要解决的问题,在这里变成了一项您能听到的功能。
一段带时间信息的音频#
Nom Yen 使用 Paxa TTS Flash v2,开启了时间信息。词语随着说出依次亮起,依据的是请求随音频片段一同返回的时间段。
三种请求方式#
合适的粒度就是您的播放器需要的那一种。粒度越粗越容易处理,而每种粒度的价格都相同。
word用于卡拉 OK 和跟读
每个词都有开始和结束时间。文字与音频同步高亮靠的就是它,语言学习应用也用它告诉学习者读到了哪里。
sentence用于字幕
每句一个时间段,这正是字幕行切分的单位。大多数字幕流程要的正是这一级,不必更细。
utterance用于配音和混音
整段发言一个时间段。它回答语音在文件里从哪里开始、到哪里结束,剪辑师据此把声音对齐到画面上。
无论哪种粒度,返回的音频都相同,时间段与音频在同一个响应里一起返回。
为已有的录音计时#
同样的问题也可以反过来看。一段泰语录音到手时完全没有文字,而字幕文件既需要词语,也需要每个词开始的秒数。转写稿上的词级时间段,是对词在哪里结束的同一种判断,只不过是在没有文字可读的情况下,从音频里做出的。
开启词级时间戳的语音转文字,返回覆盖完整泰语词的时间段。逐个字符为泰语计时的引擎,交回的时间段没法切成字幕条。转写稿和它的时间段在同一个响应里一起返回。
请求字幕文件,返回的就是写好的文件。字幕条在换人说话、句子结束和停顿处切开。换行落在词的边界上,在一种不留空格的文字里,这是按字符计数做不到的。SubRip 或 WebVTT 均可,行长由您设定,与转写稿在同一个响应里返回。
录音最长 60 分钟,泰语优先,其他语言按原话转写。词级时间戳和字幕文件都不影响收费。
阅读语音转文字页面先按长度翻译,再按时间朗读#
把外国视频做成泰语字幕,通常是两项工作,分属两家服务商。两项都在这里,而且第二项读取的就是第一项写出的内容。
在长度限制内翻译这一行
字幕框能容纳的字符数是固定的,而泰语译文很少和原文一样长。翻译接受每个片段的最大长度,把泰语压缩到合适的长度,同时不截断意思。
开启时间信息朗读
这行泰语送去语音合成,同时请求时间戳。返回的是音频和时间段,在同一个响应里,彼此本来就一致。
根据时间段生成文件
您的字幕或配音文件根据时间段写出。事后不需要任何对齐,因为时间信息和音频出自同一次处理。
单独做对齐,往往是字幕流程耗掉整晚的地方。这里没有什么需要对齐,时间信息和音频是一起生成的。
时间戳参考文档常见问题#
时间段是事后对齐的,还是和音频一起生成的?
和音频一起生成。时间段和音频出自同一次处理,在同一个响应里返回。没有对齐步骤,两者之间也不会产生偏移。
流式请求时能拿到时间信息吗?
可以。开启时间信息的流式请求会返回按行分隔的事件,每个时间段只传输一次,跟随它所属的数据块。
粒度会影响价格吗?
不会。词级、句级和整段发言级的时间信息费用相同,无论选哪种,音频都一样。
混合泰语和英语的文本也能用吗?
可以,词级时间段的价值正体现在这里。泰语句子里的英文产品名是泰语词中间的一个词,也按一个词计时。每个请求的文本最长 5,000 个字符。
能从录音里拿到词级时间戳吗?
可以。语音转文字接收最长 60 分钟的录音,返回的转写稿里每个泰语词都带有起止秒数。这是同一种时间段对象,只是从音频中读出。
能用于会说话的虚拟形象吗?
可以。词级时间段正是嘴型要读取的信息。请求词级时间信息,用时间段的边界驱动口型,脸部动画和音频就共用同一个时钟。