mirror of
https://github.com/k2-fsa/icefall.git
synced 2025-08-09 01:52:41 +00:00
deploy: 13f55d073513b3beaefdf0b7e16237b35199ca04
This commit is contained in:
parent
2660477d0d
commit
7b03f27183
@ -34,6 +34,8 @@ which will give you something like below:
|
|||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
|
"torch2.3.1-cuda12.1"
|
||||||
|
"torch2.3.1-cuda11.8"
|
||||||
"torch2.2.2-cuda12.1"
|
"torch2.2.2-cuda12.1"
|
||||||
"torch2.2.2-cuda11.8"
|
"torch2.2.2-cuda11.8"
|
||||||
"torch2.2.1-cuda12.1"
|
"torch2.2.1-cuda12.1"
|
||||||
|
41
_sources/fst-based-forced-alignment/diff.rst.txt
Normal file
41
_sources/fst-based-forced-alignment/diff.rst.txt
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
Two approaches
|
||||||
|
==============
|
||||||
|
|
||||||
|
Two approaches for FST-based forced alignment will be described:
|
||||||
|
|
||||||
|
- `Kaldi`_-based
|
||||||
|
- `k2`_-based
|
||||||
|
|
||||||
|
Note that the `Kaldi`_-based approach does not depend on `Kaldi`_ at all.
|
||||||
|
That is, you don't need to install `Kaldi`_ in order to use it. Instead,
|
||||||
|
we use `kaldi-decoder`_, which has ported the C++ decoding code from `Kaldi`_
|
||||||
|
without depending on it.
|
||||||
|
|
||||||
|
Differences between the two approaches
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
The following table compares the differences between the two approaches.
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
|
||||||
|
* - Features
|
||||||
|
- `Kaldi`_-based
|
||||||
|
- `k2`_-based
|
||||||
|
* - Support CUDA
|
||||||
|
- No
|
||||||
|
- Yes
|
||||||
|
* - Support CPU
|
||||||
|
- Yes
|
||||||
|
- Yes
|
||||||
|
* - Support batch processing
|
||||||
|
- No
|
||||||
|
- Yes on CUDA; No on CPU
|
||||||
|
* - Support streaming models
|
||||||
|
- Yes
|
||||||
|
- No
|
||||||
|
* - Support C++ APIs
|
||||||
|
- Yes
|
||||||
|
- Yes
|
||||||
|
* - Support Python APIs
|
||||||
|
- Yes
|
||||||
|
- Yes
|
18
_sources/fst-based-forced-alignment/index.rst.txt
Normal file
18
_sources/fst-based-forced-alignment/index.rst.txt
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
FST-based forced alignment
|
||||||
|
==========================
|
||||||
|
|
||||||
|
This section describes how to perform **FST-based** ``forced alignment`` with models
|
||||||
|
trained by `CTC`_ loss.
|
||||||
|
|
||||||
|
We use `CTC FORCED ALIGNMENT API TUTORIAL <https://pytorch.org/audio/main/tutorials/ctc_forced_alignment_api_tutorial.html>`_
|
||||||
|
from `torchaudio`_ as a reference in this section.
|
||||||
|
|
||||||
|
Different from `torchaudio`_, we use an ``FST``-based approach.
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
:caption: Contents:
|
||||||
|
|
||||||
|
diff
|
||||||
|
kaldi-based
|
||||||
|
k2-based
|
4
_sources/fst-based-forced-alignment/k2-based.rst.txt
Normal file
4
_sources/fst-based-forced-alignment/k2-based.rst.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
k2-based forced alignment
|
||||||
|
=========================
|
||||||
|
|
||||||
|
TODO(fangjun)
|
712
_sources/fst-based-forced-alignment/kaldi-based.rst.txt
Normal file
712
_sources/fst-based-forced-alignment/kaldi-based.rst.txt
Normal file
@ -0,0 +1,712 @@
|
|||||||
|
Kaldi-based forced alignment
|
||||||
|
============================
|
||||||
|
|
||||||
|
This section describes in detail how to use `kaldi-decoder`_
|
||||||
|
for **FST-based** ``forced alignment`` with models trained by `CTC`_ loss.
|
||||||
|
|
||||||
|
.. hint::
|
||||||
|
|
||||||
|
We have a colab notebook walking you through this section step by step.
|
||||||
|
|
||||||
|
|kaldi-based forced alignment colab notebook|
|
||||||
|
|
||||||
|
.. |kaldi-based forced alignment colab notebook| image:: https://colab.research.google.com/assets/colab-badge.svg
|
||||||
|
:target: https://github.com/k2-fsa/colab/blob/master/icefall/ctc_forced_alignment_fst_based_kaldi.ipynb
|
||||||
|
|
||||||
|
Prepare the environment
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Before you continue, make sure you have setup `icefall`_ by following :ref:`install icefall`.
|
||||||
|
|
||||||
|
.. hint::
|
||||||
|
|
||||||
|
You don't need to install `Kaldi`_. We will ``NOT`` use `Kaldi`_ below.
|
||||||
|
|
||||||
|
Get the test data
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
We use the test wave
|
||||||
|
from `CTC FORCED ALIGNMENT API TUTORIAL <https://pytorch.org/audio/main/tutorials/ctc_forced_alignment_api_tutorial.html>`_
|
||||||
|
|
||||||
|
.. code-block:: python3
|
||||||
|
|
||||||
|
import torchaudio
|
||||||
|
|
||||||
|
# Download test wave
|
||||||
|
speech_file = torchaudio.utils.download_asset("tutorial-assets/Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav")
|
||||||
|
print(speech_file)
|
||||||
|
waveform, sr = torchaudio.load(speech_file)
|
||||||
|
transcript = "i had that curiosity beside me at this moment".split()
|
||||||
|
print(waveform.shape, sr)
|
||||||
|
|
||||||
|
assert waveform.ndim == 2
|
||||||
|
assert waveform.shape[0] == 1
|
||||||
|
assert sr == 16000
|
||||||
|
|
||||||
|
The test wave is downloaded to::
|
||||||
|
|
||||||
|
$HOME/.cache/torch/hub/torchaudio/tutorial-assets/Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Wave filename</th>
|
||||||
|
<th>Content</th>
|
||||||
|
<th>Text</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav</td>
|
||||||
|
<td>
|
||||||
|
<audio title="Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
i had that curiosity beside me at this moment
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
We use the test model
|
||||||
|
from `CTC FORCED ALIGNMENT API TUTORIAL <https://pytorch.org/audio/main/tutorials/ctc_forced_alignment_api_tutorial.html>`_
|
||||||
|
|
||||||
|
.. code-block:: python3
|
||||||
|
|
||||||
|
import torch
|
||||||
|
|
||||||
|
bundle = torchaudio.pipelines.MMS_FA
|
||||||
|
|
||||||
|
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
||||||
|
model = bundle.get_model(with_star=False).to(device)
|
||||||
|
|
||||||
|
The model is downloaded to::
|
||||||
|
|
||||||
|
$HOME/.cache/torch/hub/checkpoints/model.pt
|
||||||
|
|
||||||
|
Compute log_probs
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
with torch.inference_mode():
|
||||||
|
emission, _ = model(waveform.to(device))
|
||||||
|
print(emission.shape)
|
||||||
|
|
||||||
|
It should print::
|
||||||
|
|
||||||
|
torch.Size([1, 169, 28])
|
||||||
|
|
||||||
|
Create token2id and id2token
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
.. code-block:: python3
|
||||||
|
|
||||||
|
token2id = bundle.get_dict(star=None)
|
||||||
|
id2token = {i:t for t, i in token2id.items()}
|
||||||
|
token2id["<eps>"] = 0
|
||||||
|
del token2id["-"]
|
||||||
|
|
||||||
|
Create word2id and id2word
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
.. code-block:: python3
|
||||||
|
|
||||||
|
words = list(set(transcript))
|
||||||
|
word2id = dict()
|
||||||
|
word2id['eps'] = 0
|
||||||
|
for i, w in enumerate(words):
|
||||||
|
word2id[w] = i + 1
|
||||||
|
|
||||||
|
id2word = {i:w for w, i in word2id.items()}
|
||||||
|
|
||||||
|
Note that we only use words from the transcript of the test wave.
|
||||||
|
|
||||||
|
Generate lexicon-related files
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
We use the code below to generate the following 4 files:
|
||||||
|
|
||||||
|
- ``lexicon.txt``
|
||||||
|
- ``tokens.txt``
|
||||||
|
- ``words.txt``
|
||||||
|
- ``lexicon_disambig.txt``
|
||||||
|
|
||||||
|
.. caution::
|
||||||
|
|
||||||
|
``words.txt`` contains only words from the transcript of the test wave.
|
||||||
|
|
||||||
|
.. code-block:: python3
|
||||||
|
|
||||||
|
from prepare_lang import add_disambig_symbols
|
||||||
|
|
||||||
|
lexicon = [(w, list(w)) for w in word2id if w != "eps"]
|
||||||
|
lexicon_disambig, max_disambig_id = add_disambig_symbols(lexicon)
|
||||||
|
|
||||||
|
with open('lexicon.txt', 'w', encoding='utf-8') as f:
|
||||||
|
for w, tokens in lexicon:
|
||||||
|
f.write(f"{w} {' '.join(tokens)}\n")
|
||||||
|
|
||||||
|
with open('lexicon_disambig.txt', 'w', encoding='utf-8') as f:
|
||||||
|
for w, tokens in lexicon_disambig:
|
||||||
|
f.write(f"{w} {' '.join(tokens)}\n")
|
||||||
|
|
||||||
|
with open('tokens.txt', 'w', encoding='utf-8') as f:
|
||||||
|
for t, i in token2id.items():
|
||||||
|
if t == '-':
|
||||||
|
t = "<eps>"
|
||||||
|
f.write(f"{t} {i}\n")
|
||||||
|
|
||||||
|
for k in range(max_disambig_id + 2):
|
||||||
|
f.write(f"#{k} {len(token2id) + k}\n")
|
||||||
|
|
||||||
|
with open('words.txt', 'w', encoding='utf-8') as f:
|
||||||
|
for w, i in word2id.items():
|
||||||
|
f.write(f"{w} {i}\n")
|
||||||
|
f.write(f'#0 {len(word2id)}\n')
|
||||||
|
|
||||||
|
|
||||||
|
To give you an idea about what the generated files look like::
|
||||||
|
|
||||||
|
head -n 50 lexicon.txt lexicon_disambig.txt tokens.txt words.txt
|
||||||
|
|
||||||
|
prints::
|
||||||
|
|
||||||
|
==> lexicon.txt <==
|
||||||
|
moment m o m e n t
|
||||||
|
beside b e s i d e
|
||||||
|
i i
|
||||||
|
this t h i s
|
||||||
|
curiosity c u r i o s i t y
|
||||||
|
had h a d
|
||||||
|
that t h a t
|
||||||
|
at a t
|
||||||
|
me m e
|
||||||
|
|
||||||
|
==> lexicon_disambig.txt <==
|
||||||
|
moment m o m e n t
|
||||||
|
beside b e s i d e
|
||||||
|
i i
|
||||||
|
this t h i s
|
||||||
|
curiosity c u r i o s i t y
|
||||||
|
had h a d
|
||||||
|
that t h a t
|
||||||
|
at a t
|
||||||
|
me m e
|
||||||
|
|
||||||
|
==> tokens.txt <==
|
||||||
|
a 1
|
||||||
|
i 2
|
||||||
|
e 3
|
||||||
|
n 4
|
||||||
|
o 5
|
||||||
|
u 6
|
||||||
|
t 7
|
||||||
|
s 8
|
||||||
|
r 9
|
||||||
|
m 10
|
||||||
|
k 11
|
||||||
|
l 12
|
||||||
|
d 13
|
||||||
|
g 14
|
||||||
|
h 15
|
||||||
|
y 16
|
||||||
|
b 17
|
||||||
|
p 18
|
||||||
|
w 19
|
||||||
|
c 20
|
||||||
|
v 21
|
||||||
|
j 22
|
||||||
|
z 23
|
||||||
|
f 24
|
||||||
|
' 25
|
||||||
|
q 26
|
||||||
|
x 27
|
||||||
|
<eps> 0
|
||||||
|
#0 28
|
||||||
|
#1 29
|
||||||
|
|
||||||
|
==> words.txt <==
|
||||||
|
eps 0
|
||||||
|
moment 1
|
||||||
|
beside 2
|
||||||
|
i 3
|
||||||
|
this 4
|
||||||
|
curiosity 5
|
||||||
|
had 6
|
||||||
|
that 7
|
||||||
|
at 8
|
||||||
|
me 9
|
||||||
|
#0 10
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
This test model uses characters as modeling unit. If you use other types of
|
||||||
|
modeling unit, the same code can be used without any change.
|
||||||
|
|
||||||
|
Convert transcript to an FST graph
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
egs/librispeech/ASR/local/prepare_lang_fst.py --lang-dir ./
|
||||||
|
|
||||||
|
The above command should generate two files ``H.fst`` and ``HL.fst``. We will
|
||||||
|
use ``HL.fst`` below::
|
||||||
|
|
||||||
|
-rw-r--r-- 1 root root 13K Jun 12 08:28 H.fst
|
||||||
|
-rw-r--r-- 1 root root 3.7K Jun 12 08:28 HL.fst
|
||||||
|
|
||||||
|
Force aligner
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Now, everything is ready. We can use the following code to get forced alignments.
|
||||||
|
|
||||||
|
.. code-block:: python3
|
||||||
|
|
||||||
|
from kaldi_decoder import DecodableCtc, FasterDecoder, FasterDecoderOptions
|
||||||
|
import kaldifst
|
||||||
|
|
||||||
|
def force_align():
|
||||||
|
HL = kaldifst.StdVectorFst.read("./HL.fst")
|
||||||
|
decodable = DecodableCtc(emission[0].contiguous().cpu().numpy())
|
||||||
|
decoder_opts = FasterDecoderOptions(max_active=3000)
|
||||||
|
decoder = FasterDecoder(HL, decoder_opts)
|
||||||
|
decoder.decode(decodable)
|
||||||
|
if not decoder.reached_final():
|
||||||
|
print(f"failed to decode xxx")
|
||||||
|
return None
|
||||||
|
ok, best_path = decoder.get_best_path()
|
||||||
|
|
||||||
|
(
|
||||||
|
ok,
|
||||||
|
isymbols_out,
|
||||||
|
osymbols_out,
|
||||||
|
total_weight,
|
||||||
|
) = kaldifst.get_linear_symbol_sequence(best_path)
|
||||||
|
if not ok:
|
||||||
|
print(f"failed to get linear symbol sequence for xxx")
|
||||||
|
return None
|
||||||
|
|
||||||
|
# We need to use i-1 here since we have incremented tokens during
|
||||||
|
# HL construction
|
||||||
|
alignment = [i-1 for i in isymbols_out]
|
||||||
|
return alignment
|
||||||
|
|
||||||
|
alignment = force_align()
|
||||||
|
|
||||||
|
for i, a in enumerate(alignment):
|
||||||
|
print(i, id2token[a])
|
||||||
|
|
||||||
|
The output should be identical to
|
||||||
|
`<https://pytorch.org/audio/main/tutorials/ctc_forced_alignment_api_tutorial.html#frame-level-alignments>`_.
|
||||||
|
|
||||||
|
For ease of reference, we list the output below::
|
||||||
|
|
||||||
|
0 -
|
||||||
|
1 -
|
||||||
|
2 -
|
||||||
|
3 -
|
||||||
|
4 -
|
||||||
|
5 -
|
||||||
|
6 -
|
||||||
|
7 -
|
||||||
|
8 -
|
||||||
|
9 -
|
||||||
|
10 -
|
||||||
|
11 -
|
||||||
|
12 -
|
||||||
|
13 -
|
||||||
|
14 -
|
||||||
|
15 -
|
||||||
|
16 -
|
||||||
|
17 -
|
||||||
|
18 -
|
||||||
|
19 -
|
||||||
|
20 -
|
||||||
|
21 -
|
||||||
|
22 -
|
||||||
|
23 -
|
||||||
|
24 -
|
||||||
|
25 -
|
||||||
|
26 -
|
||||||
|
27 -
|
||||||
|
28 -
|
||||||
|
29 -
|
||||||
|
30 -
|
||||||
|
31 -
|
||||||
|
32 i
|
||||||
|
33 -
|
||||||
|
34 -
|
||||||
|
35 h
|
||||||
|
36 h
|
||||||
|
37 a
|
||||||
|
38 -
|
||||||
|
39 -
|
||||||
|
40 -
|
||||||
|
41 d
|
||||||
|
42 -
|
||||||
|
43 -
|
||||||
|
44 t
|
||||||
|
45 h
|
||||||
|
46 -
|
||||||
|
47 a
|
||||||
|
48 -
|
||||||
|
49 -
|
||||||
|
50 t
|
||||||
|
51 -
|
||||||
|
52 -
|
||||||
|
53 -
|
||||||
|
54 c
|
||||||
|
55 -
|
||||||
|
56 -
|
||||||
|
57 -
|
||||||
|
58 u
|
||||||
|
59 u
|
||||||
|
60 -
|
||||||
|
61 -
|
||||||
|
62 -
|
||||||
|
63 r
|
||||||
|
64 -
|
||||||
|
65 i
|
||||||
|
66 -
|
||||||
|
67 -
|
||||||
|
68 -
|
||||||
|
69 -
|
||||||
|
70 -
|
||||||
|
71 -
|
||||||
|
72 o
|
||||||
|
73 -
|
||||||
|
74 -
|
||||||
|
75 -
|
||||||
|
76 -
|
||||||
|
77 -
|
||||||
|
78 -
|
||||||
|
79 s
|
||||||
|
80 -
|
||||||
|
81 -
|
||||||
|
82 -
|
||||||
|
83 i
|
||||||
|
84 -
|
||||||
|
85 t
|
||||||
|
86 -
|
||||||
|
87 -
|
||||||
|
88 y
|
||||||
|
89 -
|
||||||
|
90 -
|
||||||
|
91 -
|
||||||
|
92 -
|
||||||
|
93 b
|
||||||
|
94 -
|
||||||
|
95 e
|
||||||
|
96 -
|
||||||
|
97 -
|
||||||
|
98 -
|
||||||
|
99 -
|
||||||
|
100 -
|
||||||
|
101 s
|
||||||
|
102 -
|
||||||
|
103 -
|
||||||
|
104 -
|
||||||
|
105 -
|
||||||
|
106 -
|
||||||
|
107 -
|
||||||
|
108 -
|
||||||
|
109 -
|
||||||
|
110 i
|
||||||
|
111 -
|
||||||
|
112 -
|
||||||
|
113 d
|
||||||
|
114 e
|
||||||
|
115 -
|
||||||
|
116 m
|
||||||
|
117 -
|
||||||
|
118 -
|
||||||
|
119 e
|
||||||
|
120 -
|
||||||
|
121 -
|
||||||
|
122 -
|
||||||
|
123 -
|
||||||
|
124 a
|
||||||
|
125 -
|
||||||
|
126 -
|
||||||
|
127 t
|
||||||
|
128 -
|
||||||
|
129 t
|
||||||
|
130 h
|
||||||
|
131 -
|
||||||
|
132 i
|
||||||
|
133 -
|
||||||
|
134 -
|
||||||
|
135 -
|
||||||
|
136 s
|
||||||
|
137 -
|
||||||
|
138 -
|
||||||
|
139 -
|
||||||
|
140 -
|
||||||
|
141 m
|
||||||
|
142 -
|
||||||
|
143 -
|
||||||
|
144 o
|
||||||
|
145 -
|
||||||
|
146 -
|
||||||
|
147 -
|
||||||
|
148 m
|
||||||
|
149 -
|
||||||
|
150 -
|
||||||
|
151 e
|
||||||
|
152 -
|
||||||
|
153 n
|
||||||
|
154 -
|
||||||
|
155 t
|
||||||
|
156 -
|
||||||
|
157 -
|
||||||
|
158 -
|
||||||
|
159 -
|
||||||
|
160 -
|
||||||
|
161 -
|
||||||
|
162 -
|
||||||
|
163 -
|
||||||
|
164 -
|
||||||
|
165 -
|
||||||
|
166 -
|
||||||
|
167 -
|
||||||
|
168 -
|
||||||
|
|
||||||
|
To merge tokens, we use::
|
||||||
|
|
||||||
|
from icefall.ctc import merge_tokens
|
||||||
|
token_spans = merge_tokens(alignment)
|
||||||
|
for span in token_spans:
|
||||||
|
print(id2token[span.token], span.start, span.end)
|
||||||
|
|
||||||
|
The output is given below::
|
||||||
|
|
||||||
|
i 32 33
|
||||||
|
h 35 37
|
||||||
|
a 37 38
|
||||||
|
d 41 42
|
||||||
|
t 44 45
|
||||||
|
h 45 46
|
||||||
|
a 47 48
|
||||||
|
t 50 51
|
||||||
|
c 54 55
|
||||||
|
u 58 60
|
||||||
|
r 63 64
|
||||||
|
i 65 66
|
||||||
|
o 72 73
|
||||||
|
s 79 80
|
||||||
|
i 83 84
|
||||||
|
t 85 86
|
||||||
|
y 88 89
|
||||||
|
b 93 94
|
||||||
|
e 95 96
|
||||||
|
s 101 102
|
||||||
|
i 110 111
|
||||||
|
d 113 114
|
||||||
|
e 114 115
|
||||||
|
m 116 117
|
||||||
|
e 119 120
|
||||||
|
a 124 125
|
||||||
|
t 127 128
|
||||||
|
t 129 130
|
||||||
|
h 130 131
|
||||||
|
i 132 133
|
||||||
|
s 136 137
|
||||||
|
m 141 142
|
||||||
|
o 144 145
|
||||||
|
m 148 149
|
||||||
|
e 151 152
|
||||||
|
n 153 154
|
||||||
|
t 155 156
|
||||||
|
|
||||||
|
All of the code below is copied and modified
|
||||||
|
from `<https://pytorch.org/audio/main/tutorials/ctc_forced_alignment_api_tutorial.html>`_.
|
||||||
|
|
||||||
|
Segment each word using the computed alignments
|
||||||
|
-----------------------------------------------
|
||||||
|
|
||||||
|
.. code-block:: python3
|
||||||
|
|
||||||
|
def unflatten(list_, lengths):
|
||||||
|
assert len(list_) == sum(lengths)
|
||||||
|
i = 0
|
||||||
|
ret = []
|
||||||
|
for l in lengths:
|
||||||
|
ret.append(list_[i : i + l])
|
||||||
|
i += l
|
||||||
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
word_spans = unflatten(token_spans, [len(word) for word in transcript])
|
||||||
|
print(word_spans)
|
||||||
|
|
||||||
|
The output is::
|
||||||
|
|
||||||
|
[[TokenSpan(token=2, start=32, end=33)],
|
||||||
|
[TokenSpan(token=15, start=35, end=37), TokenSpan(token=1, start=37, end=38), TokenSpan(token=13, start=41, end=42)],
|
||||||
|
[TokenSpan(token=7, start=44, end=45), TokenSpan(token=15, start=45, end=46), TokenSpan(token=1, start=47, end=48), TokenSpan(token=7, start=50, end=51)],
|
||||||
|
[TokenSpan(token=20, start=54, end=55), TokenSpan(token=6, start=58, end=60), TokenSpan(token=9, start=63, end=64), TokenSpan(token=2, start=65, end=66), TokenSpan(token=5, start=72, end=73), TokenSpan(token=8, start=79, end=80), TokenSpan(token=2, start=83, end=84), TokenSpan(token=7, start=85, end=86), TokenSpan(token=16, start=88, end=89)],
|
||||||
|
[TokenSpan(token=17, start=93, end=94), TokenSpan(token=3, start=95, end=96), TokenSpan(token=8, start=101, end=102), TokenSpan(token=2, start=110, end=111), TokenSpan(token=13, start=113, end=114), TokenSpan(token=3, start=114, end=115)],
|
||||||
|
[TokenSpan(token=10, start=116, end=117), TokenSpan(token=3, start=119, end=120)],
|
||||||
|
[TokenSpan(token=1, start=124, end=125), TokenSpan(token=7, start=127, end=128)],
|
||||||
|
[TokenSpan(token=7, start=129, end=130), TokenSpan(token=15, start=130, end=131), TokenSpan(token=2, start=132, end=133), TokenSpan(token=8, start=136, end=137)],
|
||||||
|
[TokenSpan(token=10, start=141, end=142), TokenSpan(token=5, start=144, end=145), TokenSpan(token=10, start=148, end=149), TokenSpan(token=3, start=151, end=152), TokenSpan(token=4, start=153, end=154), TokenSpan(token=7, start=155, end=156)]
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
.. code-block:: python3
|
||||||
|
|
||||||
|
def preview_word(waveform, spans, num_frames, transcript, sample_rate=bundle.sample_rate):
|
||||||
|
ratio = waveform.size(1) / num_frames
|
||||||
|
x0 = int(ratio * spans[0].start)
|
||||||
|
x1 = int(ratio * spans[-1].end)
|
||||||
|
print(f"{transcript} {x0 / sample_rate:.3f} - {x1 / sample_rate:.3f} sec")
|
||||||
|
segment = waveform[:, x0:x1]
|
||||||
|
return IPython.display.Audio(segment.numpy(), rate=sample_rate)
|
||||||
|
num_frames = emission.size(1)
|
||||||
|
|
||||||
|
.. code-block:: python3
|
||||||
|
|
||||||
|
preview_word(waveform, word_spans[0], num_frames, transcript[0])
|
||||||
|
preview_word(waveform, word_spans[1], num_frames, transcript[1])
|
||||||
|
preview_word(waveform, word_spans[2], num_frames, transcript[2])
|
||||||
|
preview_word(waveform, word_spans[3], num_frames, transcript[3])
|
||||||
|
preview_word(waveform, word_spans[4], num_frames, transcript[4])
|
||||||
|
preview_word(waveform, word_spans[5], num_frames, transcript[5])
|
||||||
|
preview_word(waveform, word_spans[6], num_frames, transcript[6])
|
||||||
|
preview_word(waveform, word_spans[7], num_frames, transcript[7])
|
||||||
|
preview_word(waveform, word_spans[8], num_frames, transcript[8])
|
||||||
|
|
||||||
|
The segmented wave of each word along with its time stamp is given below:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Word</th>
|
||||||
|
<th>Time</th>
|
||||||
|
<th>Wave</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>i</td>
|
||||||
|
<td>0.644 - 0.664 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="i.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/i.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>had</td>
|
||||||
|
<td>0.704 - 0.845 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="had.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/had.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>that</td>
|
||||||
|
<td>0.885 - 1.026 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="that.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/that.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>curiosity</td>
|
||||||
|
<td>1.086 - 1.790 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="curiosity.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/curiosity.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>beside</td>
|
||||||
|
<td>1.871 - 2.314 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="beside.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/beside.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>me</td>
|
||||||
|
<td>2.334 - 2.414 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="me.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/me.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>at</td>
|
||||||
|
<td>2.495 - 2.575 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="at.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/at.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>this</td>
|
||||||
|
<td>2.595 - 2.756 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="this.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/this.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>moment</td>
|
||||||
|
<td>2.837 - 3.138 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="moment.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/moment.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
We repost the whole wave below for ease of reference:
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Wave filename</th>
|
||||||
|
<th>Content</th>
|
||||||
|
<th>Text</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav</td>
|
||||||
|
<td>
|
||||||
|
<audio title="Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
i had that curiosity beside me at this moment
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
Summary
|
||||||
|
-------
|
||||||
|
|
||||||
|
Congratulations! You have succeeded in using the FST-based approach to
|
||||||
|
compute alignment of a test wave.
|
@ -25,7 +25,7 @@ speech recognition recipes using `k2 <https://github.com/k2-fsa/k2>`_.
|
|||||||
docker/index
|
docker/index
|
||||||
faqs
|
faqs
|
||||||
model-export/index
|
model-export/index
|
||||||
|
fst-based-forced-alignment/index
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 3
|
:maxdepth: 3
|
||||||
@ -40,5 +40,5 @@ speech recognition recipes using `k2 <https://github.com/k2-fsa/k2>`_.
|
|||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
decoding-with-langugage-models/index
|
decoding-with-langugage-models/index
|
||||||
|
@ -15,8 +15,8 @@ We will show you step by step how to export it to `ncnn`_ and run it with `sherp
|
|||||||
|
|
||||||
.. caution::
|
.. caution::
|
||||||
|
|
||||||
Please use a more recent version of PyTorch. For instance, ``torch 1.8``
|
``torch > 2.0`` may not work. If you get errors while building pnnx, please switch
|
||||||
may ``not`` work.
|
to ``torch < 2.0``.
|
||||||
|
|
||||||
1. Download the pre-trained model
|
1. Download the pre-trained model
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
@ -15,8 +15,8 @@ We will show you step by step how to export it to `ncnn`_ and run it with `sherp
|
|||||||
|
|
||||||
.. caution::
|
.. caution::
|
||||||
|
|
||||||
Please use a more recent version of PyTorch. For instance, ``torch 1.8``
|
``torch > 2.0`` may not work. If you get errors while building pnnx, please switch
|
||||||
may ``not`` work.
|
to ``torch < 2.0``.
|
||||||
|
|
||||||
1. Download the pre-trained model
|
1. Download the pre-trained model
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
@ -15,8 +15,8 @@ We will show you step by step how to export it to `ncnn`_ and run it with `sherp
|
|||||||
|
|
||||||
.. caution::
|
.. caution::
|
||||||
|
|
||||||
Please use a more recent version of PyTorch. For instance, ``torch 1.8``
|
``torch > 2.0`` may not work. If you get errors while building pnnx, please switch
|
||||||
may ``not`` work.
|
to ``torch < 2.0``.
|
||||||
|
|
||||||
1. Download the pre-trained model
|
1. Download the pre-trained model
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Binary file not shown.
BIN
_static/kaldi-align/at.wav
Normal file
BIN
_static/kaldi-align/at.wav
Normal file
Binary file not shown.
BIN
_static/kaldi-align/beside.wav
Normal file
BIN
_static/kaldi-align/beside.wav
Normal file
Binary file not shown.
BIN
_static/kaldi-align/curiosity.wav
Normal file
BIN
_static/kaldi-align/curiosity.wav
Normal file
Binary file not shown.
BIN
_static/kaldi-align/had.wav
Normal file
BIN
_static/kaldi-align/had.wav
Normal file
Binary file not shown.
BIN
_static/kaldi-align/i.wav
Normal file
BIN
_static/kaldi-align/i.wav
Normal file
Binary file not shown.
BIN
_static/kaldi-align/me.wav
Normal file
BIN
_static/kaldi-align/me.wav
Normal file
Binary file not shown.
BIN
_static/kaldi-align/moment.wav
Normal file
BIN
_static/kaldi-align/moment.wav
Normal file
Binary file not shown.
BIN
_static/kaldi-align/that.wav
Normal file
BIN
_static/kaldi-align/that.wav
Normal file
Binary file not shown.
BIN
_static/kaldi-align/this.wav
Normal file
BIN
_static/kaldi-align/this.wav
Normal file
Binary file not shown.
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -52,6 +52,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -50,6 +50,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -60,6 +60,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -70,6 +70,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
@ -136,7 +137,9 @@ docker images:</p>
|
|||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<p>which will give you something like below:</p>
|
<p>which will give you something like below:</p>
|
||||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="s2">"torch2.2.2-cuda12.1"</span>
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="s2">"torch2.3.1-cuda12.1"</span>
|
||||||
|
<span class="s2">"torch2.3.1-cuda11.8"</span>
|
||||||
|
<span class="s2">"torch2.2.2-cuda12.1"</span>
|
||||||
<span class="s2">"torch2.2.2-cuda11.8"</span>
|
<span class="s2">"torch2.2.2-cuda11.8"</span>
|
||||||
<span class="s2">"torch2.2.1-cuda12.1"</span>
|
<span class="s2">"torch2.2.1-cuda12.1"</span>
|
||||||
<span class="s2">"torch2.2.1-cuda11.8"</span>
|
<span class="s2">"torch2.2.1-cuda11.8"</span>
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="recipes/index.html">Recipes</a></li>
|
||||||
|
@ -66,6 +66,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -61,6 +61,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -64,6 +64,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -58,6 +58,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -64,6 +64,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -61,6 +61,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
182
fst-based-forced-alignment/diff.html
Normal file
182
fst-based-forced-alignment/diff.html
Normal file
@ -0,0 +1,182 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html class="writer-html5" lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>Two approaches — icefall 0.1 documentation</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" />
|
||||||
|
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="../_static/js/html5shiv.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
||||||
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||||||
|
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=e031e9a9"></script>
|
||||||
|
<script src="../_static/doctools.js?v=888ff710"></script>
|
||||||
|
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
|
||||||
|
<script src="../_static/js/theme.js"></script>
|
||||||
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
|
<link rel="next" title="Kaldi-based forced alignment" href="kaldi-based.html" />
|
||||||
|
<link rel="prev" title="FST-based forced alignment" href="index.html" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="wy-body-for-nav">
|
||||||
|
<div class="wy-grid-for-nav">
|
||||||
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||||
|
<div class="wy-side-scroll">
|
||||||
|
<div class="wy-side-nav-search" >
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a href="../index.html" class="icon icon-home">
|
||||||
|
icefall
|
||||||
|
</a>
|
||||||
|
<div role="search">
|
||||||
|
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||||
|
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
||||||
|
<input type="hidden" name="check_keywords" value="yes" />
|
||||||
|
<input type="hidden" name="area" value="default" />
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||||
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
|
<ul class="current">
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../for-dummies/index.html">Icefall for dummies tutorial</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1 current"><a class="reference internal" href="index.html">FST-based forced alignment</a><ul class="current">
|
||||||
|
<li class="toctree-l2 current"><a class="current reference internal" href="#">Two approaches</a><ul>
|
||||||
|
<li class="toctree-l3"><a class="reference internal" href="#differences-between-the-two-approaches">Differences between the two approaches</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="kaldi-based.html">Kaldi-based forced alignment</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="k2-based.html">k2-based forced alignment</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../huggingface/index.html">Huggingface</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../decoding-with-langugage-models/index.html">Decoding with language models</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||||||
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||||
|
<a href="../index.html">icefall</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="wy-nav-content">
|
||||||
|
<div class="rst-content">
|
||||||
|
<div role="navigation" aria-label="Page navigation">
|
||||||
|
<ul class="wy-breadcrumbs">
|
||||||
|
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
||||||
|
<li class="breadcrumb-item"><a href="index.html">FST-based forced alignment</a></li>
|
||||||
|
<li class="breadcrumb-item active">Two approaches</li>
|
||||||
|
<li class="wy-breadcrumbs-aside">
|
||||||
|
<a href="https://github.com/k2-fsa/icefall/blob/master/docs/source/fst-based-forced-alignment/diff.rst" class="fa fa-github"> Edit on GitHub</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<hr/>
|
||||||
|
</div>
|
||||||
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||||
|
<div itemprop="articleBody">
|
||||||
|
|
||||||
|
<section id="two-approaches">
|
||||||
|
<h1>Two approaches<a class="headerlink" href="#two-approaches" title="Permalink to this heading"></a></h1>
|
||||||
|
<p>Two approaches for FST-based forced alignment will be described:</p>
|
||||||
|
<blockquote>
|
||||||
|
<div><ul class="simple">
|
||||||
|
<li><p><a class="reference external" href="https://github.com/kaldi-asr/kaldi">Kaldi</a>-based</p></li>
|
||||||
|
<li><p><a class="reference external" href="https://github.com/k2-fsa/k2">k2</a>-based</p></li>
|
||||||
|
</ul>
|
||||||
|
</div></blockquote>
|
||||||
|
<p>Note that the <a class="reference external" href="https://github.com/kaldi-asr/kaldi">Kaldi</a>-based approach does not depend on <a class="reference external" href="https://github.com/kaldi-asr/kaldi">Kaldi</a> at all.
|
||||||
|
That is, you don’t need to install <a class="reference external" href="https://github.com/kaldi-asr/kaldi">Kaldi</a> in order to use it. Instead,
|
||||||
|
we use <a class="reference external" href="https://github.com/k2-fsa/kaldi-decoder">kaldi-decoder</a>, which has ported the C++ decoding code from <a class="reference external" href="https://github.com/kaldi-asr/kaldi">Kaldi</a>
|
||||||
|
without depending on it.</p>
|
||||||
|
<section id="differences-between-the-two-approaches">
|
||||||
|
<h2>Differences between the two approaches<a class="headerlink" href="#differences-between-the-two-approaches" title="Permalink to this heading"></a></h2>
|
||||||
|
<p>The following table compares the differences between the two approaches.</p>
|
||||||
|
<table class="docutils align-default">
|
||||||
|
<tbody>
|
||||||
|
<tr class="row-odd"><td><p>Features</p></td>
|
||||||
|
<td><p><a class="reference external" href="https://github.com/kaldi-asr/kaldi">Kaldi</a>-based</p></td>
|
||||||
|
<td><p><a class="reference external" href="https://github.com/k2-fsa/k2">k2</a>-based</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-even"><td><p>Support CUDA</p></td>
|
||||||
|
<td><p>No</p></td>
|
||||||
|
<td><p>Yes</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><td><p>Support CPU</p></td>
|
||||||
|
<td><p>Yes</p></td>
|
||||||
|
<td><p>Yes</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-even"><td><p>Support batch processing</p></td>
|
||||||
|
<td><p>No</p></td>
|
||||||
|
<td><p>Yes on CUDA; No on CPU</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><td><p>Support streaming models</p></td>
|
||||||
|
<td><p>Yes</p></td>
|
||||||
|
<td><p>No</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-even"><td><p>Support C++ APIs</p></td>
|
||||||
|
<td><p>Yes</p></td>
|
||||||
|
<td><p>Yes</p></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="row-odd"><td><p>Support Python APIs</p></td>
|
||||||
|
<td><p>Yes</p></td>
|
||||||
|
<td><p>Yes</p></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||||
|
<a href="index.html" class="btn btn-neutral float-left" title="FST-based forced alignment" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||||
|
<a href="kaldi-based.html" class="btn btn-neutral float-right" title="Kaldi-based forced alignment" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr/>
|
||||||
|
|
||||||
|
<div role="contentinfo">
|
||||||
|
<p>© Copyright 2021, icefall development team.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
||||||
|
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
||||||
|
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||||
|
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
jQuery(function () {
|
||||||
|
SphinxRtdTheme.Navigation.enable(true);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
159
fst-based-forced-alignment/index.html
Normal file
159
fst-based-forced-alignment/index.html
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html class="writer-html5" lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>FST-based forced alignment — icefall 0.1 documentation</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" />
|
||||||
|
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="../_static/js/html5shiv.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
||||||
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||||||
|
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=e031e9a9"></script>
|
||||||
|
<script src="../_static/doctools.js?v=888ff710"></script>
|
||||||
|
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
|
||||||
|
<script src="../_static/js/theme.js"></script>
|
||||||
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
|
<link rel="next" title="Two approaches" href="diff.html" />
|
||||||
|
<link rel="prev" title="Export LSTM transducer models to ncnn" href="../model-export/export-ncnn-lstm.html" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="wy-body-for-nav">
|
||||||
|
<div class="wy-grid-for-nav">
|
||||||
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||||
|
<div class="wy-side-scroll">
|
||||||
|
<div class="wy-side-nav-search" >
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a href="../index.html" class="icon icon-home">
|
||||||
|
icefall
|
||||||
|
</a>
|
||||||
|
<div role="search">
|
||||||
|
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||||
|
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
||||||
|
<input type="hidden" name="check_keywords" value="yes" />
|
||||||
|
<input type="hidden" name="area" value="default" />
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||||
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
|
<ul class="current">
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../for-dummies/index.html">Icefall for dummies tutorial</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1 current"><a class="current reference internal" href="#">FST-based forced alignment</a><ul>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="diff.html">Two approaches</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="kaldi-based.html">Kaldi-based forced alignment</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="k2-based.html">k2-based forced alignment</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../huggingface/index.html">Huggingface</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../decoding-with-langugage-models/index.html">Decoding with language models</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||||||
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||||
|
<a href="../index.html">icefall</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="wy-nav-content">
|
||||||
|
<div class="rst-content">
|
||||||
|
<div role="navigation" aria-label="Page navigation">
|
||||||
|
<ul class="wy-breadcrumbs">
|
||||||
|
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
||||||
|
<li class="breadcrumb-item active">FST-based forced alignment</li>
|
||||||
|
<li class="wy-breadcrumbs-aside">
|
||||||
|
<a href="https://github.com/k2-fsa/icefall/blob/master/docs/source/fst-based-forced-alignment/index.rst" class="fa fa-github"> Edit on GitHub</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<hr/>
|
||||||
|
</div>
|
||||||
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||||
|
<div itemprop="articleBody">
|
||||||
|
|
||||||
|
<section id="fst-based-forced-alignment">
|
||||||
|
<h1>FST-based forced alignment<a class="headerlink" href="#fst-based-forced-alignment" title="Permalink to this heading"></a></h1>
|
||||||
|
<p>This section describes how to perform <strong>FST-based</strong> <code class="docutils literal notranslate"><span class="pre">forced</span> <span class="pre">alignment</span></code> with models
|
||||||
|
trained by <a class="reference external" href="https://www.cs.toronto.edu/~graves/icml_2006.pdf">CTC</a> loss.</p>
|
||||||
|
<p>We use <a class="reference external" href="https://pytorch.org/audio/main/tutorials/ctc_forced_alignment_api_tutorial.html">CTC FORCED ALIGNMENT API TUTORIAL</a>
|
||||||
|
from <a class="reference external" href="https://github.com/pytorch/audio">torchaudio</a> as a reference in this section.</p>
|
||||||
|
<p>Different from <a class="reference external" href="https://github.com/pytorch/audio">torchaudio</a>, we use an <code class="docutils literal notranslate"><span class="pre">FST</span></code>-based approach.</p>
|
||||||
|
<div class="toctree-wrapper compound">
|
||||||
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="diff.html">Two approaches</a><ul>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="diff.html#differences-between-the-two-approaches">Differences between the two approaches</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="kaldi-based.html">Kaldi-based forced alignment</a><ul>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="kaldi-based.html#prepare-the-environment">Prepare the environment</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="kaldi-based.html#get-the-test-data">Get the test data</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="kaldi-based.html#compute-log-probs">Compute log_probs</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="kaldi-based.html#create-token2id-and-id2token">Create token2id and id2token</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="kaldi-based.html#create-word2id-and-id2word">Create word2id and id2word</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="kaldi-based.html#generate-lexicon-related-files">Generate lexicon-related files</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="kaldi-based.html#convert-transcript-to-an-fst-graph">Convert transcript to an FST graph</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="kaldi-based.html#force-aligner">Force aligner</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="kaldi-based.html#segment-each-word-using-the-computed-alignments">Segment each word using the computed alignments</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="kaldi-based.html#summary">Summary</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="k2-based.html">k2-based forced alignment</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||||
|
<a href="../model-export/export-ncnn-lstm.html" class="btn btn-neutral float-left" title="Export LSTM transducer models to ncnn" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||||
|
<a href="diff.html" class="btn btn-neutral float-right" title="Two approaches" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr/>
|
||||||
|
|
||||||
|
<div role="contentinfo">
|
||||||
|
<p>© Copyright 2021, icefall development team.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
||||||
|
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
||||||
|
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||||
|
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
jQuery(function () {
|
||||||
|
SphinxRtdTheme.Navigation.enable(true);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
133
fst-based-forced-alignment/k2-based.html
Normal file
133
fst-based-forced-alignment/k2-based.html
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html class="writer-html5" lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>k2-based forced alignment — icefall 0.1 documentation</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" />
|
||||||
|
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="../_static/js/html5shiv.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
||||||
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||||||
|
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=e031e9a9"></script>
|
||||||
|
<script src="../_static/doctools.js?v=888ff710"></script>
|
||||||
|
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
|
||||||
|
<script src="../_static/js/theme.js"></script>
|
||||||
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
|
<link rel="next" title="Recipes" href="../recipes/index.html" />
|
||||||
|
<link rel="prev" title="Kaldi-based forced alignment" href="kaldi-based.html" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="wy-body-for-nav">
|
||||||
|
<div class="wy-grid-for-nav">
|
||||||
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||||
|
<div class="wy-side-scroll">
|
||||||
|
<div class="wy-side-nav-search" >
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a href="../index.html" class="icon icon-home">
|
||||||
|
icefall
|
||||||
|
</a>
|
||||||
|
<div role="search">
|
||||||
|
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||||
|
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
||||||
|
<input type="hidden" name="check_keywords" value="yes" />
|
||||||
|
<input type="hidden" name="area" value="default" />
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||||
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
|
<ul class="current">
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../for-dummies/index.html">Icefall for dummies tutorial</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1 current"><a class="reference internal" href="index.html">FST-based forced alignment</a><ul class="current">
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="diff.html">Two approaches</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="kaldi-based.html">Kaldi-based forced alignment</a></li>
|
||||||
|
<li class="toctree-l2 current"><a class="current reference internal" href="#">k2-based forced alignment</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../huggingface/index.html">Huggingface</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../decoding-with-langugage-models/index.html">Decoding with language models</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||||||
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||||
|
<a href="../index.html">icefall</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="wy-nav-content">
|
||||||
|
<div class="rst-content">
|
||||||
|
<div role="navigation" aria-label="Page navigation">
|
||||||
|
<ul class="wy-breadcrumbs">
|
||||||
|
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
||||||
|
<li class="breadcrumb-item"><a href="index.html">FST-based forced alignment</a></li>
|
||||||
|
<li class="breadcrumb-item active">k2-based forced alignment</li>
|
||||||
|
<li class="wy-breadcrumbs-aside">
|
||||||
|
<a href="https://github.com/k2-fsa/icefall/blob/master/docs/source/fst-based-forced-alignment/k2-based.rst" class="fa fa-github"> Edit on GitHub</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<hr/>
|
||||||
|
</div>
|
||||||
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||||
|
<div itemprop="articleBody">
|
||||||
|
|
||||||
|
<section id="k2-based-forced-alignment">
|
||||||
|
<h1>k2-based forced alignment<a class="headerlink" href="#k2-based-forced-alignment" title="Permalink to this heading"></a></h1>
|
||||||
|
<p>TODO(fangjun)</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||||
|
<a href="kaldi-based.html" class="btn btn-neutral float-left" title="Kaldi-based forced alignment" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||||
|
<a href="../recipes/index.html" class="btn btn-neutral float-right" title="Recipes" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr/>
|
||||||
|
|
||||||
|
<div role="contentinfo">
|
||||||
|
<p>© Copyright 2021, icefall development team.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
||||||
|
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
||||||
|
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||||
|
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
jQuery(function () {
|
||||||
|
SphinxRtdTheme.Navigation.enable(true);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
816
fst-based-forced-alignment/kaldi-based.html
Normal file
816
fst-based-forced-alignment/kaldi-based.html
Normal file
@ -0,0 +1,816 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html class="writer-html5" lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>Kaldi-based forced alignment — icefall 0.1 documentation</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" />
|
||||||
|
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="../_static/js/html5shiv.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
||||||
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||||||
|
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=e031e9a9"></script>
|
||||||
|
<script src="../_static/doctools.js?v=888ff710"></script>
|
||||||
|
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
|
||||||
|
<script src="../_static/js/theme.js"></script>
|
||||||
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
|
<link rel="next" title="k2-based forced alignment" href="k2-based.html" />
|
||||||
|
<link rel="prev" title="Two approaches" href="diff.html" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="wy-body-for-nav">
|
||||||
|
<div class="wy-grid-for-nav">
|
||||||
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||||
|
<div class="wy-side-scroll">
|
||||||
|
<div class="wy-side-nav-search" >
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a href="../index.html" class="icon icon-home">
|
||||||
|
icefall
|
||||||
|
</a>
|
||||||
|
<div role="search">
|
||||||
|
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||||||
|
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
||||||
|
<input type="hidden" name="check_keywords" value="yes" />
|
||||||
|
<input type="hidden" name="area" value="default" />
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||||||
|
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
||||||
|
<ul class="current">
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../for-dummies/index.html">Icefall for dummies tutorial</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1 current"><a class="reference internal" href="index.html">FST-based forced alignment</a><ul class="current">
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="diff.html">Two approaches</a></li>
|
||||||
|
<li class="toctree-l2 current"><a class="current reference internal" href="#">Kaldi-based forced alignment</a><ul>
|
||||||
|
<li class="toctree-l3"><a class="reference internal" href="#prepare-the-environment">Prepare the environment</a></li>
|
||||||
|
<li class="toctree-l3"><a class="reference internal" href="#get-the-test-data">Get the test data</a></li>
|
||||||
|
<li class="toctree-l3"><a class="reference internal" href="#compute-log-probs">Compute log_probs</a></li>
|
||||||
|
<li class="toctree-l3"><a class="reference internal" href="#create-token2id-and-id2token">Create token2id and id2token</a></li>
|
||||||
|
<li class="toctree-l3"><a class="reference internal" href="#create-word2id-and-id2word">Create word2id and id2word</a></li>
|
||||||
|
<li class="toctree-l3"><a class="reference internal" href="#generate-lexicon-related-files">Generate lexicon-related files</a></li>
|
||||||
|
<li class="toctree-l3"><a class="reference internal" href="#convert-transcript-to-an-fst-graph">Convert transcript to an FST graph</a></li>
|
||||||
|
<li class="toctree-l3"><a class="reference internal" href="#force-aligner">Force aligner</a></li>
|
||||||
|
<li class="toctree-l3"><a class="reference internal" href="#segment-each-word-using-the-computed-alignments">Segment each word using the computed alignments</a></li>
|
||||||
|
<li class="toctree-l3"><a class="reference internal" href="#summary">Summary</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="k2-based.html">k2-based forced alignment</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../huggingface/index.html">Huggingface</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../decoding-with-langugage-models/index.html">Decoding with language models</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||||||
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||||
|
<a href="../index.html">icefall</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="wy-nav-content">
|
||||||
|
<div class="rst-content">
|
||||||
|
<div role="navigation" aria-label="Page navigation">
|
||||||
|
<ul class="wy-breadcrumbs">
|
||||||
|
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
||||||
|
<li class="breadcrumb-item"><a href="index.html">FST-based forced alignment</a></li>
|
||||||
|
<li class="breadcrumb-item active">Kaldi-based forced alignment</li>
|
||||||
|
<li class="wy-breadcrumbs-aside">
|
||||||
|
<a href="https://github.com/k2-fsa/icefall/blob/master/docs/source/fst-based-forced-alignment/kaldi-based.rst" class="fa fa-github"> Edit on GitHub</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<hr/>
|
||||||
|
</div>
|
||||||
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||||
|
<div itemprop="articleBody">
|
||||||
|
|
||||||
|
<section id="kaldi-based-forced-alignment">
|
||||||
|
<h1>Kaldi-based forced alignment<a class="headerlink" href="#kaldi-based-forced-alignment" title="Permalink to this heading"></a></h1>
|
||||||
|
<p>This section describes in detail how to use <a class="reference external" href="https://github.com/k2-fsa/kaldi-decoder">kaldi-decoder</a>
|
||||||
|
for <strong>FST-based</strong> <code class="docutils literal notranslate"><span class="pre">forced</span> <span class="pre">alignment</span></code> with models trained by <a class="reference external" href="https://www.cs.toronto.edu/~graves/icml_2006.pdf">CTC</a> loss.</p>
|
||||||
|
<div class="admonition hint">
|
||||||
|
<p class="admonition-title">Hint</p>
|
||||||
|
<p>We have a colab notebook walking you through this section step by step.</p>
|
||||||
|
<p><a class="reference external" href="https://github.com/k2-fsa/colab/blob/master/icefall/ctc_forced_alignment_fst_based_kaldi.ipynb"><img alt="kaldi-based forced alignment colab notebook" src="https://colab.research.google.com/assets/colab-badge.svg" /></a></p>
|
||||||
|
</div>
|
||||||
|
<section id="prepare-the-environment">
|
||||||
|
<h2>Prepare the environment<a class="headerlink" href="#prepare-the-environment" title="Permalink to this heading"></a></h2>
|
||||||
|
<p>Before you continue, make sure you have setup <a class="reference external" href="https://github.com/k2-fsa/icefall">icefall</a> by following <a class="reference internal" href="../installation/index.html#install-icefall"><span class="std std-ref">Installation</span></a>.</p>
|
||||||
|
<div class="admonition hint">
|
||||||
|
<p class="admonition-title">Hint</p>
|
||||||
|
<p>You don’t need to install <a class="reference external" href="https://github.com/kaldi-asr/kaldi">Kaldi</a>. We will <code class="docutils literal notranslate"><span class="pre">NOT</span></code> use <a class="reference external" href="https://github.com/kaldi-asr/kaldi">Kaldi</a> below.</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section id="get-the-test-data">
|
||||||
|
<h2>Get the test data<a class="headerlink" href="#get-the-test-data" title="Permalink to this heading"></a></h2>
|
||||||
|
<p>We use the test wave
|
||||||
|
from <a class="reference external" href="https://pytorch.org/audio/main/tutorials/ctc_forced_alignment_api_tutorial.html">CTC FORCED ALIGNMENT API TUTORIAL</a></p>
|
||||||
|
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">torchaudio</span>
|
||||||
|
|
||||||
|
<span class="c1"># Download test wave</span>
|
||||||
|
<span class="n">speech_file</span> <span class="o">=</span> <span class="n">torchaudio</span><span class="o">.</span><span class="n">utils</span><span class="o">.</span><span class="n">download_asset</span><span class="p">(</span><span class="s2">"tutorial-assets/Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav"</span><span class="p">)</span>
|
||||||
|
<span class="nb">print</span><span class="p">(</span><span class="n">speech_file</span><span class="p">)</span>
|
||||||
|
<span class="n">waveform</span><span class="p">,</span> <span class="n">sr</span> <span class="o">=</span> <span class="n">torchaudio</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">speech_file</span><span class="p">)</span>
|
||||||
|
<span class="n">transcript</span> <span class="o">=</span> <span class="s2">"i had that curiosity beside me at this moment"</span><span class="o">.</span><span class="n">split</span><span class="p">()</span>
|
||||||
|
<span class="nb">print</span><span class="p">(</span><span class="n">waveform</span><span class="o">.</span><span class="n">shape</span><span class="p">,</span> <span class="n">sr</span><span class="p">)</span>
|
||||||
|
|
||||||
|
<span class="k">assert</span> <span class="n">waveform</span><span class="o">.</span><span class="n">ndim</span> <span class="o">==</span> <span class="mi">2</span>
|
||||||
|
<span class="k">assert</span> <span class="n">waveform</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span>
|
||||||
|
<span class="k">assert</span> <span class="n">sr</span> <span class="o">==</span> <span class="mi">16000</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>The test wave is downloaded to:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$HOME/.cache/torch/hub/torchaudio/tutorial-assets/Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Wave filename</th>
|
||||||
|
<th>Content</th>
|
||||||
|
<th>Text</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav</td>
|
||||||
|
<td>
|
||||||
|
<audio title="Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
i had that curiosity beside me at this moment
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table><p>We use the test model
|
||||||
|
from <a class="reference external" href="https://pytorch.org/audio/main/tutorials/ctc_forced_alignment_api_tutorial.html">CTC FORCED ALIGNMENT API TUTORIAL</a></p>
|
||||||
|
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">torch</span>
|
||||||
|
|
||||||
|
<span class="n">bundle</span> <span class="o">=</span> <span class="n">torchaudio</span><span class="o">.</span><span class="n">pipelines</span><span class="o">.</span><span class="n">MMS_FA</span>
|
||||||
|
|
||||||
|
<span class="n">device</span> <span class="o">=</span> <span class="n">torch</span><span class="o">.</span><span class="n">device</span><span class="p">(</span><span class="s2">"cuda"</span> <span class="k">if</span> <span class="n">torch</span><span class="o">.</span><span class="n">cuda</span><span class="o">.</span><span class="n">is_available</span><span class="p">()</span> <span class="k">else</span> <span class="s2">"cpu"</span><span class="p">)</span>
|
||||||
|
<span class="n">model</span> <span class="o">=</span> <span class="n">bundle</span><span class="o">.</span><span class="n">get_model</span><span class="p">(</span><span class="n">with_star</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">to</span><span class="p">(</span><span class="n">device</span><span class="p">)</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>The model is downloaded to:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$HOME/.cache/torch/hub/checkpoints/model.pt
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section id="compute-log-probs">
|
||||||
|
<h2>Compute log_probs<a class="headerlink" href="#compute-log-probs" title="Permalink to this heading"></a></h2>
|
||||||
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>with<span class="w"> </span>torch.inference_mode<span class="o">()</span>:
|
||||||
|
<span class="w"> </span>emission,<span class="w"> </span><span class="nv">_</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>model<span class="o">(</span>waveform.to<span class="o">(</span>device<span class="o">))</span>
|
||||||
|
<span class="w"> </span>print<span class="o">(</span>emission.shape<span class="o">)</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>It should print:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">torch</span><span class="o">.</span><span class="n">Size</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">169</span><span class="p">,</span> <span class="mi">28</span><span class="p">])</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section id="create-token2id-and-id2token">
|
||||||
|
<h2>Create token2id and id2token<a class="headerlink" href="#create-token2id-and-id2token" title="Permalink to this heading"></a></h2>
|
||||||
|
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="n">token2id</span> <span class="o">=</span> <span class="n">bundle</span><span class="o">.</span><span class="n">get_dict</span><span class="p">(</span><span class="n">star</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
|
||||||
|
<span class="n">id2token</span> <span class="o">=</span> <span class="p">{</span><span class="n">i</span><span class="p">:</span><span class="n">t</span> <span class="k">for</span> <span class="n">t</span><span class="p">,</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">token2id</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
|
||||||
|
<span class="n">token2id</span><span class="p">[</span><span class="s2">"<eps>"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
|
||||||
|
<span class="k">del</span> <span class="n">token2id</span><span class="p">[</span><span class="s2">"-"</span><span class="p">]</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section id="create-word2id-and-id2word">
|
||||||
|
<h2>Create word2id and id2word<a class="headerlink" href="#create-word2id-and-id2word" title="Permalink to this heading"></a></h2>
|
||||||
|
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="n">words</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">transcript</span><span class="p">))</span>
|
||||||
|
<span class="n">word2id</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">()</span>
|
||||||
|
<span class="n">word2id</span><span class="p">[</span><span class="s1">'eps'</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
|
||||||
|
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">w</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">words</span><span class="p">):</span>
|
||||||
|
<span class="n">word2id</span><span class="p">[</span><span class="n">w</span><span class="p">]</span> <span class="o">=</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span>
|
||||||
|
|
||||||
|
<span class="n">id2word</span> <span class="o">=</span> <span class="p">{</span><span class="n">i</span><span class="p">:</span><span class="n">w</span> <span class="k">for</span> <span class="n">w</span><span class="p">,</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">word2id</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>Note that we only use words from the transcript of the test wave.</p>
|
||||||
|
</section>
|
||||||
|
<section id="generate-lexicon-related-files">
|
||||||
|
<h2>Generate lexicon-related files<a class="headerlink" href="#generate-lexicon-related-files" title="Permalink to this heading"></a></h2>
|
||||||
|
<p>We use the code below to generate the following 4 files:</p>
|
||||||
|
<blockquote>
|
||||||
|
<div><ul class="simple">
|
||||||
|
<li><p><code class="docutils literal notranslate"><span class="pre">lexicon.txt</span></code></p></li>
|
||||||
|
<li><p><code class="docutils literal notranslate"><span class="pre">tokens.txt</span></code></p></li>
|
||||||
|
<li><p><code class="docutils literal notranslate"><span class="pre">words.txt</span></code></p></li>
|
||||||
|
<li><p><code class="docutils literal notranslate"><span class="pre">lexicon_disambig.txt</span></code></p></li>
|
||||||
|
</ul>
|
||||||
|
</div></blockquote>
|
||||||
|
<div class="admonition caution">
|
||||||
|
<p class="admonition-title">Caution</p>
|
||||||
|
<p><code class="docutils literal notranslate"><span class="pre">words.txt</span></code> contains only words from the transcript of the test wave.</p>
|
||||||
|
</div>
|
||||||
|
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">prepare_lang</span> <span class="kn">import</span> <span class="n">add_disambig_symbols</span>
|
||||||
|
|
||||||
|
<span class="n">lexicon</span> <span class="o">=</span> <span class="p">[(</span><span class="n">w</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">w</span><span class="p">))</span> <span class="k">for</span> <span class="n">w</span> <span class="ow">in</span> <span class="n">word2id</span> <span class="k">if</span> <span class="n">w</span> <span class="o">!=</span> <span class="s2">"eps"</span><span class="p">]</span>
|
||||||
|
<span class="n">lexicon_disambig</span><span class="p">,</span> <span class="n">max_disambig_id</span> <span class="o">=</span> <span class="n">add_disambig_symbols</span><span class="p">(</span><span class="n">lexicon</span><span class="p">)</span>
|
||||||
|
|
||||||
|
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s1">'lexicon.txt'</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'utf-8'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||||||
|
<span class="k">for</span> <span class="n">w</span><span class="p">,</span> <span class="n">tokens</span> <span class="ow">in</span> <span class="n">lexicon</span><span class="p">:</span>
|
||||||
|
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">w</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="s1">' '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">tokens</span><span class="p">)</span><span class="si">}</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span>
|
||||||
|
|
||||||
|
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s1">'lexicon_disambig.txt'</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'utf-8'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||||||
|
<span class="k">for</span> <span class="n">w</span><span class="p">,</span> <span class="n">tokens</span> <span class="ow">in</span> <span class="n">lexicon_disambig</span><span class="p">:</span>
|
||||||
|
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">w</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="s1">' '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">tokens</span><span class="p">)</span><span class="si">}</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span>
|
||||||
|
|
||||||
|
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s1">'tokens.txt'</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'utf-8'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||||||
|
<span class="k">for</span> <span class="n">t</span><span class="p">,</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">token2id</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
||||||
|
<span class="k">if</span> <span class="n">t</span> <span class="o">==</span> <span class="s1">'-'</span><span class="p">:</span>
|
||||||
|
<span class="n">t</span> <span class="o">=</span> <span class="s2">"<eps>"</span>
|
||||||
|
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">t</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span>
|
||||||
|
|
||||||
|
<span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">max_disambig_id</span> <span class="o">+</span> <span class="mi">2</span><span class="p">):</span>
|
||||||
|
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">f</span><span class="s2">"#</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">token2id</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">k</span><span class="si">}</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span>
|
||||||
|
|
||||||
|
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s1">'words.txt'</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'utf-8'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||||||
|
<span class="k">for</span> <span class="n">w</span><span class="p">,</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">word2id</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
||||||
|
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">w</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span>
|
||||||
|
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">f</span><span class="s1">'#0 </span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">word2id</span><span class="p">)</span><span class="si">}</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>To give you an idea about what the generated files look like:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">head</span> <span class="o">-</span><span class="n">n</span> <span class="mi">50</span> <span class="n">lexicon</span><span class="o">.</span><span class="n">txt</span> <span class="n">lexicon_disambig</span><span class="o">.</span><span class="n">txt</span> <span class="n">tokens</span><span class="o">.</span><span class="n">txt</span> <span class="n">words</span><span class="o">.</span><span class="n">txt</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>prints:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">==></span> <span class="n">lexicon</span><span class="o">.</span><span class="n">txt</span> <span class="o"><==</span>
|
||||||
|
<span class="n">moment</span> <span class="n">m</span> <span class="n">o</span> <span class="n">m</span> <span class="n">e</span> <span class="n">n</span> <span class="n">t</span>
|
||||||
|
<span class="n">beside</span> <span class="n">b</span> <span class="n">e</span> <span class="n">s</span> <span class="n">i</span> <span class="n">d</span> <span class="n">e</span>
|
||||||
|
<span class="n">i</span> <span class="n">i</span>
|
||||||
|
<span class="n">this</span> <span class="n">t</span> <span class="n">h</span> <span class="n">i</span> <span class="n">s</span>
|
||||||
|
<span class="n">curiosity</span> <span class="n">c</span> <span class="n">u</span> <span class="n">r</span> <span class="n">i</span> <span class="n">o</span> <span class="n">s</span> <span class="n">i</span> <span class="n">t</span> <span class="n">y</span>
|
||||||
|
<span class="n">had</span> <span class="n">h</span> <span class="n">a</span> <span class="n">d</span>
|
||||||
|
<span class="n">that</span> <span class="n">t</span> <span class="n">h</span> <span class="n">a</span> <span class="n">t</span>
|
||||||
|
<span class="n">at</span> <span class="n">a</span> <span class="n">t</span>
|
||||||
|
<span class="n">me</span> <span class="n">m</span> <span class="n">e</span>
|
||||||
|
|
||||||
|
<span class="o">==></span> <span class="n">lexicon_disambig</span><span class="o">.</span><span class="n">txt</span> <span class="o"><==</span>
|
||||||
|
<span class="n">moment</span> <span class="n">m</span> <span class="n">o</span> <span class="n">m</span> <span class="n">e</span> <span class="n">n</span> <span class="n">t</span>
|
||||||
|
<span class="n">beside</span> <span class="n">b</span> <span class="n">e</span> <span class="n">s</span> <span class="n">i</span> <span class="n">d</span> <span class="n">e</span>
|
||||||
|
<span class="n">i</span> <span class="n">i</span>
|
||||||
|
<span class="n">this</span> <span class="n">t</span> <span class="n">h</span> <span class="n">i</span> <span class="n">s</span>
|
||||||
|
<span class="n">curiosity</span> <span class="n">c</span> <span class="n">u</span> <span class="n">r</span> <span class="n">i</span> <span class="n">o</span> <span class="n">s</span> <span class="n">i</span> <span class="n">t</span> <span class="n">y</span>
|
||||||
|
<span class="n">had</span> <span class="n">h</span> <span class="n">a</span> <span class="n">d</span>
|
||||||
|
<span class="n">that</span> <span class="n">t</span> <span class="n">h</span> <span class="n">a</span> <span class="n">t</span>
|
||||||
|
<span class="n">at</span> <span class="n">a</span> <span class="n">t</span>
|
||||||
|
<span class="n">me</span> <span class="n">m</span> <span class="n">e</span>
|
||||||
|
|
||||||
|
<span class="o">==></span> <span class="n">tokens</span><span class="o">.</span><span class="n">txt</span> <span class="o"><==</span>
|
||||||
|
<span class="n">a</span> <span class="mi">1</span>
|
||||||
|
<span class="n">i</span> <span class="mi">2</span>
|
||||||
|
<span class="n">e</span> <span class="mi">3</span>
|
||||||
|
<span class="n">n</span> <span class="mi">4</span>
|
||||||
|
<span class="n">o</span> <span class="mi">5</span>
|
||||||
|
<span class="n">u</span> <span class="mi">6</span>
|
||||||
|
<span class="n">t</span> <span class="mi">7</span>
|
||||||
|
<span class="n">s</span> <span class="mi">8</span>
|
||||||
|
<span class="n">r</span> <span class="mi">9</span>
|
||||||
|
<span class="n">m</span> <span class="mi">10</span>
|
||||||
|
<span class="n">k</span> <span class="mi">11</span>
|
||||||
|
<span class="n">l</span> <span class="mi">12</span>
|
||||||
|
<span class="n">d</span> <span class="mi">13</span>
|
||||||
|
<span class="n">g</span> <span class="mi">14</span>
|
||||||
|
<span class="n">h</span> <span class="mi">15</span>
|
||||||
|
<span class="n">y</span> <span class="mi">16</span>
|
||||||
|
<span class="n">b</span> <span class="mi">17</span>
|
||||||
|
<span class="n">p</span> <span class="mi">18</span>
|
||||||
|
<span class="n">w</span> <span class="mi">19</span>
|
||||||
|
<span class="n">c</span> <span class="mi">20</span>
|
||||||
|
<span class="n">v</span> <span class="mi">21</span>
|
||||||
|
<span class="n">j</span> <span class="mi">22</span>
|
||||||
|
<span class="n">z</span> <span class="mi">23</span>
|
||||||
|
<span class="n">f</span> <span class="mi">24</span>
|
||||||
|
<span class="s1">' 25</span>
|
||||||
|
<span class="n">q</span> <span class="mi">26</span>
|
||||||
|
<span class="n">x</span> <span class="mi">27</span>
|
||||||
|
<span class="o"><</span><span class="n">eps</span><span class="o">></span> <span class="mi">0</span>
|
||||||
|
<span class="c1">#0 28</span>
|
||||||
|
<span class="c1">#1 29</span>
|
||||||
|
|
||||||
|
<span class="o">==></span> <span class="n">words</span><span class="o">.</span><span class="n">txt</span> <span class="o"><==</span>
|
||||||
|
<span class="n">eps</span> <span class="mi">0</span>
|
||||||
|
<span class="n">moment</span> <span class="mi">1</span>
|
||||||
|
<span class="n">beside</span> <span class="mi">2</span>
|
||||||
|
<span class="n">i</span> <span class="mi">3</span>
|
||||||
|
<span class="n">this</span> <span class="mi">4</span>
|
||||||
|
<span class="n">curiosity</span> <span class="mi">5</span>
|
||||||
|
<span class="n">had</span> <span class="mi">6</span>
|
||||||
|
<span class="n">that</span> <span class="mi">7</span>
|
||||||
|
<span class="n">at</span> <span class="mi">8</span>
|
||||||
|
<span class="n">me</span> <span class="mi">9</span>
|
||||||
|
<span class="c1">#0 10</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<div class="admonition note">
|
||||||
|
<p class="admonition-title">Note</p>
|
||||||
|
<p>This test model uses characters as modeling unit. If you use other types of
|
||||||
|
modeling unit, the same code can be used without any change.</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section id="convert-transcript-to-an-fst-graph">
|
||||||
|
<h2>Convert transcript to an FST graph<a class="headerlink" href="#convert-transcript-to-an-fst-graph" title="Permalink to this heading"></a></h2>
|
||||||
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>egs/librispeech/ASR/local/prepare_lang_fst.py<span class="w"> </span>--lang-dir<span class="w"> </span>./
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>The above command should generate two files <code class="docutils literal notranslate"><span class="pre">H.fst</span></code> and <code class="docutils literal notranslate"><span class="pre">HL.fst</span></code>. We will
|
||||||
|
use <code class="docutils literal notranslate"><span class="pre">HL.fst</span></code> below:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">-</span><span class="n">rw</span><span class="o">-</span><span class="n">r</span><span class="o">--</span><span class="n">r</span><span class="o">--</span> <span class="mi">1</span> <span class="n">root</span> <span class="n">root</span> <span class="mi">13</span><span class="n">K</span> <span class="n">Jun</span> <span class="mi">12</span> <span class="mi">08</span><span class="p">:</span><span class="mi">28</span> <span class="n">H</span><span class="o">.</span><span class="n">fst</span>
|
||||||
|
<span class="o">-</span><span class="n">rw</span><span class="o">-</span><span class="n">r</span><span class="o">--</span><span class="n">r</span><span class="o">--</span> <span class="mi">1</span> <span class="n">root</span> <span class="n">root</span> <span class="mf">3.7</span><span class="n">K</span> <span class="n">Jun</span> <span class="mi">12</span> <span class="mi">08</span><span class="p">:</span><span class="mi">28</span> <span class="n">HL</span><span class="o">.</span><span class="n">fst</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section id="force-aligner">
|
||||||
|
<h2>Force aligner<a class="headerlink" href="#force-aligner" title="Permalink to this heading"></a></h2>
|
||||||
|
<p>Now, everything is ready. We can use the following code to get forced alignments.</p>
|
||||||
|
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">kaldi_decoder</span> <span class="kn">import</span> <span class="n">DecodableCtc</span><span class="p">,</span> <span class="n">FasterDecoder</span><span class="p">,</span> <span class="n">FasterDecoderOptions</span>
|
||||||
|
<span class="kn">import</span> <span class="nn">kaldifst</span>
|
||||||
|
|
||||||
|
<span class="k">def</span> <span class="nf">force_align</span><span class="p">():</span>
|
||||||
|
<span class="n">HL</span> <span class="o">=</span> <span class="n">kaldifst</span><span class="o">.</span><span class="n">StdVectorFst</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="s2">"./HL.fst"</span><span class="p">)</span>
|
||||||
|
<span class="n">decodable</span> <span class="o">=</span> <span class="n">DecodableCtc</span><span class="p">(</span><span class="n">emission</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">contiguous</span><span class="p">()</span><span class="o">.</span><span class="n">cpu</span><span class="p">()</span><span class="o">.</span><span class="n">numpy</span><span class="p">())</span>
|
||||||
|
<span class="n">decoder_opts</span> <span class="o">=</span> <span class="n">FasterDecoderOptions</span><span class="p">(</span><span class="n">max_active</span><span class="o">=</span><span class="mi">3000</span><span class="p">)</span>
|
||||||
|
<span class="n">decoder</span> <span class="o">=</span> <span class="n">FasterDecoder</span><span class="p">(</span><span class="n">HL</span><span class="p">,</span> <span class="n">decoder_opts</span><span class="p">)</span>
|
||||||
|
<span class="n">decoder</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">decodable</span><span class="p">)</span>
|
||||||
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">decoder</span><span class="o">.</span><span class="n">reached_final</span><span class="p">():</span>
|
||||||
|
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"failed to decode xxx"</span><span class="p">)</span>
|
||||||
|
<span class="k">return</span> <span class="kc">None</span>
|
||||||
|
<span class="n">ok</span><span class="p">,</span> <span class="n">best_path</span> <span class="o">=</span> <span class="n">decoder</span><span class="o">.</span><span class="n">get_best_path</span><span class="p">()</span>
|
||||||
|
|
||||||
|
<span class="p">(</span>
|
||||||
|
<span class="n">ok</span><span class="p">,</span>
|
||||||
|
<span class="n">isymbols_out</span><span class="p">,</span>
|
||||||
|
<span class="n">osymbols_out</span><span class="p">,</span>
|
||||||
|
<span class="n">total_weight</span><span class="p">,</span>
|
||||||
|
<span class="p">)</span> <span class="o">=</span> <span class="n">kaldifst</span><span class="o">.</span><span class="n">get_linear_symbol_sequence</span><span class="p">(</span><span class="n">best_path</span><span class="p">)</span>
|
||||||
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">ok</span><span class="p">:</span>
|
||||||
|
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"failed to get linear symbol sequence for xxx"</span><span class="p">)</span>
|
||||||
|
<span class="k">return</span> <span class="kc">None</span>
|
||||||
|
|
||||||
|
<span class="c1"># We need to use i-1 here since we have incremented tokens during</span>
|
||||||
|
<span class="c1"># HL construction</span>
|
||||||
|
<span class="n">alignment</span> <span class="o">=</span> <span class="p">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">isymbols_out</span><span class="p">]</span>
|
||||||
|
<span class="k">return</span> <span class="n">alignment</span>
|
||||||
|
|
||||||
|
<span class="n">alignment</span> <span class="o">=</span> <span class="n">force_align</span><span class="p">()</span>
|
||||||
|
|
||||||
|
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">a</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">alignment</span><span class="p">):</span>
|
||||||
|
<span class="nb">print</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">id2token</span><span class="p">[</span><span class="n">a</span><span class="p">])</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>The output should be identical to
|
||||||
|
<a class="reference external" href="https://pytorch.org/audio/main/tutorials/ctc_forced_alignment_api_tutorial.html#frame-level-alignments">https://pytorch.org/audio/main/tutorials/ctc_forced_alignment_api_tutorial.html#frame-level-alignments</a>.</p>
|
||||||
|
<p>For ease of reference, we list the output below:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">0</span> <span class="o">-</span>
|
||||||
|
<span class="mi">1</span> <span class="o">-</span>
|
||||||
|
<span class="mi">2</span> <span class="o">-</span>
|
||||||
|
<span class="mi">3</span> <span class="o">-</span>
|
||||||
|
<span class="mi">4</span> <span class="o">-</span>
|
||||||
|
<span class="mi">5</span> <span class="o">-</span>
|
||||||
|
<span class="mi">6</span> <span class="o">-</span>
|
||||||
|
<span class="mi">7</span> <span class="o">-</span>
|
||||||
|
<span class="mi">8</span> <span class="o">-</span>
|
||||||
|
<span class="mi">9</span> <span class="o">-</span>
|
||||||
|
<span class="mi">10</span> <span class="o">-</span>
|
||||||
|
<span class="mi">11</span> <span class="o">-</span>
|
||||||
|
<span class="mi">12</span> <span class="o">-</span>
|
||||||
|
<span class="mi">13</span> <span class="o">-</span>
|
||||||
|
<span class="mi">14</span> <span class="o">-</span>
|
||||||
|
<span class="mi">15</span> <span class="o">-</span>
|
||||||
|
<span class="mi">16</span> <span class="o">-</span>
|
||||||
|
<span class="mi">17</span> <span class="o">-</span>
|
||||||
|
<span class="mi">18</span> <span class="o">-</span>
|
||||||
|
<span class="mi">19</span> <span class="o">-</span>
|
||||||
|
<span class="mi">20</span> <span class="o">-</span>
|
||||||
|
<span class="mi">21</span> <span class="o">-</span>
|
||||||
|
<span class="mi">22</span> <span class="o">-</span>
|
||||||
|
<span class="mi">23</span> <span class="o">-</span>
|
||||||
|
<span class="mi">24</span> <span class="o">-</span>
|
||||||
|
<span class="mi">25</span> <span class="o">-</span>
|
||||||
|
<span class="mi">26</span> <span class="o">-</span>
|
||||||
|
<span class="mi">27</span> <span class="o">-</span>
|
||||||
|
<span class="mi">28</span> <span class="o">-</span>
|
||||||
|
<span class="mi">29</span> <span class="o">-</span>
|
||||||
|
<span class="mi">30</span> <span class="o">-</span>
|
||||||
|
<span class="mi">31</span> <span class="o">-</span>
|
||||||
|
<span class="mi">32</span> <span class="n">i</span>
|
||||||
|
<span class="mi">33</span> <span class="o">-</span>
|
||||||
|
<span class="mi">34</span> <span class="o">-</span>
|
||||||
|
<span class="mi">35</span> <span class="n">h</span>
|
||||||
|
<span class="mi">36</span> <span class="n">h</span>
|
||||||
|
<span class="mi">37</span> <span class="n">a</span>
|
||||||
|
<span class="mi">38</span> <span class="o">-</span>
|
||||||
|
<span class="mi">39</span> <span class="o">-</span>
|
||||||
|
<span class="mi">40</span> <span class="o">-</span>
|
||||||
|
<span class="mi">41</span> <span class="n">d</span>
|
||||||
|
<span class="mi">42</span> <span class="o">-</span>
|
||||||
|
<span class="mi">43</span> <span class="o">-</span>
|
||||||
|
<span class="mi">44</span> <span class="n">t</span>
|
||||||
|
<span class="mi">45</span> <span class="n">h</span>
|
||||||
|
<span class="mi">46</span> <span class="o">-</span>
|
||||||
|
<span class="mi">47</span> <span class="n">a</span>
|
||||||
|
<span class="mi">48</span> <span class="o">-</span>
|
||||||
|
<span class="mi">49</span> <span class="o">-</span>
|
||||||
|
<span class="mi">50</span> <span class="n">t</span>
|
||||||
|
<span class="mi">51</span> <span class="o">-</span>
|
||||||
|
<span class="mi">52</span> <span class="o">-</span>
|
||||||
|
<span class="mi">53</span> <span class="o">-</span>
|
||||||
|
<span class="mi">54</span> <span class="n">c</span>
|
||||||
|
<span class="mi">55</span> <span class="o">-</span>
|
||||||
|
<span class="mi">56</span> <span class="o">-</span>
|
||||||
|
<span class="mi">57</span> <span class="o">-</span>
|
||||||
|
<span class="mi">58</span> <span class="n">u</span>
|
||||||
|
<span class="mi">59</span> <span class="n">u</span>
|
||||||
|
<span class="mi">60</span> <span class="o">-</span>
|
||||||
|
<span class="mi">61</span> <span class="o">-</span>
|
||||||
|
<span class="mi">62</span> <span class="o">-</span>
|
||||||
|
<span class="mi">63</span> <span class="n">r</span>
|
||||||
|
<span class="mi">64</span> <span class="o">-</span>
|
||||||
|
<span class="mi">65</span> <span class="n">i</span>
|
||||||
|
<span class="mi">66</span> <span class="o">-</span>
|
||||||
|
<span class="mi">67</span> <span class="o">-</span>
|
||||||
|
<span class="mi">68</span> <span class="o">-</span>
|
||||||
|
<span class="mi">69</span> <span class="o">-</span>
|
||||||
|
<span class="mi">70</span> <span class="o">-</span>
|
||||||
|
<span class="mi">71</span> <span class="o">-</span>
|
||||||
|
<span class="mi">72</span> <span class="n">o</span>
|
||||||
|
<span class="mi">73</span> <span class="o">-</span>
|
||||||
|
<span class="mi">74</span> <span class="o">-</span>
|
||||||
|
<span class="mi">75</span> <span class="o">-</span>
|
||||||
|
<span class="mi">76</span> <span class="o">-</span>
|
||||||
|
<span class="mi">77</span> <span class="o">-</span>
|
||||||
|
<span class="mi">78</span> <span class="o">-</span>
|
||||||
|
<span class="mi">79</span> <span class="n">s</span>
|
||||||
|
<span class="mi">80</span> <span class="o">-</span>
|
||||||
|
<span class="mi">81</span> <span class="o">-</span>
|
||||||
|
<span class="mi">82</span> <span class="o">-</span>
|
||||||
|
<span class="mi">83</span> <span class="n">i</span>
|
||||||
|
<span class="mi">84</span> <span class="o">-</span>
|
||||||
|
<span class="mi">85</span> <span class="n">t</span>
|
||||||
|
<span class="mi">86</span> <span class="o">-</span>
|
||||||
|
<span class="mi">87</span> <span class="o">-</span>
|
||||||
|
<span class="mi">88</span> <span class="n">y</span>
|
||||||
|
<span class="mi">89</span> <span class="o">-</span>
|
||||||
|
<span class="mi">90</span> <span class="o">-</span>
|
||||||
|
<span class="mi">91</span> <span class="o">-</span>
|
||||||
|
<span class="mi">92</span> <span class="o">-</span>
|
||||||
|
<span class="mi">93</span> <span class="n">b</span>
|
||||||
|
<span class="mi">94</span> <span class="o">-</span>
|
||||||
|
<span class="mi">95</span> <span class="n">e</span>
|
||||||
|
<span class="mi">96</span> <span class="o">-</span>
|
||||||
|
<span class="mi">97</span> <span class="o">-</span>
|
||||||
|
<span class="mi">98</span> <span class="o">-</span>
|
||||||
|
<span class="mi">99</span> <span class="o">-</span>
|
||||||
|
<span class="mi">100</span> <span class="o">-</span>
|
||||||
|
<span class="mi">101</span> <span class="n">s</span>
|
||||||
|
<span class="mi">102</span> <span class="o">-</span>
|
||||||
|
<span class="mi">103</span> <span class="o">-</span>
|
||||||
|
<span class="mi">104</span> <span class="o">-</span>
|
||||||
|
<span class="mi">105</span> <span class="o">-</span>
|
||||||
|
<span class="mi">106</span> <span class="o">-</span>
|
||||||
|
<span class="mi">107</span> <span class="o">-</span>
|
||||||
|
<span class="mi">108</span> <span class="o">-</span>
|
||||||
|
<span class="mi">109</span> <span class="o">-</span>
|
||||||
|
<span class="mi">110</span> <span class="n">i</span>
|
||||||
|
<span class="mi">111</span> <span class="o">-</span>
|
||||||
|
<span class="mi">112</span> <span class="o">-</span>
|
||||||
|
<span class="mi">113</span> <span class="n">d</span>
|
||||||
|
<span class="mi">114</span> <span class="n">e</span>
|
||||||
|
<span class="mi">115</span> <span class="o">-</span>
|
||||||
|
<span class="mi">116</span> <span class="n">m</span>
|
||||||
|
<span class="mi">117</span> <span class="o">-</span>
|
||||||
|
<span class="mi">118</span> <span class="o">-</span>
|
||||||
|
<span class="mi">119</span> <span class="n">e</span>
|
||||||
|
<span class="mi">120</span> <span class="o">-</span>
|
||||||
|
<span class="mi">121</span> <span class="o">-</span>
|
||||||
|
<span class="mi">122</span> <span class="o">-</span>
|
||||||
|
<span class="mi">123</span> <span class="o">-</span>
|
||||||
|
<span class="mi">124</span> <span class="n">a</span>
|
||||||
|
<span class="mi">125</span> <span class="o">-</span>
|
||||||
|
<span class="mi">126</span> <span class="o">-</span>
|
||||||
|
<span class="mi">127</span> <span class="n">t</span>
|
||||||
|
<span class="mi">128</span> <span class="o">-</span>
|
||||||
|
<span class="mi">129</span> <span class="n">t</span>
|
||||||
|
<span class="mi">130</span> <span class="n">h</span>
|
||||||
|
<span class="mi">131</span> <span class="o">-</span>
|
||||||
|
<span class="mi">132</span> <span class="n">i</span>
|
||||||
|
<span class="mi">133</span> <span class="o">-</span>
|
||||||
|
<span class="mi">134</span> <span class="o">-</span>
|
||||||
|
<span class="mi">135</span> <span class="o">-</span>
|
||||||
|
<span class="mi">136</span> <span class="n">s</span>
|
||||||
|
<span class="mi">137</span> <span class="o">-</span>
|
||||||
|
<span class="mi">138</span> <span class="o">-</span>
|
||||||
|
<span class="mi">139</span> <span class="o">-</span>
|
||||||
|
<span class="mi">140</span> <span class="o">-</span>
|
||||||
|
<span class="mi">141</span> <span class="n">m</span>
|
||||||
|
<span class="mi">142</span> <span class="o">-</span>
|
||||||
|
<span class="mi">143</span> <span class="o">-</span>
|
||||||
|
<span class="mi">144</span> <span class="n">o</span>
|
||||||
|
<span class="mi">145</span> <span class="o">-</span>
|
||||||
|
<span class="mi">146</span> <span class="o">-</span>
|
||||||
|
<span class="mi">147</span> <span class="o">-</span>
|
||||||
|
<span class="mi">148</span> <span class="n">m</span>
|
||||||
|
<span class="mi">149</span> <span class="o">-</span>
|
||||||
|
<span class="mi">150</span> <span class="o">-</span>
|
||||||
|
<span class="mi">151</span> <span class="n">e</span>
|
||||||
|
<span class="mi">152</span> <span class="o">-</span>
|
||||||
|
<span class="mi">153</span> <span class="n">n</span>
|
||||||
|
<span class="mi">154</span> <span class="o">-</span>
|
||||||
|
<span class="mi">155</span> <span class="n">t</span>
|
||||||
|
<span class="mi">156</span> <span class="o">-</span>
|
||||||
|
<span class="mi">157</span> <span class="o">-</span>
|
||||||
|
<span class="mi">158</span> <span class="o">-</span>
|
||||||
|
<span class="mi">159</span> <span class="o">-</span>
|
||||||
|
<span class="mi">160</span> <span class="o">-</span>
|
||||||
|
<span class="mi">161</span> <span class="o">-</span>
|
||||||
|
<span class="mi">162</span> <span class="o">-</span>
|
||||||
|
<span class="mi">163</span> <span class="o">-</span>
|
||||||
|
<span class="mi">164</span> <span class="o">-</span>
|
||||||
|
<span class="mi">165</span> <span class="o">-</span>
|
||||||
|
<span class="mi">166</span> <span class="o">-</span>
|
||||||
|
<span class="mi">167</span> <span class="o">-</span>
|
||||||
|
<span class="mi">168</span> <span class="o">-</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>To merge tokens, we use:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">icefall.ctc</span> <span class="kn">import</span> <span class="n">merge_tokens</span>
|
||||||
|
<span class="n">token_spans</span> <span class="o">=</span> <span class="n">merge_tokens</span><span class="p">(</span><span class="n">alignment</span><span class="p">)</span>
|
||||||
|
<span class="k">for</span> <span class="n">span</span> <span class="ow">in</span> <span class="n">token_spans</span><span class="p">:</span>
|
||||||
|
<span class="nb">print</span><span class="p">(</span><span class="n">id2token</span><span class="p">[</span><span class="n">span</span><span class="o">.</span><span class="n">token</span><span class="p">],</span> <span class="n">span</span><span class="o">.</span><span class="n">start</span><span class="p">,</span> <span class="n">span</span><span class="o">.</span><span class="n">end</span><span class="p">)</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>The output is given below:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">i</span> <span class="mi">32</span> <span class="mi">33</span>
|
||||||
|
<span class="n">h</span> <span class="mi">35</span> <span class="mi">37</span>
|
||||||
|
<span class="n">a</span> <span class="mi">37</span> <span class="mi">38</span>
|
||||||
|
<span class="n">d</span> <span class="mi">41</span> <span class="mi">42</span>
|
||||||
|
<span class="n">t</span> <span class="mi">44</span> <span class="mi">45</span>
|
||||||
|
<span class="n">h</span> <span class="mi">45</span> <span class="mi">46</span>
|
||||||
|
<span class="n">a</span> <span class="mi">47</span> <span class="mi">48</span>
|
||||||
|
<span class="n">t</span> <span class="mi">50</span> <span class="mi">51</span>
|
||||||
|
<span class="n">c</span> <span class="mi">54</span> <span class="mi">55</span>
|
||||||
|
<span class="n">u</span> <span class="mi">58</span> <span class="mi">60</span>
|
||||||
|
<span class="n">r</span> <span class="mi">63</span> <span class="mi">64</span>
|
||||||
|
<span class="n">i</span> <span class="mi">65</span> <span class="mi">66</span>
|
||||||
|
<span class="n">o</span> <span class="mi">72</span> <span class="mi">73</span>
|
||||||
|
<span class="n">s</span> <span class="mi">79</span> <span class="mi">80</span>
|
||||||
|
<span class="n">i</span> <span class="mi">83</span> <span class="mi">84</span>
|
||||||
|
<span class="n">t</span> <span class="mi">85</span> <span class="mi">86</span>
|
||||||
|
<span class="n">y</span> <span class="mi">88</span> <span class="mi">89</span>
|
||||||
|
<span class="n">b</span> <span class="mi">93</span> <span class="mi">94</span>
|
||||||
|
<span class="n">e</span> <span class="mi">95</span> <span class="mi">96</span>
|
||||||
|
<span class="n">s</span> <span class="mi">101</span> <span class="mi">102</span>
|
||||||
|
<span class="n">i</span> <span class="mi">110</span> <span class="mi">111</span>
|
||||||
|
<span class="n">d</span> <span class="mi">113</span> <span class="mi">114</span>
|
||||||
|
<span class="n">e</span> <span class="mi">114</span> <span class="mi">115</span>
|
||||||
|
<span class="n">m</span> <span class="mi">116</span> <span class="mi">117</span>
|
||||||
|
<span class="n">e</span> <span class="mi">119</span> <span class="mi">120</span>
|
||||||
|
<span class="n">a</span> <span class="mi">124</span> <span class="mi">125</span>
|
||||||
|
<span class="n">t</span> <span class="mi">127</span> <span class="mi">128</span>
|
||||||
|
<span class="n">t</span> <span class="mi">129</span> <span class="mi">130</span>
|
||||||
|
<span class="n">h</span> <span class="mi">130</span> <span class="mi">131</span>
|
||||||
|
<span class="n">i</span> <span class="mi">132</span> <span class="mi">133</span>
|
||||||
|
<span class="n">s</span> <span class="mi">136</span> <span class="mi">137</span>
|
||||||
|
<span class="n">m</span> <span class="mi">141</span> <span class="mi">142</span>
|
||||||
|
<span class="n">o</span> <span class="mi">144</span> <span class="mi">145</span>
|
||||||
|
<span class="n">m</span> <span class="mi">148</span> <span class="mi">149</span>
|
||||||
|
<span class="n">e</span> <span class="mi">151</span> <span class="mi">152</span>
|
||||||
|
<span class="n">n</span> <span class="mi">153</span> <span class="mi">154</span>
|
||||||
|
<span class="n">t</span> <span class="mi">155</span> <span class="mi">156</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>All of the code below is copied and modified
|
||||||
|
from <a class="reference external" href="https://pytorch.org/audio/main/tutorials/ctc_forced_alignment_api_tutorial.html">https://pytorch.org/audio/main/tutorials/ctc_forced_alignment_api_tutorial.html</a>.</p>
|
||||||
|
</section>
|
||||||
|
<section id="segment-each-word-using-the-computed-alignments">
|
||||||
|
<h2>Segment each word using the computed alignments<a class="headerlink" href="#segment-each-word-using-the-computed-alignments" title="Permalink to this heading"></a></h2>
|
||||||
|
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">unflatten</span><span class="p">(</span><span class="n">list_</span><span class="p">,</span> <span class="n">lengths</span><span class="p">):</span>
|
||||||
|
<span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">list_</span><span class="p">)</span> <span class="o">==</span> <span class="nb">sum</span><span class="p">(</span><span class="n">lengths</span><span class="p">)</span>
|
||||||
|
<span class="n">i</span> <span class="o">=</span> <span class="mi">0</span>
|
||||||
|
<span class="n">ret</span> <span class="o">=</span> <span class="p">[]</span>
|
||||||
|
<span class="k">for</span> <span class="n">l</span> <span class="ow">in</span> <span class="n">lengths</span><span class="p">:</span>
|
||||||
|
<span class="n">ret</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">list_</span><span class="p">[</span><span class="n">i</span> <span class="p">:</span> <span class="n">i</span> <span class="o">+</span> <span class="n">l</span><span class="p">])</span>
|
||||||
|
<span class="n">i</span> <span class="o">+=</span> <span class="n">l</span>
|
||||||
|
<span class="k">return</span> <span class="n">ret</span>
|
||||||
|
|
||||||
|
|
||||||
|
<span class="n">word_spans</span> <span class="o">=</span> <span class="n">unflatten</span><span class="p">(</span><span class="n">token_spans</span><span class="p">,</span> <span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">word</span><span class="p">)</span> <span class="k">for</span> <span class="n">word</span> <span class="ow">in</span> <span class="n">transcript</span><span class="p">])</span>
|
||||||
|
<span class="nb">print</span><span class="p">(</span><span class="n">word_spans</span><span class="p">)</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>The output is:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[[</span><span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">32</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">33</span><span class="p">)],</span>
|
||||||
|
<span class="p">[</span><span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">15</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">35</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">37</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">37</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">38</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">13</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">41</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">42</span><span class="p">)],</span>
|
||||||
|
<span class="p">[</span><span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">7</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">44</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">45</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">15</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">45</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">46</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">47</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">48</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">7</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">50</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">51</span><span class="p">)],</span>
|
||||||
|
<span class="p">[</span><span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">20</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">54</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">55</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">6</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">58</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">60</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">9</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">63</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">64</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">65</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">66</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">72</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">73</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">79</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">80</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">83</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">84</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">7</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">85</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">86</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">16</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">88</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">89</span><span class="p">)],</span>
|
||||||
|
<span class="p">[</span><span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">17</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">93</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">94</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">95</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">96</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">101</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">102</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">110</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">111</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">13</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">113</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">114</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">114</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">115</span><span class="p">)],</span>
|
||||||
|
<span class="p">[</span><span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">116</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">117</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">119</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">120</span><span class="p">)],</span>
|
||||||
|
<span class="p">[</span><span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">124</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">125</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">7</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">127</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">128</span><span class="p">)],</span>
|
||||||
|
<span class="p">[</span><span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">7</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">129</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">130</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">15</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">130</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">131</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">132</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">133</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">136</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">137</span><span class="p">)],</span>
|
||||||
|
<span class="p">[</span><span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">141</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">142</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">144</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">145</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">148</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">149</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">151</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">152</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">153</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">154</span><span class="p">),</span> <span class="n">TokenSpan</span><span class="p">(</span><span class="n">token</span><span class="o">=</span><span class="mi">7</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">155</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">156</span><span class="p">)]</span>
|
||||||
|
<span class="p">]</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">preview_word</span><span class="p">(</span><span class="n">waveform</span><span class="p">,</span> <span class="n">spans</span><span class="p">,</span> <span class="n">num_frames</span><span class="p">,</span> <span class="n">transcript</span><span class="p">,</span> <span class="n">sample_rate</span><span class="o">=</span><span class="n">bundle</span><span class="o">.</span><span class="n">sample_rate</span><span class="p">):</span>
|
||||||
|
<span class="n">ratio</span> <span class="o">=</span> <span class="n">waveform</span><span class="o">.</span><span class="n">size</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="n">num_frames</span>
|
||||||
|
<span class="n">x0</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">ratio</span> <span class="o">*</span> <span class="n">spans</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">start</span><span class="p">)</span>
|
||||||
|
<span class="n">x1</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">ratio</span> <span class="o">*</span> <span class="n">spans</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">end</span><span class="p">)</span>
|
||||||
|
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">transcript</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">x0</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">sample_rate</span><span class="si">:</span><span class="s2">.3f</span><span class="si">}</span><span class="s2"> - </span><span class="si">{</span><span class="n">x1</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">sample_rate</span><span class="si">:</span><span class="s2">.3f</span><span class="si">}</span><span class="s2"> sec"</span><span class="p">)</span>
|
||||||
|
<span class="n">segment</span> <span class="o">=</span> <span class="n">waveform</span><span class="p">[:,</span> <span class="n">x0</span><span class="p">:</span><span class="n">x1</span><span class="p">]</span>
|
||||||
|
<span class="k">return</span> <span class="n">IPython</span><span class="o">.</span><span class="n">display</span><span class="o">.</span><span class="n">Audio</span><span class="p">(</span><span class="n">segment</span><span class="o">.</span><span class="n">numpy</span><span class="p">(),</span> <span class="n">rate</span><span class="o">=</span><span class="n">sample_rate</span><span class="p">)</span>
|
||||||
|
<span class="n">num_frames</span> <span class="o">=</span> <span class="n">emission</span><span class="o">.</span><span class="n">size</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="n">preview_word</span><span class="p">(</span><span class="n">waveform</span><span class="p">,</span> <span class="n">word_spans</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">num_frames</span><span class="p">,</span> <span class="n">transcript</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
|
||||||
|
<span class="n">preview_word</span><span class="p">(</span><span class="n">waveform</span><span class="p">,</span> <span class="n">word_spans</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">num_frames</span><span class="p">,</span> <span class="n">transcript</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
|
||||||
|
<span class="n">preview_word</span><span class="p">(</span><span class="n">waveform</span><span class="p">,</span> <span class="n">word_spans</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="n">num_frames</span><span class="p">,</span> <span class="n">transcript</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
|
||||||
|
<span class="n">preview_word</span><span class="p">(</span><span class="n">waveform</span><span class="p">,</span> <span class="n">word_spans</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span> <span class="n">num_frames</span><span class="p">,</span> <span class="n">transcript</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span>
|
||||||
|
<span class="n">preview_word</span><span class="p">(</span><span class="n">waveform</span><span class="p">,</span> <span class="n">word_spans</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span> <span class="n">num_frames</span><span class="p">,</span> <span class="n">transcript</span><span class="p">[</span><span class="mi">4</span><span class="p">])</span>
|
||||||
|
<span class="n">preview_word</span><span class="p">(</span><span class="n">waveform</span><span class="p">,</span> <span class="n">word_spans</span><span class="p">[</span><span class="mi">5</span><span class="p">],</span> <span class="n">num_frames</span><span class="p">,</span> <span class="n">transcript</span><span class="p">[</span><span class="mi">5</span><span class="p">])</span>
|
||||||
|
<span class="n">preview_word</span><span class="p">(</span><span class="n">waveform</span><span class="p">,</span> <span class="n">word_spans</span><span class="p">[</span><span class="mi">6</span><span class="p">],</span> <span class="n">num_frames</span><span class="p">,</span> <span class="n">transcript</span><span class="p">[</span><span class="mi">6</span><span class="p">])</span>
|
||||||
|
<span class="n">preview_word</span><span class="p">(</span><span class="n">waveform</span><span class="p">,</span> <span class="n">word_spans</span><span class="p">[</span><span class="mi">7</span><span class="p">],</span> <span class="n">num_frames</span><span class="p">,</span> <span class="n">transcript</span><span class="p">[</span><span class="mi">7</span><span class="p">])</span>
|
||||||
|
<span class="n">preview_word</span><span class="p">(</span><span class="n">waveform</span><span class="p">,</span> <span class="n">word_spans</span><span class="p">[</span><span class="mi">8</span><span class="p">],</span> <span class="n">num_frames</span><span class="p">,</span> <span class="n">transcript</span><span class="p">[</span><span class="mi">8</span><span class="p">])</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>The segmented wave of each word along with its time stamp is given below:</p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Word</th>
|
||||||
|
<th>Time</th>
|
||||||
|
<th>Wave</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>i</td>
|
||||||
|
<td>0.644 - 0.664 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="i.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/i.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>had</td>
|
||||||
|
<td>0.704 - 0.845 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="had.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/had.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>that</td>
|
||||||
|
<td>0.885 - 1.026 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="that.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/that.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>curiosity</td>
|
||||||
|
<td>1.086 - 1.790 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="curiosity.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/curiosity.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>beside</td>
|
||||||
|
<td>1.871 - 2.314 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="beside.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/beside.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>me</td>
|
||||||
|
<td>2.334 - 2.414 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="me.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/me.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>at</td>
|
||||||
|
<td>2.495 - 2.575 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="at.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/at.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>this</td>
|
||||||
|
<td>2.595 - 2.756 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="this.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/this.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>moment</td>
|
||||||
|
<td>2.837 - 3.138 sec</td>
|
||||||
|
<td>
|
||||||
|
<audio title="moment.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/moment.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table><p>We repost the whole wave below for ease of reference:</p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Wave filename</th>
|
||||||
|
<th>Content</th>
|
||||||
|
<th>Text</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav</td>
|
||||||
|
<td>
|
||||||
|
<audio title="Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav" controls="controls">
|
||||||
|
<source src="/icefall/_static/kaldi-align/Lab41-SRI-VOiCES-src-sp0307-ch127535-sg0042.wav" type="audio/wav">
|
||||||
|
Your browser does not support the <code>audio</code> element.
|
||||||
|
</audio>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
i had that curiosity beside me at this moment
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table></section>
|
||||||
|
<section id="summary">
|
||||||
|
<h2>Summary<a class="headerlink" href="#summary" title="Permalink to this heading"></a></h2>
|
||||||
|
<p>Congratulations! You have succeeded in using the FST-based approach to
|
||||||
|
compute alignment of a test wave.</p>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||||
|
<a href="diff.html" class="btn btn-neutral float-left" title="Two approaches" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||||
|
<a href="k2-based.html" class="btn btn-neutral float-right" title="k2-based forced alignment" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr/>
|
||||||
|
|
||||||
|
<div role="contentinfo">
|
||||||
|
<p>© Copyright 2021, icefall development team.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
||||||
|
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
||||||
|
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||||
|
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
jQuery(function () {
|
||||||
|
SphinxRtdTheme.Navigation.enable(true);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -48,6 +48,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="recipes/index.html">Recipes</a></li>
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -50,6 +50,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="recipes/index.html">Recipes</a></li>
|
||||||
@ -137,6 +138,12 @@ speech recognition recipes using <a class="reference external" href="https://git
|
|||||||
<li class="toctree-l2"><a class="reference internal" href="model-export/export-ncnn.html">Export to ncnn</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="model-export/export-ncnn.html">Export to ncnn</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="fst-based-forced-alignment/index.html">FST-based forced alignment</a><ul>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="fst-based-forced-alignment/diff.html">Two approaches</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="fst-based-forced-alignment/kaldi-based.html">Kaldi-based forced alignment</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="fst-based-forced-alignment/k2-based.html">k2-based forced alignment</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="toctree-wrapper compound">
|
<div class="toctree-wrapper compound">
|
||||||
|
@ -74,6 +74,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -64,6 +64,7 @@
|
|||||||
<li class="toctree-l2"><a class="reference internal" href="export-ncnn.html">Export to ncnn</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="export-ncnn.html">Export to ncnn</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -72,6 +72,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
@ -125,8 +126,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="admonition caution">
|
<div class="admonition caution">
|
||||||
<p class="admonition-title">Caution</p>
|
<p class="admonition-title">Caution</p>
|
||||||
<p>Please use a more recent version of PyTorch. For instance, <code class="docutils literal notranslate"><span class="pre">torch</span> <span class="pre">1.8</span></code>
|
<p><code class="docutils literal notranslate"><span class="pre">torch</span> <span class="pre">></span> <span class="pre">2.0</span></code> may not work. If you get errors while building pnnx, please switch
|
||||||
may <code class="docutils literal notranslate"><span class="pre">not</span></code> work.</p>
|
to <code class="docutils literal notranslate"><span class="pre">torch</span> <span class="pre"><</span> <span class="pre">2.0</span></code>.</p>
|
||||||
</div>
|
</div>
|
||||||
<section id="download-the-pre-trained-model">
|
<section id="download-the-pre-trained-model">
|
||||||
<h2>1. Download the pre-trained model<a class="headerlink" href="#download-the-pre-trained-model" title="Permalink to this heading"></a></h2>
|
<h2>1. Download the pre-trained model<a class="headerlink" href="#download-the-pre-trained-model" title="Permalink to this heading"></a></h2>
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
<script src="../_static/js/theme.js"></script>
|
<script src="../_static/js/theme.js"></script>
|
||||||
<link rel="index" title="Index" href="../genindex.html" />
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
<link rel="search" title="Search" href="../search.html" />
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
<link rel="next" title="Recipes" href="../recipes/index.html" />
|
<link rel="next" title="FST-based forced alignment" href="../fst-based-forced-alignment/index.html" />
|
||||||
<link rel="prev" title="Export ConvEmformer transducer models to ncnn" href="export-ncnn-conv-emformer.html" />
|
<link rel="prev" title="Export ConvEmformer transducer models to ncnn" href="export-ncnn-conv-emformer.html" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -72,6 +72,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
@ -121,8 +122,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="admonition caution">
|
<div class="admonition caution">
|
||||||
<p class="admonition-title">Caution</p>
|
<p class="admonition-title">Caution</p>
|
||||||
<p>Please use a more recent version of PyTorch. For instance, <code class="docutils literal notranslate"><span class="pre">torch</span> <span class="pre">1.8</span></code>
|
<p><code class="docutils literal notranslate"><span class="pre">torch</span> <span class="pre">></span> <span class="pre">2.0</span></code> may not work. If you get errors while building pnnx, please switch
|
||||||
may <code class="docutils literal notranslate"><span class="pre">not</span></code> work.</p>
|
to <code class="docutils literal notranslate"><span class="pre">torch</span> <span class="pre"><</span> <span class="pre">2.0</span></code>.</p>
|
||||||
</div>
|
</div>
|
||||||
<section id="download-the-pre-trained-model">
|
<section id="download-the-pre-trained-model">
|
||||||
<h2>1. Download the pre-trained model<a class="headerlink" href="#download-the-pre-trained-model" title="Permalink to this heading"></a></h2>
|
<h2>1. Download the pre-trained model<a class="headerlink" href="#download-the-pre-trained-model" title="Permalink to this heading"></a></h2>
|
||||||
@ -806,7 +807,7 @@ with <code class="docutils literal notranslate"><span class="pre">int8</span></c
|
|||||||
</div>
|
</div>
|
||||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||||
<a href="export-ncnn-conv-emformer.html" class="btn btn-neutral float-left" title="Export ConvEmformer transducer models to ncnn" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
<a href="export-ncnn-conv-emformer.html" class="btn btn-neutral float-left" title="Export ConvEmformer transducer models to ncnn" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||||
<a href="../recipes/index.html" class="btn btn-neutral float-right" title="Recipes" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
<a href="../fst-based-forced-alignment/index.html" class="btn btn-neutral float-right" title="FST-based forced alignment" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr/>
|
<hr/>
|
||||||
|
@ -71,6 +71,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
@ -120,8 +121,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="admonition caution">
|
<div class="admonition caution">
|
||||||
<p class="admonition-title">Caution</p>
|
<p class="admonition-title">Caution</p>
|
||||||
<p>Please use a more recent version of PyTorch. For instance, <code class="docutils literal notranslate"><span class="pre">torch</span> <span class="pre">1.8</span></code>
|
<p><code class="docutils literal notranslate"><span class="pre">torch</span> <span class="pre">></span> <span class="pre">2.0</span></code> may not work. If you get errors while building pnnx, please switch
|
||||||
may <code class="docutils literal notranslate"><span class="pre">not</span></code> work.</p>
|
to <code class="docutils literal notranslate"><span class="pre">torch</span> <span class="pre"><</span> <span class="pre">2.0</span></code>.</p>
|
||||||
</div>
|
</div>
|
||||||
<section id="download-the-pre-trained-model">
|
<section id="download-the-pre-trained-model">
|
||||||
<h2>1. Download the pre-trained model<a class="headerlink" href="#download-the-pre-trained-model" title="Permalink to this heading"></a></h2>
|
<h2>1. Download the pre-trained model<a class="headerlink" href="#download-the-pre-trained-model" title="Permalink to this heading"></a></h2>
|
||||||
|
@ -63,6 +63,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -65,6 +65,7 @@
|
|||||||
<li class="toctree-l2"><a class="reference internal" href="export-ncnn.html">Export to ncnn</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="export-ncnn.html">Export to ncnn</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -63,6 +63,7 @@
|
|||||||
<li class="toctree-l2"><a class="reference internal" href="export-ncnn.html">Export to ncnn</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="export-ncnn.html">Export to ncnn</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -63,6 +63,7 @@
|
|||||||
<li class="toctree-l2"><a class="reference internal" href="export-ncnn.html">Export to ncnn</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="export-ncnn.html">Export to ncnn</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
@ -58,6 +58,7 @@
|
|||||||
<li class="toctree-l2"><a class="reference internal" href="export-ncnn.html">Export to ncnn</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="export-ncnn.html">Export to ncnn</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../recipes/index.html">Recipes</a></li>
|
||||||
|
BIN
objects.inv
BIN
objects.inv
Binary file not shown.
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../../../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../../../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Recipes</a><ul class="current">
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
<link rel="index" title="Index" href="../genindex.html" />
|
<link rel="index" title="Index" href="../genindex.html" />
|
||||||
<link rel="search" title="Search" href="../search.html" />
|
<link rel="search" title="Search" href="../search.html" />
|
||||||
<link rel="next" title="Non Streaming ASR" href="Non-streaming-ASR/index.html" />
|
<link rel="next" title="Non Streaming ASR" href="Non-streaming-ASR/index.html" />
|
||||||
<link rel="prev" title="Export LSTM transducer models to ncnn" href="../model-export/export-ncnn-lstm.html" />
|
<link rel="prev" title="k2-based forced alignment" href="../fst-based-forced-alignment/k2-based.html" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="wy-body-for-nav">
|
<body class="wy-body-for-nav">
|
||||||
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="../model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="../fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="current">
|
<ul class="current">
|
||||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Recipes</a><ul>
|
<li class="toctree-l1 current"><a class="current reference internal" href="#">Recipes</a><ul>
|
||||||
@ -136,7 +137,7 @@ Currently, we provide recipes for speech recognition, language model, and speech
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||||||
<a href="../model-export/export-ncnn-lstm.html" class="btn btn-neutral float-left" title="Export LSTM transducer models to ncnn" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
<a href="../fst-based-forced-alignment/k2-based.html" class="btn btn-neutral float-left" title="k2-based forced alignment" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||||||
<a href="Non-streaming-ASR/index.html" class="btn btn-neutral float-right" title="Non Streaming ASR" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
<a href="Non-streaming-ASR/index.html" class="btn btn-neutral float-right" title="Non Streaming ASR" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
<li class="toctree-l1"><a class="reference internal" href="docker/index.html">Docker</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="docker/index.html">Docker</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="faqs.html">Frequently Asked Questions (FAQs)</a></li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="model-export/index.html">Model export</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="model-export/index.html">Model export</a></li>
|
||||||
|
<li class="toctree-l1"><a class="reference internal" href="fst-based-forced-alignment/index.html">FST-based forced alignment</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="recipes/index.html">Recipes</a></li>
|
<li class="toctree-l1"><a class="reference internal" href="recipes/index.html">Recipes</a></li>
|
||||||
|
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user