[2noise/ChatTTS]fix stream mode, last chunk of audio file size

2024-08-19 788 views
4
  1. Request buffer size.
  2. Remove padding zeros.

https://github.com/2noise/ChatTTS/issues/521

## stream mode
[idx=1] 总耗时: 18.45 递增耗时:0.00 Received: len(message)=16000 Total: 16000
[idx=2] 总耗时: 19.46 递增耗时:1.01 Received: len(message)=16000 Total: 32000
[idx=3] 总耗时: 20.33 递增耗时:0.87 Received: len(message)=16000 Total: 48000
[idx=4] 总耗时: 21.05 递增耗时:0.72 Received: len(message)=16000 Total: 64000
[idx=5] 总耗时: 21.05 递增耗时:0.00 Received: len(message)=14848 Total: 78848

## no-stream mode
[idx=1] 总耗时: 4.23 递增耗时:0.00 Received: len(message)=78848 Total: 78848

回答

7

要注意从后往前删除连续的0,以避免真正的编码中确实有0的可能性(虽然小,但不是没有)。

4
>>> import numpy as np
>>> 
>>> array = np.array([[1, 2, 3, 0, 0],
...                   [4, 5, 6, 0, 0],
...                   [0, 0, 0, 0, 0],
...                   [7, 0, 9, 0, 0],
...                   [0, 0, 0, 0, 0]])
>>> 
>>> # Identify rows with non-zero elements using np.any
>>> keep_rows = np.any(array != 0, axis=1)
>>> keep_cols = np.sum(array != 0, axis=0) > 0
>>> # Filter both rows and columns using slicing
>>> result = array[keep_rows, :][:, keep_cols]
>>> 
>>> 
>>> result
array([[1, 2, 3],
       [4, 5, 6],
       [7, 0, 9]])
>>> 
8

维数不能变啊,就算给个[]或者None也行。另外,请解决冲突(可以先用最新版代码覆盖,然后加以更改)

4

我实际测试中是没有问题的, 所有的噪音都没了... 我是想 16k 的大小, 如果某个维度全是 0, 这个维度是不是本身就有问题

2

是有问题,但不能错位,要不其它的都对不上下标了,这就把问题扩大了。

0

按照这个逻辑 ? 最后一行全 0 需要删么

>>> array = np.array(
... [[1, 2, 3, 0, 0],
... [4, 5, 6, 0, 0],
... [0, 0, 0, 0, 0],
... [7, 0, 9, 0, 0],
... [7, 0, 9, 2, 0],
... [0, 0, 0, 0, 0]]
... )

>>> result
array([[1, 2, 3, 0],
       [4, 5, 6, 0],
       [0, 0, 0, 0],
       [7, 0, 9, 0],
       [7, 0, 9, 2],
       [0, 0, 0, 0]])
8

不用,就这样就行。👍